大小写
?redis命令不区分大小写,而key是区分大小的
数据类型
- String
- list
有序,可重复 - hash:Map<String,Map<Object,Object>>
- set
无序,不重复 - zset
redis事务
#开启事务
multi
#排入redis操作
set k1 v1
set k2 v2
#监视键值对(可选)
watch k1
watch k2
#执行redis操作
exec
#取消监视(可选)
unwatch
redis实现分布式锁
Redisson是一个在Redis的基础上实现的Java驻内存数据网格(In-Memory Data Grid)
redis分布式锁缓存续期?
Redisson已实现
redis缓存过期淘汰策略
redis默认内存大小
redis默认64位操作系统最大内存
一般生产上如何配置
一般推荐设置redis内存为最大物理内存的四分之三
查看redis情况
info
redis内存满了怎么办
redis也会报OOM
缓存淘汰策略
redis过期键的删除策略
?如果一个键过期之后,不会马上从内存中删除
三种不同的删除策略
- 定时删除:过期立即删除
对CPU不友好,用处理器性能换取存储空间 - 惰性删除
数据到达过期时间不做处理,等下次访问该数据时,如果未过期,返回数据;如果已过期,删除返回不存在 对内存不友好,用存储空间换取处理器性能 - 定期删除:定期抽样key,判断key是否过期
每隔一段时间执行一次删除过期键的操作,并通过删除操作执行的时长和频率来减少删除操作对cpu时间的影响
8种缓存淘汰策略
- noeviction:不会驱逐任何key
- allkeys-lru:对所有key使用LRU算法进行删除
- volatile-lru:对所有设置了过期时间的key使用LRU算法进行删除
- allkeys-random:对所有key随机删除
- volatile-random:对所有设置了过期时间的key随机删除
- volatile-ttl:删除马上要过期的key
- allkeys-lfu:对所有key使用LFU算法进行删除
- volatile-lfu:对所有设置了过期时间的key使用LFU算法进行删除
redis的LRU算法
简介
LRU是Least Recently Used的缩写,即最近最少使用.
LRU算法实现
基于LinkedHashMap实现
redis面试案例准备
|