redis集群原理详解-redis集群详细教程(6-1-45)
更新时间:2024-09-11 分类:Redis 浏览量:2
Redis本文目录一览:
- 1、redis集群方案有哪些
- 2、如何实现高可用的redis集群
- 3、Redis集群操作
- 4、Redis集群模式1-主从复制+哨兵机制
- 5、Redis怎么做集群
redis集群方案有哪些
基于以上,Redis集群方案显得尤为重要。通常有3个途径:官方Redis Cluster;通过Proxy分片;客户端分片(Smart Client)。以上三种方案各有利弊。
Redis官方集群方案 Redis Cluster Redis Cluster是一种服务器Sharding技术,0版本开始正式提供。Redis Cluster中,Sharding采用slot(槽)的概念,一共分成16384个槽,这有点儿类pre sharding思路。
使用Jedis带的客户端分片ShardedJedisPool类。使用代理进行分片twemproxy,连接代理可以使用Jedis类(单链接)和JedisPool类(多链接)。
传统的Redis集群采用的主从复制模式,一般为一主多从,主节点有读写权限,但是从节点只有读的权限。主节点会定期将数据同步到从节点中,保证数据一致性的问题。
步骤一:使用redis-trib命令,找到集群中的任意一个主节点(红色位置表现集群中的任意一个主节点),对其进行重新分片工作。输出如下:1提示一:是希望你需要多少个槽移动到新的节点上,可以自己设置,比如200个槽。
redis-cluster投票:容错,投票过程是集群中所有master参与,如果半数以上master节点与master节点通信超过(cluster-node-timeout),认为当前master节点挂掉。
如何实现高可用的redis集群
Redis 高可用方案常用的有两种:Redis Sentinel 和 Redis Cluster ,本篇笔记介绍这两种方案如何在 Kubernetes 中部署。
您可以使用 Kubernetes StatefulSets 和 PersistentVolumes 在 Kubernetes 中部署 Redis 集群。以下是一个简单的步骤: 创建一个 ConfigMap,其中包含 Redis 配置文件。
为了增加集群的可访问性,官方推荐的方案是将node配置成主从结构,即一个master主节点,挂n个slave从节点。如果主节点失效,redis cluster会根据选举算法从slave节点中选择一个上升为master节点,整个集群继续对外提供服务。
主从复制可以提高Redis集群的可用性,当主节点出现故障时,从节点可以自动或者手动替代主节点的职责,从而保证Redis集群的高可用性。
Proxy:现在很多主流的Redis集群都会使用Proxy方式,例如早已开源的Codis。这种方案有很多优点,因为支持原声redis协议,所以客户端不需要升级,对业务比较友好。并且升级相对平滑,可以起多个Proxy后,逐个进行升级。
Redis集群操作
演示集群采用1主2从,采用伪集群,在一台虚拟机中启动,端口暂定6386386383,集群结构可以选择下面2种,因为数量较少,此次采用普通样式。
使用redis-trib.rb,这个是安装redis时就自带的一种集群,采用了服务端分片的方式,支持主备,此集群既解决了高并发的问题,也解决了高可用的问题。Jedis使用JedisCluster类来访问。使用Jedis带的客户端分片ShardedJedisPool类。
首先,当一个集群中主节点失效或不可用时,集群中的节点会感知到,并开始进行节点选举。选举过程中,每个节点都会向节点发送自己的选票,选票中包含了该节点的ID、当前的配置纪元和自身的优先级等信息。
您可以使用 Kubernetes StatefulSets 和 PersistentVolumes 在 Kubernetes 中部署 Redis 集群。以下是一个简单的步骤: 创建一个 ConfigMap,其中包含 Redis 配置文件。
为了将一台服务器进行关机和重启,您可以按照以下步骤进行操作:关闭所有正在运行的 Redis 实例。
redis 25212:8383 get mykey 124该命令可在指定的master或slave的客户端上执行,但只在从节点上的执行才会让从节点提供读服务。
Redis集群模式1-主从复制+哨兵机制
传统的Redis集群采用的主从复制模式,一般为一主多从,主节点有读写权限,但是从节点只有读的权限。主节点会定期将数据同步到从节点中,保证数据一致性的问题。
哨兵模式是一种特殊的模式,首先Redis提供了哨兵的命令,哨兵是一个独立的进程,作为进程,它会独立运行。其原理是哨兵通过发送命令,等待Redis服务器响应,从而监控运行的多个Redis实例。
集群监控,负责监控redis master 和slave进程是否正常工作。(2)消息通知,如果某个redis实例有故障,那么哨兵负责发送消息作为报警通知给管理员。(3)故障转移,如果master node挂掉了,会自动转移到slave node上。
因此, 主从模式的一个缺点,就在于无法实现自动化地故障恢复 。Redis后来引入了哨兵机制,哨兵机制大大提升了系统的高可用性。哨兵,就是站岗放哨的,时刻监控周围的一举一动,在第一时间发现敌情并发出及时的警报。
Redis 高可用的主要有三种模式: 主从模式, 哨兵模式和集群模式。 Redis 提供了 Redis 提供了复制(replication)功能,当一台 redis 数据库中的数据发生了变化,这个变化会被自动地同步到其他的 redis 机器上去。
哨兵模式就是在主从模式的基础上再加一个哨兵集群。每个哨兵都会监控主节点和从节点的状态。如果主节点挂了,就会从从节点中选出一个来作为主节点,以达到高可用的目的。
Redis怎么做集群
客户端与redis节点直连,不需要连接集群所有的节点,连接集群中任何一个可用节点即可。redis-trib.rb脚本(rub语言)为集群的管理工具,比如自动添加节点,规划槽位,迁移数据等一系列操作。
以下是一个简单的步骤: 创建一个 ConfigMap,其中包含 Redis 配置文件。 创建一个 StatefulSet,其中包含 3 个副本的 Redis Pod。 创建一个 PersistentVolumeClaim,用于存储 Redis 数据。
准备redis镜像 Redis官方已经提供了Redis 2和3的镜像,都可以用来作为Redis集群的镜像,2是稳定版本。目前官方推出了alpine版本的Redis镜像,alpine镜像的优势是体积小。
首先要有linux环境,然后下载redis0以上版本。redis结合使用ruby实现了集群,所以需要ruby环境,安装ruby环境和redis的gem接口后,就可以使用redis的redis-trib.rb脚本创建集群。步骤:修改配置文件,启动多个redis实例。