我们都知道redis是基于内存,单线程机制工作,查询速度快,效率高,一般在项目种常用来做缓存,但是具体的缓存策略是什么呢?
- 读且成功:用户从redis中读取数据,如果读取到了,直接使用
- 读且失败:如果用户没有从redis中读取到数据,则去数据库(一般是mysql)中读取数据,然后将数据存储到redis当作缓存
- 增删改:如果用户对数据进行增删改,先把数据存储到数据库,然后让redis中的缓存失效,切记,此时不需要设置缓存,因为缓存一般用于查询数据时,增删改一般没必要设置缓存
redis数据类型:redis是key+value存储,key永远是string,value是有五种数据类型
- string:单个数据,也是最简单最常用的
- list:存储string类型的链表
- set:结构和hash类似,但是只存储键,不存储值,且不可重复
- hash:value值存储的是类似于hashmap的值,每个键值对也是有key+value组成,redis中的一个key可以对应多个键值对
- zset:一般用于实时热点,会自动排序
redis持久化
- RDB:产生一个快照,在指定的时间间隔内,将内存中的数据以快照写入硬盘
- AOF:以日志形式记录每一次操作,服务器重启时,会读取该文件重建数据库,包装数据库数据是完整的
数据删除策略
- 定期删除:一段时间删除一次
- 定时删除:到达过期时间,就会删除
- 惰性删除:访问数据时,先判度是否过期,过期则删除,不过期则返回数据
redis淘汰策略