redis作为优秀的中间缓存件,时常会存储大量的数据,即使采取了集群部署来动态扩容,也应该即使的整理内存,维持系统性能。在redis中有两种解决方案,一是为数据设置超时时间,二是采用LRU算法动态将不用的数据删除。内存管理的一种页面置换算法,对于在内存中但又不用的数据块(内存块)叫做LRU,操作系统会根据哪些数据属于LRU而将其移出内存而腾出空间来加载另外的数据。
关于redis中内存的进制换算:
内存设定,在redis.conf文件的537行可以进行设置:
下面是重点部分,redis中的6种内存管理策略:
1.volatile-lru:设定超时时间的数据中,删除最不常使用的数据.
2.allkeys-lru:查询所有的key中最近最不常使用的数据进行删除,这是应用最广泛的策略.
3.volatile-random:在已经设定了超时的数据中随机删除.
4.allkeys-random:查询所有的key,之后随机删除.
5.volatile-ttl:查询全部设定超时时间的数据,之后排序,将马上将要过期的数据进行删除操作.
6.Noeviction:如果设置为该属性,则不会进行删除操作,如果内存溢出则报错返回.
设置需要的内存管理策略: