java中redis为 jedis。spring中spring data来访问redis,spring data是对jedis的2次封装。
Redi s 也会因为内存不足而产生错误 , 也可能因为回收过久而导致系统长期的停顿,因此掌握执行回收策略十分有必要
volatile-lru : 采用最近使用最少的淘汰策略, Redis 将回收那些超时的(仅仅是超时的)键值对 , 也就是它只淘汰那些超时的键值对。
allkeys-lru : 采用淘汰最少使用的策略 , Redis将对所有的(不仅仅是超时的)键值对采用最近使用最少的淘汰策略。
volatile-random:采用随机淘汰策略删除超时的(仅仅是超时的)键值对
allkeys-random : 采用随机、淘汰策略删除所有的(不仅仅是超时的)键值对,这个策略不常用 。
volatile-rtl: 采用删除存活时间最短的键值对策略 。
noeviction : 根本就不淘汰任何键值对 , 当内存己满时 , 如果做读操作,例如 get 命令 , 它将正常工作,而做写操作,它将返回错误 。 也就是说 , 当 Redis 采用这个策略内存达到最大的 时候 , 它就只能读而不能写了。
Redis 在默认情况下会采用 noeviction 策略。
而在Redis 的默认配置文件中 , 存在着参数 maxmemory-sample
当设置 maxmemory-samples越大,则 Redis 删除的就越精确,但是与此同时带来不利的是, Redis 也就需要花更多的时去计算匹配更为精确的值 。