实战 - 将数据加入缓存
添加方式
全量添加
在某些特殊情况,比如初始化数据或缓存出现异常,没有将数据进行同步时,这时需要进行全量的数据同步。
全量同步方式有两种:
逐条插入
批量插入
即Pipeline 管道批量插入。通过pipeline指令完成。
Redis 是一种基于客户端-服务端模型以及请求 / 响应协议的 TCP 服务。
当请求进来后,都是经过服务器进行返回。若服务器没有响应及时,则其他请求进入等待。
这时服务器也无法处理新请求,如何解决这种现象?
答案就是管道:将多个命令发送到服务器,而不用等待响应,最后在一个步骤中读取该响应。MySQL 的批量插入就是这样。
适用场景
- 缓存异常了,将数据重新全部刷入缓存
- 为备战流量高峰期,提前将热点数据全部刷入
增量添加
比如平时有个商家入驻了:查询=》审核=》当后台系统审核新商家后,将数据写入 Redis,核心代码如下
后台修改饭馆信息时(审核通过后),要进行修改,关键代码:
当客户端的用户给饭馆投票时(喜欢 / 不喜欢餐厅),记得修改餐厅的 likeVotes 或 dislikeVotes 字段。
跟修改饭馆不一样的地方就是,只需要修改其中 likeVotes 和 dislikeVotes 属性,不需要整体进行修改
当用户查询餐厅时,若餐厅没有,会查询数据,然后再更新缓存:
先查询缓存 =》缓存没有 =》 查询数据库(再更新缓存)
参考