Redis 是一款高性能的内存数据库,一般常用于缓存、消息队列等场景。Redis确实好用,但是,Redis的数据量是会越来越多的,那么Redis 的内存满了后我们应该怎么去处理呢?
一般有6种常见的数据淘汰策略:
1、volatile-lru
Redis会记录每个key的最后访问时间,当内存不足时,会优先删调那些长时间未被访问的key。一般在缓存系统中,常用于存储那些经常变化的商品价格信息,当内存满了的时候,最近很少被访问的key就会被优先淘汰掉。这个策略适用于大部分数据都有过期时间,并且是希望优先淘汰不活跃数据的场景。
2、allkeys-lru
该策略会从所有的键(包括没有设置过期时间的键)中,选择最近最少使用的键进行淘汰
3、volatile-random
该策略会从所有的键(包括没有设置过期时间的键)中随机选择键进行淘汰。在对数据重要性和访问频率没有明确区分的 Redis 应用中,当内存满时,可通过此策略随机淘汰一些键来释放空间。适用于对数据淘汰顺序没有严格要求的场景
4、allkeys-random
该策略会从所有的键(包括没有设置过期时间的键)中随机选择键进行淘汰。
5、volatile-ttl
该策略会在设置了过期时间的键中,优先淘汰那些剩余存活时间(TTL)最短的键
6、noeviction
该策略 Redis 的默认淘汰策略。当内存使用达到上限时,Redis 会拒绝新的写入操作。这一策略可以保证已有的数据不会丢失,因为它不会主动删除任何数据。
© 版权声明
相关文章
暂无评论...