高级篇-分布式缓存Redis

94 阅读1分钟

数据丢失- 数据持久化

RDB 持久化

AOF 持久化

并发能力- 搭建主从集群,实现读写分离

主从同步-全量同步

image.png

主从同步-增量同步

  • 如果slave同步的进度太慢,salve与master之间的数据差距超过了数据环的数据,则salve中的数据会丢失,被套圈了,则不能进行增量同步了,只能去master的内部中进行全量同步了。

image.png

主从同步的优化:

  • 如果网络比较好,但是磁盘慢,则可以关闭磁盘写入,直接使用网络同步
  • 适量提高repl_baklog,发现slave宕机时尽快实现故障恢复
  • 只用主-从-从的架构,降低master节点的压力。

故障恢复- Redis哨兵机制

哨兵的作用和原理

image.png 减小redis的压力,实现主从同步,写在master, 从slave中读取数据。 问题:在主从故障转移的时候从-主之间丢失的数据怎么处理呢?

redis集群的搭建-Sentinel集群搭建。

image.png

使用javaTemplate操作哨兵

存储能力- Redis搭建分片集群,利用插槽实现动态扩容。

  • redis的哨兵机制解决了高并发读的问题,但是不能解决写的问题,单节点插槽存储的容量是有限度的。 使用{}将某一类数据放在同一个插槽中

image.png

image.png

  • 同过CR16算法计算数据的hash值,然后对16384取余,计算得到的插槽。

  • 新增node节点并且将插槽数据分配到新的节点中

    • 数据在插槽上,插槽转移到新的node节点,则数据也就转移到新节点了。

使用Redis实现分布式锁

juejin.cn/post/693695…