(1).保留热点数据
(2).保证redis只存入20w的数据。
首先热点数据就是频繁访问的数据,我们可以通过redis的淘汰策略来完成,这里推荐Allkeys-lru淘汰策略,该淘汰策略从数据集中挑选最近最少使用的数据删除。
再者需要解决的问题是只存入20w的数据,目前来看只能通过redis的内存限制来实现,计算20w数据使用内存大小进行预设置内存大小实现。或许内存大小不好计算,但是我们可以只记录热点数据的主键id,redis只保存热点数据主键id,而主键id一般都是定长的,大小利于计算。
这个面试题其实考察的是redis的淘汰机制:
noeviction: 不删除策略。当达到最大内存限制时, 如果需要使用更多内存,则直接返回错误信息。(redis默认淘汰策略)
allkeys-lru: 在所有key中优先删除最近最少使用(less recently used ,LRU) 的 key。
allkeys-random: 在所有key中随机删除一部分 key。 volatile-lru: 在设置了超时时间(expire)的key中优先删除最近最少使用(less recently used ,LRU) 的 key。 volatile-random:
在设置了超时时间(expire)的key中随机删除一部分 key。 volatile-ttl: 在设置了超时时间(expire)的key中优先删除剩余时间(time to live,TTL) 短的key。



首先大概计算数据所占用的内存,然后可以在配置文件里面设置maxmemory(单位是byte字节)参数和参数maxmemory-policy(过期策略)
上面描述大概就是说要注意,设置的值
设置淘汰机制: