Clúster de RedisCluster

Visión general

RedisCluster es la solución de clúster oficial de Redis proporcionada después de la versión 3.0 de Redis. Puede evitar las complicadas operaciones de supervisión y elección maestras del mecanismo centinela, y también puede implementar fácilmente el procesamiento de fragmentación de datos, aprovechando las ventajas de rendimiento del host del clúster y proporcionando Solución Redis más eficiente, que tiene en cuenta el modelo de arquitectura descentralizada. Cada nodo está relacionado con otros nodos y solo necesita obtener la información de un nodo y la información de otros nodos.

El clúster de Redis distribuirá todos los datos guardados de manera uniforme a cada host maestro de acuerdo con la relación maestro-esclavo existente. Si un host maestro no puede proporcionar servicios debido a problemas, otros hosts maestros participarán en la
elección de un host maestro para continuar brindando servicios.
Inserte la descripción de la imagen aquí

Pasos de implementación específicos

La arquitectura del clúster utiliza 9 servidores de base de datos de Redis, de los cuales tres hosts tienen tres procesos de Redis en cada uno. La información del anfitrión es la siguiente:

número de serie Nombre de host dirección IP descripción
1 nodo1 192.168.1.6 Servicio principal de Redis x3 (6381, 6382, 6383)
1 nodo2 192.168.1.7 Servicio principal de Redis x3 (6381, 6382, 6383)
1 nodo3 192.168.1.8 Servicio principal de Redis x3 (6381, 6382, 6383)

nodo1, nodo2, nodo3 host

apt-get install ruby ruby-dev rubygems	#Ruby开发环境配置相关开发包的配置
mkdir -p /usr/data/redis/{
    
    redis-6381,redis-6382,redis-6383}/{
    
    logs,run,dbcache,config} #新建三套数据目录

#复制三套配置文件
cp /usr/local/redis/conf/redis.conf /usr/local/redis/conf/redis-6381.conf
cp /usr/local/redis/conf/redis.conf /usr/local/redis/conf/redis-6382.conf
cp /usr/local/redis/conf/redis.conf /usr/local/redis/conf/redis-6383.conf

vim /usr/local/redis/conf/redis-6381.conf #打开配置文件

#配置信息 
protect-mode no	#关闭受保护模式
port 6381	#监听端口
pidfile /usr/data/redis/redis-6381/run/redis_6381.pid	#pid保护目录
dir /usr/data/redis/redis-6381/dbcache
logfile "/usr/data/redis/redis-6381/logs/redis_6381.log"
#requirepass test	#取消密码配置
cluster-enabled yes	#配置开启cluster集群
cluster-config-file /usr/data/redis/redis-6381/config/nodes-6381.conf
cluster-node-timeout 15000	#定义连接的超时时间

vim /usr/local/redis/conf/redis-6382.conf #打开配置文件 

#配置信息 
protect-mode no	#关闭受保护模式
port 6382	#监听端口
pidfile /usr/data/redis/redis-6382/run/redis_6382.pid	#pid保护目录
dir /usr/data/redis/redis-6382/dbcache
logfile "/usr/data/redis/redis-6382/logs/redis_6382.log"
#requirepass test	#取消密码配置
cluster-enabled yes	#配置开启cluster集群
cluster-config-file /usr/data/redis/redis-6382/config/nodes-6382.conf
cluster-node-timeout 15000	#定义连接的超时时间


vim /usr/local/redis/conf/redis-6383.conf #打开配置文件 
#配置信息 
protect-mode no	#关闭受保护模式
port 6383	#监听端口
pidfile /usr/data/redis/redis-6383/run/redis_6383.pid	#pid保护目录
dir /usr/data/redis/redis-6383/dbcache
logfile "/usr/data/redis/redis-6383/logs/redis_6383.log"
#requirepass test	#取消密码配置
cluster-enabled yes	#配置开启cluster集群
cluster-config-file /usr/data/redis/redis-6383/config/nodes-6383.conf
cluster-node-timeout 15000	#定义连接的超时时间

#分别启动实例6381、6382、6383
/usr/local/redis/bin/redis-server /usr/local/redis/conf/redis-6381.conf 
/usr/local/redis/bin/redis-server /usr/local/redis/conf/redis-6382.conf 
/usr/local/redis/bin/redis-server /usr/local/redis/conf/redis-6383.conf


ps aux | grep redis	#查看当前主机Redis的进程

Inserte la descripción de la imagen aquí

gem install redis #使用Ruby管理控制Redis 安装Redis的相关依赖包
cp redis-6.2.1/src/redis-trib.rb /usr/local/redis/bin/	#复制集群配置程序

#Redis主机加入到集群配置中
#/usr/local/redis/bin/redis-trib.rb create -replicas 2 192.168.1.6:6381 192.168.1.6:6382 192.168.1.6:6383 192.168.1.7:6381 192.168.1.7:6382 192.168.1.7:6383 192.168.1.8:6381 192.168.1.8:6382 192.168.1.8:6383 #已经被移除了
/usr/local/redis/bin/redis-cli --cluster create  192.168.1.6:6381 192.168.1.6:6382 192.168.1.6:6383 192.168.1.7:6381 192.168.1.7:6382 192.168.1.7:6383 192.168.1.8:6381 192.168.1.8:6382 192.168.1.8:6383 --cluster-replicas 2 -a test #

/usr/local/redis/bin/redis-cli -h 192.168.1.6 -p 6381
CONFIG SET protected-mode yes #打开受保护模式
ONFIG SET requirepass test	 #设置认证密码
auth test #设置密码需要登陆
CONFIG SET masterauth test	#整个集群需要一个统一的密码
CONFIG REWRITE #重写写入配置文件
SHUTDOWN #关闭当前Redis进程

Inserte la descripción de la imagen aquí

#在所有的主机上重新启动redis进程
/usr/local/redis/bin/redis-server /usr/local/redis/conf/redis-6379.conf 
/usr/local/redis/bin/redis-server /usr/local/redis/conf/redis-6380.conf 
/usr/local/redis/bin/redis-server /usr/local/redis/conf/redis-6381.conf

vim /var/lib/gems/2.7.0/gems/redis-3.0.7/lib/redis/client.rb 	#由于通过配置命令实现了密码处理,所以此时需要手动修改Ruby配置文件,追加Redis的连接密码,才可以正常使用RedisCluster集群

Inserte la descripción de la imagen aquí

#/usr/local/redis/bin/redis-trib.rb check 192.168.1.8:6382 #当前版本6.2.1不可用改用下面
redis-cli --cluster check 192.168.1.8:6382 -a test	#检测集群状态

/usr/local/redis/bin/redis-cli -h 192.168.1.8 -p 6383 -a test -c #登陆集群中的任意Master,使用-c进行集群查询
set mldn helloworld	#设置数据 客户端node3上设置数据

Ver datos en el nodo host1
Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/sinat_27674731/article/details/114853223
Recomendado
Clasificación