Redis集群方案应该怎么做?都有哪些方案?

本文探讨了Redis的多种集群方案,包括Codis、Redis Cluster 3.0以及业务代码层实现的方案,并分析了可能导致集群不可用的情况。此外,详细介绍了Redis的持久化机制,如RDB和AOF的优缺点,以及如何选择合适的持久化方式。同时,讨论了Redis缓存雪崩、缓存击穿问题及其解决方案,并提出了应对缓存一致性的策略。最后,解释了为何使用Redis作为缓存而非本地缓存,并讨论了并发竞争Key的处理方法。
摘要由CSDN通过智能技术生成

使用codis方案:目前用的多的集群方案,基本和twemproxy一致的效果,但它支持在节点数量改变情况下,旧节点数据可恢复到新hash节点。

Redis cluster3.0自带的集群:特点在于他的分布式算法不是一致性hash,而是hash槽的概念,以及自身支持节点设置从节点。

在业务代码层实现:起几个毫无关联的Redis实例,在代码层对key进行hash计算,然后去对应的Redis实例操作数据。这种方式对hash层代码要求比较高,考虑部分包括,节点失效后的替代算法方案,数据震荡后的自动脚本恢复,实例的监控等等。

Redis集群方案什么情况下会导致整个集群不可用?

如有A,B,C三个节点的集群,在没有复制模型的情况下,如果节点B失败了,那么整个集群就会以为缺少 5501-11000这个范围的槽而不可用。

添加图片注释,不超过 140 字(可选)

Redis集群的主从复制模型是怎样的?

为了使在部分节点失败或者大部分节点无法通信的情况下集群仍然可用,所以集群使用了主从复制模型, 每个节点都会有N-1个复制品。

Redis集群会有写操作丢失吗?为什么?

Redis并不能保证数据的强一致性,这意味这在实际中集群在特定的条件下可能会丢失写操作。

Redis集群之间是如何复制的?

Redis集群之间是通过异步复制。

Redis集群最大节点个数是多少?

16384个。

Redis集群如何选择数据库?

Redis集群目前无法做数据库选择,默认在0数据库。

Redis 持久化方案

Redis的持久化是什么?

RDB持久化:该机制可以在指定的时间间隔内生成数据集的时间点快照(point-in-time snapshot)。

AOF持久化:记录服务器执行的所有写操作命令,并在服务器启动时,通过重新执行这些命令来还原数据集。

AOF文件中的命令全部以Redis协议的格式来保存,新命令会被追加到文件的末尾。Redis还可以 在后台对AOF文件进行重写(rewrite),使得AOF文件的体积不会超出保存数据集状态所需的实际大小。

AOF和RDB的同时应用:当Redis重启时,它会优先使用AOF文件来还原数据集,因为AOF文件保存的数 据集通常比RDB文件所保存的数据集更完整。

RDB的优缺点?

优点:RDB是一个非常紧凑(compact)的文件,它保存了Redis在某个时间点上的数据集。这种文件非常适合用于进行备份:比如说你可以在近的24小时内,每小时备份一次RDB文件,并且在每个月的每一天,也备份一个RDB文件。这样的话,即使遇上问题也可以随时将数据集还原到不同的版本。

RDB非常适用于灾难恢复(disaster recovery):它只有一个文件,并且内容都非常紧凑,可以(在加密后)将它传送到别的数据中心,或者亚马逊S3中。

RDB可以最大化Redis的性能:父进程在保存RDB文件时唯一要做的就是fork出一个子进程,然后这个子进程就会处理接下来的所有保存工作,父进程无须执行任何磁盘I/O操作。RDB在恢复大数据集时的速度比AOF的恢

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值