1.缓存

  • 临时存储;利用存储效率更高的存储介质,来存储数据,达到数据计算、读写的更高效率。
  • 项目中应用:
  • 使用Redis构建一层缓存
  • 利用ORM的查询结果集

2.缓存数据类型

  • 五种数据类型:string和list/hash/set/zset
  • string:简单的key、value,最节省空间;一个k/v相当于一个数据;
  • 其它:都有索引结构;空间占用比较大,查询效率比较高。
  • 缓存哪些数据:
  • 1.缓存一个数值;
  • 2.缓存数据库查询的数据记录,一个数据
  • 3.缓存一个查询语句和查询结果,
  • 一个请求过来,如果查询语句非常复杂,可以把查询语句和查询结果一起缓存
  • 4.视图的响应结果
  • 5.一个页面
  • 网站:首页几乎必须考虑缓存;可以缓存页面;多条键值对,存入到一个key中,hash。

3.缓存数据有效期

  • 设置有效期:
  • 1、节省空间
  • 2、做到数据弱一致性,有效期失效后,可以保证数据的一致性
  • redis数据的过期策略:
  • 1、定时过期
  • 每个设置过期时间的key都需要创建一个定时器,到过期时间就会立即清除。该策略可以立即清除过期的数据,对内存很友好;但是会占用大量的CPU资源去处理过期的数据,从而影响缓存的响应时间和吞吐量。
  • 2、惰性过期
  • 只有当访问一个key时,才会判断该key是否已过期,过期则清除;节省资源占用
  • 3、定期过期
  • 每隔一定的时间,会扫描一定数量的数据库的expires字典中一定数量的key,并清除其中已过期的key。CPU和内存资源达到最优的平衡效果
  • redis数据库的默认的过期策略:同时使用了惰性过期和定期过期两种过期策略
  • 用户粉丝数、阅读历史、搜索历史等;访问量不大,并且数据不要求强一致。
  • 把数据存入redis的主从之中;作用:让数据高可用,没有有效期;