一、淘汰策略性能问题
当使用Redis当作缓存使用时,通常会给这个实例设置内存上限maxmemory,然后设置一个数据淘汰策略;如果Redis实例设置了内存上限maxmemory,那么也有可能导致Redis变慢。
原因在于,当Redis内存达到maxmemroy后,每次写入新的数据之前,Redis必须先从实例中踢出一部分数据,让整个实例的内存维持在maxmemroy之下,然后才能把新数据写进来。
这个踢出旧数据的逻辑也是消耗时间的,而具体消耗的长短,要取决于我们配置的淘汰策略。
性能建议:
- 避免存储bigkey。
- 降低释放内存的耗时淘汰策略改为随机淘汰,随机淘汰比LRU要快很多。
- 开启惰性淘汰,lazyfree-lazy-eviction=yes。