美文网首页
Redis作为缓存和数据库的思考

Redis作为缓存和数据库的思考

作者: Mr_Editor | 来源:发表于2020-08-09 23:12 被阅读0次

区别

缓存 数据可丢失 存取速度快
数据库 数据绝对不能丢,速度 + 持久化

缓存

1 击穿
      缓存击穿:少量缓存数据失效,访问直接到达数据库
2 穿透
      缓存中不存在用户请求数据,请求直接到达数据库
3 雪崩
      缓存中数据大量过期失效,大量访问直接到达数据库(雪崩分为两种情况:时点性有关 和时点性无关)
      时点性有关------即到时间点缓存必须失效,如0点数据清零,重新初始换数据,此时可以延迟用户访问;
      时点性无关-----即缓存大面积失效,需要考虑如何限流或者熔断。

思考

redis里的数据怎么能随着业务变化,只保留热数据,因为内存大小式有限的,也就是瓶颈

key 有效期

1,会随着访问延长?不对!!
2,发生写,会剔除过期时间
3,倒计时,且,redis不能延长
4,定时
5,业务逻辑自己补全

淘汰冷数据

内存多大呢?
maxmemory <bytes>
maxmemory-policy noeviction
淘汰策略:1: LFU 碰了多少次; 2:LRU 多久没碰他

持久化(数据库)

快照/日志

Redis持久化策略

  1. RDB
    时点性
    save(时点可能会混乱,使用场景:停机落数据)
    bgsave (fork创建子线程,时点不会混乱)
    优点:
    类似java中的序列化恢复的速度相对快
    缺点
    1 不支持拉链只有一个dump.rdb
    2 丢失数据相对多一些,时点与时点之间窗口数据容易丢失
     如:8点得到一个rdb,9点刚要落一个rdb,挂机了
  2. AOF
    AOF: redis的写操作记录到文件中
    优点
    1 丢失数据少
    2 redis中,RDB和AOF可以同时开启,如果开启了AOF只会用AOF恢复
    缺点
    1 体量无线变大 》 恢复慢
    优点如果能保住,还是可以用的,可以设计一个方案让日志AOF足够小

相关文章

网友评论

      本文标题:Redis作为缓存和数据库的思考

      本文链接:https://www.haomeiwen.com/subject/egwrdktx.html