为什么使用redis?
我们在碰到需要执行耗时特别久,且结果不频繁变动的SQL,把sql结果放入缓存,那么就能大大提高读取的性能
在大量并发情况下,例如 秒杀 如果每个请求都去 链接数据库 势必会发生一些不可描述的事情
为啥 redis 速度快呢?
(redis 是单线程工作机制 避免了山下文切换
采用了 非阻塞多路 io 复用
纯内存操作 不需要 io 读取
redis 的数据类型:
String hash list set sortede set
redis 的过期策略以及内存淘汰机制
redis采用的是定期删除+惰性删除策略。
定期删除,redis默认每个100ms检查,是否有过期的key,有过期key则删除。需要说明的是,redis不是每个100ms将所有的key检查一次,而是随机抽取进行检查
在你获取某个key的时候,redis会检查一下,这个key如果设置了过期时间那么是否过期了?如果过期了此时就会删除。
配置 内存淘汰策略
在 redis.conf 中 配置
# maxmemory-policy volatile-lru
推荐的策略
allkeys-lru:当内存不足以容纳新写入数据时,在键空间中,移除最近最少使用的key
volatile-lru:当内存不足以容纳新写入数据时,在设置了过期时间的键空间中,移除最近最少使用的key。这种情况一般是把redis既当缓存,又做持久化存储的时候才用
参考:https://blog.csdn.net/hjm4702192/article/details/80518856