Skip to content

redis

介绍

Redis中文官网是一个高速缓存数据库,是一种key-value(键值对)形式的存储系统,非关系型数据库。

Redis的数据 是放在内存里的,所以读写会很快

Image text

为什么需要redis

在高并发的场景下,通过缓存,可以提升读取速度,在互联网环境下,80%是读操作,20%是写操作

内存的读取效率是远远高于硬盘存储的数据的。可以让大多数的请求去命中缓存,而少量的请求在有需求的时候才会去访问到数据库,从而就可以增加提高整个系统的并发量,能够减少数据库的压力,为其进行降压。

缓存方案对比

Ehcache

优点:

1、基于java开发

2、基于JVM缓存

3、简单、轻巧、方便

缺点:

1、集群不支持

2、分布式不支持

Memcache

优点:

1、简单的key-value存储

2、内存使用率比较高

3、多核处理,多线程

缺点:

1、无法容灾

2、无法持久化

Redis

优点:

1、丰富的数据结构

2、持久化

3、主从同步、故障转移

4、内存数据库

缺点:

1、单线程(大数量慢)

2、单核(多核处理器无法充分利用cpu)

下载与安装

(一)、下载redis

下载地址:https://github.com/tporadowski/redis/releases

https://github.com/MicrosoftArchive/redis/releases

Image text

(二)、解压到文件夹

Image text

(三)、配置环境变量

在环境变量里配置redis

Image text

(四)、测试

在cmd中输入:redis-server

Image text

输入:redis-cli

Image text

备注

redis-2.8版本配置了环境变量,在cmd中不能启动,只能通过点击文件夹中的redis-server.exe才行

键空间通知(Keyspace notification)

概念

redis受事件的影响,比如del方法、expired时间过期就会发布一个通知,客户端监听这个通知

类型

key-space和key-event

举例:

我们给redis set一个key,为name: zb,然后执行del方法删除这个key

key-space会返回del

key-event会返回被删除的key,这里是name

监听的事件以及缩写

Image text

key-event通知订阅

开启订阅:

在redis.windows.conf文件里,添加notify-keyspace-events Ex,表示开启keyspace-events,订阅的是Ex(E表示键事件通知,所有通知以 __keyevent@<db>__ 为前缀,x表示过期事件:每当有过期键被删除时发送)

也可以在cmd执行redis-cli后,用config set notify-keyspace-events Ex开启订阅(关闭redis后,订阅会关闭,需要每次都开启)

订阅:

Image text

一、在cmd中输入redis-server E:\Redis-5.0.14.1\redis.windows.conf启动redis

备注

如果在redis.windows.conf里修改了配置,启动的时候要在redis-server后面添加配置文件的路径

Image text

二、上面的cmd不关闭,新打开cmd,执行redis-cli,输入psubscribe __keyevent@0__:expired,订阅(监听)keyevent里的expired(过期)事件

备注

0表示第一个数据库,redis有16个数据,默认是第0个,如果想修改数据库,可以执行select [index]

Image text

三、再重新打开cmd,执行redis-cli,输入setex name 10 zb,打开步骤二的cmd,10秒后,就可以显示出当前输入的name

备注

如果cmd里不显示,可以在步骤二的cmd里,在执行redis-cli后,输入config set notify-keyspace-events Ex,在执行后面的操作

如有转载或 CV 的请标注本站原文地址