一、两种策略
- 设置过期时间
- LRU算法动态删除数据
二、设置过期时间
# expire key time(以秒为单位)
# 例:
expire name 10
具体演示如下:
除了上面以外还存在一种字符串特有的方式:
# 格式: setex(String key, int seconds, String value)
详细的请自己查阅资料!!!
三、LRU算法动态删除数据
说明:
内存管理的一种页面置换算法,对于在内存中但又不用的数据块(内存块)叫做LRU
操作系统会根据那些数据属于LRU而将内存腾出空间来加载另外的数据
- volatile-lru: 设定超时时间的数据中,删除最不常用的数据
- allkeys-lru: 查询所有的key中最不常用的数据进行删除(应用最广泛策略)
- volatile-ttl: 在已经设定了超时的数据中随机删除
- volatile-random: 查询全部设定的超时时间的数据之后排序,将马上将要过期的数据进行删除操作
- allkeys-random: 查询所有的key,之后随机删除
- noeviction:如果设置为该属性,则不会进行删除操作,如果内存溢出则报错误返回(默认)
- volatile-lfu:从所有配置了过期时间的键中驱逐使用频率最少的键(redis-4之后添加)
- allkeys-lfu:从所有键中驱逐使用频率最少的键(redis-4之后添加)