MySQL里有2000w数据,redis中只存20w数据,如何保证redis中数据都是热点数据

计算20w的热点数据占据内存的大小。然后在Redis中,配置最大内存容量,在redis.conf文件maxmemory <bytes>标签中配置。
当redis内存数据大小上升到一定大小的时候,就会施行数据淘汰策略。
Redis中提供了6中数据淘汰策略:
1.volatitle-lru 从设置了过期时间的数据集中,选择最近最少使用的数据删除
2.volatitle-ttl 从设置了过期时间的数据集中,选择将要过期的数据删除
3.volatitle-random 从设置了过期时间的数据中,随机选择数据进行删除
4.Allkeys-lru 从数据集中挑选最近最少使用的数据删除
5.Allkeys-random 从数据集中随机挑选数据进行淘汰
6.no-enviction(驱逐):禁止淘汰数据
因为我们的应用保存热点数据,也就是对缓存的访问符合幂律分布,所以应该选择Allkeys-lru淘汰策略。存放热点数据,不能为数据设置过期时间,设置过期时间也会占用内存。

猜你喜欢

转载自www.cnblogs.com/sxshe/p/12165590.html