redis
介绍
Redis中文官网是一个高速缓存数据库,是一种key-value(键值对)形式的存储系统,非关系型数据库。
Redis的数据 是放在内存里的,所以读写会很快
为什么需要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
(二)、解压到文件夹
(三)、配置环境变量
在环境变量里配置redis
(四)、测试
在cmd中输入:redis-server
输入:redis-cli
备注
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
监听的事件以及缩写
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后,订阅会关闭,需要每次都开启)
订阅:
一、在cmd中输入redis-server E:\Redis-5.0.14.1\redis.windows.conf
启动redis
备注
如果在redis.windows.conf里修改了配置,启动的时候要在redis-server后面添加配置文件的路径
二、上面的cmd不关闭,新打开cmd,执行redis-cli
,输入psubscribe __keyevent@0__:expired
,订阅(监听)keyevent里的expired(过期)事件
备注
0表示第一个数据库,redis有16个数据,默认是第0个,如果想修改数据库,可以执行select [index]
三、再重新打开cmd,执行redis-cli
,输入setex name 10 zb
,打开步骤二的cmd,10秒后,就可以显示出当前输入的name
备注
如果cmd里不显示,可以在步骤二的cmd里,在执行redis-cli
后,输入config set notify-keyspace-events Ex
,在执行后面的操作