redis

redis为什么这么快:

单线程工作模式,避免上下文频繁切换,纯内存操作,采用非阻塞IO多路复用机制。

数据类型:string类型,hash:value存放结构话的对象,list,Set, sorted set :自身能排序

redis的过期策略以及淘到机制:

定期删除+惰性删除:redis每过100ms就随机检查一遍是否过期的key值,如果过期则删除,对于没有删掉的过期key值,当获取key的时候检查是否过期,过期则删除再查找。

当内存不足时,新增加key则可以配置参数达到一些效果

配置参数:noevication   内存不足则直接报错;也可以删除最近最少使用的key;可以删除配制了过期时间的最近最少使用的key;

随机删除;过期时间最早的删除等等。

redis与数据库双写不一致问题解决:先删掉缓存,再删除数据库,再使线程睡眠一定的时间,再删除一遍redis中的key

缓存穿透:查找值再缓存中不存在,则全部的请求怼到数据库上了

互斥锁,缓存失效,则先获得锁再请求数据,否则睡眠等待一段时间重试。预热缓存:项目启动前先加载缓存。

缓存雪崩:同一时间大面积缓存失效。如果大面积加载入缓存的则失效时间加上一个随机数。加锁。

 

 

你可能感兴趣的:(redis)