Redis又被叫做Nosql,非关系型数据库,由于Redis作用于内存上,所以又可以被当作是缓存,那么Redis当作缓存和数据库的区别就是:
技术服务于业务逻辑,所以,选择Redis作为什么,还是要根据具体的业务,如果将Redis当作缓存使用,我们可以通过redis将我们的热数据缓存下来,当下次查询的时候,可以直接从缓存中取出,大大增加了查询的效率,降低了数据库的使用
Redis作为缓存,其中可以设置缓存的大小,也可以设置缓存key的过期时间,而且也可以设置针对过期时间所做的淘汰策略
Redis的淘汰策略有:
1.noeviction
此策略不会清理缓存,而是当满了的时候拒绝其他的访问,这点可以将他用在redis当数据库这方面,可以保证数据的安全性和完整性
2.volatile-random
缓存满了之后,对设置过过期时间的key执行随机删除,不建议使用,达不到效果
3.volatile-ttl
缓存满了之后,针对设置了过期时间的key,然后通过对ttl的计算,把最早过期的删除掉,如果作为缓存,这个方法不适用
4.volatile-lru
缓存满了之后,针对设置了过期时间的键值对,根据过期时间,通过lru的算法去将数据淘汰掉
5.volatile-lfu
缓存满了之后,针对设置了过期时间的键值对,根据过期时间,使用lfu的算法淘汰数据
6.allkeys-random
缓存满了之后,随机删除key
7.allkeys-lru
缓存满之后,使用lru算法去删除需要删除的键
8.allkeys-lfu
缓存满了之后,使用lfu算法删除需要删除的键。
allkeys-lru和volatile-lru的区别在于,allkeys是针对的整个的缓存数据库,并不考虑过期时间,只要缓存满了,就去根据使用次数最少的清理掉,volatile则是根据过期时间,查找到使用次数最少的,然后淘汰掉
标签:缓存,过期,数据库,Redis,lru,volatile From: https://www.cnblogs.com/itqwb/p/16706416.html