Redis 的优胜劣汰

Redis 是一个开源的高性能键值的内存数据库,具有优秀的性能,可以用在缓存数据及高速读 / 写,可以用作信息中间件使用,支持数据持久化到磁盘中,可作为分布式锁。

Redis 容量是不是越大越好,纯理论上看,肯定是越大越好,但是要结合实际情况的成本问题,就要考虑如何最性价比的选择最合适的 Redis 容量。

此时,我们可能会考虑到二八原理理论,讲的是用 20% 的数据支撑 80% 的访问请求,这个理论基本上也是用在理想状态,实际上不同用户的访问数据还是有一定差别。

Redis

当 Redis 内存满了之后,会有怎样的机制进行调节。

noeviction(不执行淘汰策略)

当资源超过 maxmemory 值时,可不允许已有资源淘汰,更不允许新资源的加入(可能这都是充了永久会员的),由于不执行淘汰策略,容量有限的情况下,容量池变满,尽管很多资源不会再被用到,但是还是不允许淘汰,一旦,新资源加入,Redis 直接返回错误。

淘汰策略

allkeys-lru:所有资源有效,淘汰最近使用最少的资源(常应用于存在明显的冷热数据的区别)

volatile-lru:设置使用期限资源,淘汰最近使用最少的资源

allkeys-lfu:所有资源有效,淘汰使用最少的资源

volatile-lfu:设置使用期限资源,淘汰使用最少的资源

allkeys-random:所有资源有效,淘汰随机资源(常应用于不存在冷热数据,且数据分部查询比较均衡)

volatile-random:设置使用期限资源,淘汰随机资源(应用于数据不能删除场景)

volatile-ttl:设置使用期限资源,淘汰离设置使用期限最近的资源