redis内存淘汰机制有:1、noeviction,当内存使用达到阈值的时候,所有引起申请内存的命令会报错;2、allkeys-lru,在主键空间中,优先移除最近未使用的key;3、allkeys-random,在主键空间中,随机移除。
内存淘汰策略
内存淘汰只是 Redis 提供的一个功能,为了更好地实现这个功能,必须为不同的应用场景提供不同的策略,内存淘汰策略讲的是为实现内存淘汰我们具体怎么做,要解决的问题包括淘汰键空间如何选择?在键空间中淘汰键如何选择?
Redis 提供了下面几种淘汰策略供用户选择,其中默认的策略为 noeviction 策略:
noeviction:当内存使用达到阈值的时候,所有引起申请内存的命令会报错
allkeys-lru:在主键空间中,优先移除最近未使用的
keyvolatile-lru:在设置了过期时间的键空间中,优先移除最近未使用的
keyallkeys-random:在主键空间中,随机移除某个
keyvolatile-random:在设置了过期时间的键空间中,随机移除某个
keyvolatile-ttl:在设置了过期时间的键空间中,具有更早过期时间的 key 优先移除
这里补充一下主键空间和设置了过期时间的键空间,举个例子,假设我们有一批键存储在Redis中,则有那么一个哈希表用于存储这批键及其值,如果这批键中有一部分设置了过期时间,那么这批键还会被存储到另外一个哈希表中,这个哈希表中的值对应的是键被设置的过期时间。设置了过期时间的键空间为主键空间的子集。
推荐教程: 《Redis教程》
以上就是redis内存淘汰机制有哪些的详细内容,更多请关注【创想鸟】其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。
发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2042893.html