数据丢失- 数据持久化
RDB 持久化
AOF 持久化
并发能力- 搭建主从集群,实现读写分离
主从同步-全量同步
主从同步-增量同步
- 如果slave同步的进度太慢,salve与master之间的数据差距超过了数据环的数据,则salve中的数据会丢失,被套圈了,则不能进行增量同步了,只能去master的内部中进行全量同步了。
主从同步的优化:
- 如果网络比较好,但是磁盘慢,则可以关闭磁盘写入,直接使用网络同步
- 适量提高repl_baklog,发现slave宕机时尽快实现故障恢复
- 只用主-从-从的架构,降低master节点的压力。
故障恢复- Redis哨兵机制
哨兵的作用和原理
减小redis的压力,实现主从同步,写在master, 从slave中读取数据。
问题:在主从故障转移的时候从-主之间丢失的数据怎么处理呢?
redis集群的搭建-Sentinel集群搭建。
使用javaTemplate操作哨兵
存储能力- Redis搭建分片集群,利用插槽实现动态扩容。
- redis的哨兵机制解决了高并发读的问题,但是不能解决写的问题,单节点插槽存储的容量是有限度的。 使用{}将某一类数据放在同一个插槽中
-
同过CR16算法计算数据的hash值,然后对16384取余,计算得到的插槽。
-
新增node节点并且将插槽数据分配到新的节点中
- 数据在插槽上,插槽转移到新的node节点,则数据也就转移到新节点了。