Redis做缓存

缓存策略三要素:缓存命中率   缓存更新策略  最大缓存容量。衡量一个缓存方案的好坏标准是:缓存命中率。缓存命中率越高,缓存方法设计的越好。 算法

三者之间的关系为:当缓存到达最大的缓存容量时,会触发缓存更新策略,而缓存更新策略影响到了缓存命中率。可见,缓存方案的好坏依赖于缓存最大量的设置,以及缓存更新策略的选择。缓存

 对于常常变更的数据,不适合作缓存。对于静态、读写比高(通常10:1以上)的数据作缓存。dom

常见的缓存更新策略有:设计

1 FIFO 队列,先进先出,典型应用:MySQL的 query cache,采用的就是这种简单的缓存更新策略code

2 LFU:最少使用 ,借助计数器实现队列

3 LRU:最久未被使用,借助计数器和队列实现io

 对于Redis,当达到maxmemory时,采用什么策略删除key,有五个可选项可根据应用场景进行选择:class

volatile-lru 采用LRU算法删除带有expire的key(默认)
allkeys-lru  采用LRU算法删除任意key
volatile-random 任意删除带有expire的key
allkeys-random  删除任意key
volatile-ttl 删除最接近expire的key
noeviction  不删除,直接对写命令返回错误
相关文章
相关标签/搜索