1.LRU(Least Recently Used) - 最近访问:最近访问时间最长的数据,如:有数据a、b、c。a数据最近访问时间是30秒前,b数据最近访问时间是20秒前,c数据最近访问时间是40秒前,删除c数据。
2.LFU(Least Frequently Used) - 访问频率:单位周期内,访问频率计算。如:有数据a、b、c。a数据在10秒内有20次访问,b数据在3600秒(1小时)内有100次访问,c数据在24小时内有1000次访问,删除访问频率最低的数据。删除c数据。
3.配置策略: 最大内存 - 默认环境下,最大内存是16G以内的内存,不需要设置。高于此范围内存需要设置。设置的单位是字节。
4.淘汰策略
volatile-lru -> Evict using approximated LRU among the keys with an expire set
#使用LRU近似算法,在有expire有效期的数据集合中删除数据。
allkeys-lru -> Evict any key using approximated LRU.
在所有的数据集合中,使用LRU算法删除数据。
volatile-lfu -> Evict using approximated LFU among the keys with an expire set.
使用LFU算法,在有expire有效期的数据集合中。
allkeys-lfu -> Evict any key using approximated LFU.
使用LFU算法,在所有数据范围内。
volatile-random -> Remove a random key among the ones with an expire set
在有expire有效期的数据集合中,随机删除数据。
allkeys-random -> Remove a random key, any key.
在所有数据范围内,随机删除数据。
volatile-ttl -> Remove the key with the nearest expire time (minor TTL)
在有expire有效期的数据集合中,找剩余有效时间最短的数据删除。
noeviction -> Don't evict anything, just return an error on write operations
不删除任何数据。默认策略
5.内存扩容 - 垂直扩容,RAID方式加内存。成本太高。
6.集群 - 水平扩容,增加集群节点。
(淘汰策略 - 不推荐使用)
Redis访问效率提升:客户端路由 - 通过自定义代码,实现路由策略,对读写的数据的key做路由计算,决定当前数据读写操作的所在节点。效率最高。
代理路由 - 使用现成的路由算法工具,实现key的路由计算。
集群 - 读写操作,发送到集群中,由集群决定读写所在节点。CRC16算法。市场占有度最高。