之前有写过一篇简单缓存及缓存表应用入门,这里介绍redis的要点,并用几行代码实现老式几十行甚至数百行代码的缓存功能。
1.缓存表要设计表结构,将查询消耗大的数据拉取后存入表中,二次读取时优先从缓存表中读取,这里设计建表,建模型,写sql的重复工作;而这些东西只要用redis,我们建立一个model,便可用key,value的形式存入。
2.之前的cache将缓存表中的数据存入cache也是用key,value的形式,那么为何还要用redis?这里涉及到一个缓存过期时间的问题。cache存入的数据存在内存中,当程序重启或热部署时都会丢失,而存入redis的数据我们可以设置过期时间,或者不设置。只要我们不去调用清空redis,是不会丢失的。同时我们可以为不同数据设置不同过期时间。比如当天的数据,当天是变动的,不该进入缓存,但我们可以设置10分钟左右的过期时间,当连续点击查询时,从缓存读取,不至于后台卡顿。而对于需要永久存入缓存的数据不设置过期时间,那么只要不清空redis,便不至于造成缓存穿透。
3.model类的序列化相关
using ProtoBuf;
4.对redis相关key的统一定义,管理,最好单独一个类用来定义,防止key重名,对于key过期时长也应统一管理