Redis有几种数据类型
- redis数据类型有五种:string(字符串)、hash(哈希)、list(列表)、set(集合)、zset(有序集合)。
-
string(字符串)是redis最常用的类型,可以包含任何数据,一个key对应一个value,在Rediss中是二进制安全的。
-
hash(哈希)是一个string 类型的field和value的映射表,适合被用于存储对象。
-
list(列表)是一个链表结构,按照插入顺序排序。
-
set(集合)是 string 类型的无序集合。
-
zset(有序集合)是string类型元素的集合,zset是插入有序的,即自动排序。
监听器监听过期key
怎么使用
- 代码中RedisConfig配置
- 配置监听器,继承KeyExpirationEventMessageListener,重写onMessage方法
3.redis配置中 将notify-keyspace-events 改为 Ex 即过期消息通知
监听过期key优缺点
- 最大缺点,有延时,过期key数据量越大,延时越长
过期策略
redis的过期删除策略,采用了惰性删除和定期删除。
什么是惰性删除,什么是定期删除呢,再来理解几个概念:
1.定时删除
对每一个设置了过期的key,建立一个定时器,一旦到达过期时间就立即删除。
优点:可以立即清除过期数据,对内存友好;
缺点:占用了大量的CPU去处理过期的数据。
2.惰性删除
当访问一个key,才判断key是否过期,过期则删除返回nil,否则正常返回;
优点:最大限制节省CPU资源;
缺点:对内存不友好,对过期的key延迟删除;数据量越大,延时越久。
3.定期删除
每隔一段时间,扫码redis过期key字典,并清除部分过期的key。定时删除和惰性删除的折中方案,还可以通过调整定时扫描的时间间隔和每次扫描的时间耗时,在不同情况下使得CPU和内存资源达到最优的平衡效果。
Spring Boot 配置监听器报错问题
报错 ERR unknown command CONFIG
, with args beginning with: GET
, `notify-keysp
解决方法
加上这句setKeyspaceNotificationsConfigParameter(“”);
原文链接:https://blog.csdn.net/zsxlbr1314/article/details/116650952