推荐链接:
总结——》【Java】
总结——》【Mysql】
总结——》【Redis】
总结——》【Spring】
总结——》【SpringBoot】
总结——》【MyBatis、MyBatis-Plus】
淘汰策略 | 淘汰的数据范围 | 使用哪种算法进行淘汰 |
---|---|---|
volatile-lru | 有过期时间的key | lru算法 |
allkeys-lru | 所有key | lru算法 |
volatile-lfu | 有过期时间的key | lfu算法 |
allkeys-lfu | 所有key | lfu算法 |
volatile-random | 有过期时间的key | 随机 |
allkeys-random | 所有key | 随机 |
volatile-ttl | 有过期时间的key | 越早过期的越先被淘汰 |
noeviction | 无 | 不淘汰任何数据,直接返回错误 |
具体结合应用数据实际访问特点和成本开销来综合考虑。
一般建议把缓存容量设置为总数据量的 15% 到 30%,兼顾访问性能和内存空间开销。
CONFIG SET maxmemory 4gb
# 60s后过期
expire key 60
建议:使用 allkeys-lru 策略
优点:把最近最常访问的数据留在缓存中,提升应用的访问性能。
建议:使用 allkeys-random 策略
建议:使用 volatile-lru 策略,同时不给这些置顶数据设置过期时间
优点:置顶的数据一直不会被删除,而其他数据会在过期时根据 LRU 规则进行筛选