当Redis内存用尽时会做何处理?

原文链接: https://my.oschina.net/jamesview/blog/2254837

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

如果你打开虚拟内存功能,当内存用尽时, Redis就会把那些不经常使用的数据存储到磁盘。
如果Redis里的虚拟内存被禁了,他就会用上操作系统的虚拟内存(交换内存),同时性能急剧下降。
你可以配置maxmemory参数,来避免Redis默认再分配更多的内存。

在较新版本的Redis配置文件中使用了特别的设置选项,当我需要回收内存的时候。
有5种选项规则:

  • volatile-lru:在使用了过期设置的集合中,尝试删除一个最近没在用的键。
  • volatile-tt:在使用了过期设置的集合中,尝试删除一个有较短expire时间的键。
  • volatile-random:在使用了过期设置的集合中随机删除一个键。
  • allkeys-lru:跟volatile-lru类似,但它会将每一种类型键都移除,不管是有效还是过期的只要设置了过期时间。
  • allkeys-random:跟volatile-random类似,但它会将每一种类型键都移除,不管是有效还是过期的只要设置了过期时间。

参考文档:
http://antirez.com/post/redis-as-LRU-cache.html
http://eli.thegreenplace.net/2009/10/30/handling-out-of-memory-conditions-in-c/

转载于:https://my.oschina.net/jamesview/blog/2254837

你可能感兴趣的:(当Redis内存用尽时会做何处理?)