配置redis三主三从

主从环境

centos7.6
redis4.0.1

192.168.181.139:6379 192.168.181.136:6379
192.168.181.136:6380 192.168.181.137:6380
192.168.181.137:6381 192.168.181.139:6381

集群实例配置

这里展示192.168.181.139:6379节点的,其他配置修改ip、端口号和文件名

bind 192.168.181.139
port 6379
pidfile /var/run/redis-master-6379.pid
logfile "/data/logs/redis/redis-master-6379.log"
dbfilename dump-master-6379.rdb
dir "/data/redis"
appendonly yes
appendfilename "appendonly-master-6379.aof"
aof-use-rdb-preamble yes
cluster-enabled yes
cluster-config-file nodes-master-6379.conf
cluster-node-timeout 10000

启动实例

完成各个实例启动,该过程略,自行完成实例启动

配置三主三从

配置过程有两种方法,第一个是手动配置,第二个是采用redis-trib.rb工具配置,这先用手动配置。集群配置过程分为节点握手数据槽分配以及主从关系配置三个操作构成。

手动配置三主三从

以下操作在192.168.181.139主机上完成,集群信息共享,所以只用一个节点操作即可

节点握手

# 实例发现
redis-cli -h 192.168.181.139 -p 6379 cluster meet 192.168.181.139 6379
redis-cli -h 192.168.181.139 -p 6379 cluster meet 192.168.181.139 6381
redis-cli -h 192.168.181.139 -p 6379 cluster meet 192.168.181.136 6380
redis-cli -h 192.168.181.139 -p 6379 cluster meet 192.168.181.136 6379
redis-cli -h 192.168.181.139 -p 6379 cluster meet 192.168.181.137 6381
redis-cli -h 192.168.181.139 -p 6379 cluster meet 192.168.181.137 6380

**数据槽分配*

# 分配数据槽
for i in {0..5400}; do redis-cli -h 192.168.181.139 -p 6379 cluster addslots $i; done > /dev/null
for i in {5401..11000}; do redis-cli -h 192.168.181.136 -p 6380 cluster addslots $i; done > /dev/null
for i in {11001..16383}; do redis-cli -h 192.168.181.137 -p 6381 cluster addslots $i; done > /dev/null

到这一步,一个三主的redis集群已经搭建起来了,接下来配置主从关系,注意,尽量不要让一对主从关系出现在同一个系统上,避免系统故障带来损失
配置集群主从关系是通过实例ID的来配置的,实例ID是唯一性的,查看集群节点,注意查看节点ID,接下来配置主从关系需要用到

# 查看节点ID
[root@ware2 ~]# redis-cli -h 192.168.181.139 -p 6379 cluster nodes
0b03d2098d7cb7e10d540747eed9b2804c424d18 192.168.181.136:6380@16380 master - 0 1551059531000 2 connected 5401-11000
4bf34e9120d54a4d3d609fdea3cf5613787f0d2d 192.168.181.139:6379@16379 myself,master - 0 1551059528000 1 connected 0-5400
ea9e5923466ee0df2447f10c3835ddf1041c0d7f 192.168.181.137:6380@16380 master - 0 1551059531661 5 connected
f0e6d8f9d84209623613dd48a00c8c263b5ecc88 192.168.181.137:6381@16381 master - 0 1551059531000 0 connected 11001-16383
c32bb72dda43f27dd9554cfda556de10ea1220cf 192.168.181.139:6381@16381 master - 0 1551059532000 4 connected
3c2e20644c38878cceb5e4b89a9c9ba7adf03d2a 192.168.181.136:6379@16379 master - 0 1551059532669 3 connected

配置主从关系

# 192.168.181.136:6379作为4bf34e9120d54a4d3d609fdea3cf5613787f0d2d(192.168.181.139:6379)的从实例,以下类似
redis-cli -h 192.168.181.136 -p 6379 cluster replicate 4bf34e9120d54a4d3d609fdea3cf5613787f0d2d
redis-cli -h 192.168.181.137 -p 6380 cluster replicate 0b03d2098d7cb7e10d540747eed9b2804c424d18
redis-cli -h 192.168.181.139 -p 6381 cluster replicate f0e6d8f9d84209623613dd48a00c8c263b5ecc88

到这一步,集群配置完成,可以用以下命令分别查看主从状态和集群信息

# 主从状态
redis-cli -h 192.168.181.139 -p 6379 cluster nodes
# 集群信息
redis-cli -h 192.168.181.139 -p 6379 cluster info

使用redis-trib.rb创建集群

该工具在redis安装后的src目录,对应配置redis集群非常方便,需要安装ruby(version>2.2)环境
本次实验在centos7.6,但自带的ruby2.0版本低于要求,需要手动安装ruby

安装ruby

# 安装rvm
# 通过gpg2导入密钥
gpg2 --keyserver hkp://keys.gnupg.net --recv-keys D39DC0E3
curl -sSL https://rvm.io/pkuczynski.asc | gpg2 --import -
https://rvm.io/mpapis.asc | gpg2 --import -
curl -L get.rvm.io | bash -s stable
source /usr/local/rvm/scripts/rvm

rvm常见操作

# 查看rvm库中已知的ruby版本
rvm list known
# 安装一个ruby版本
rvm install 2.3.3
# 使用一个ruby版本
rvm use 2.3.3
# 设置默认版本
rvm use 2.3.3 --default
# 卸载一个已知版本
rvm remove 2.0.0
# 安装redis,这一步很关键
gem install redis

到这一步已经可以使用redis-trib.rb配置集群了
使用redis-trib.rb create命令完成节点握手和槽分配过程
注意:指定 主从节点时,前三个为主节点;后三个为对应从节点

# 在这之前重新搭配环境,删除文件,然后启动各个实例
redis-trib.rb create --replicas 1 192.168.181.139:6379 192.168.181.136:6380 192.168.181.137:6381 192.168.181.139:6381 192.168.181.136:6379 192.168.181.137:6380

原文地址:https://www.cnblogs.com/AutoSmart/p/10429423.html

时间: 2024-10-10 21:17:38

配置redis三主三从的相关文章

纯手动创建Redis Cluster集群,最原始的三主三从创建方法

Cluster集群Redis Cluster是官方提供的高可用方案,一个去中心化的Redis集群方案,所有的Redis节点彼此间互联(PING-PONG机制),客户端直连任意节点即可连接到Cluster集群,无需haproxy中间件.总结:1. 去中心化,分片存储,把所有的物理节点映射到[0-16383]共16384个slot(槽位)上,并不一定平均分配.2. Redis集群预分好16384个桶,当需要在 Redis 集群中放置一个 key-value 时,根据 CRC16(key) mod 1

Docker搭建redis-cluster集群三主三备

环境准备 系统:centos7.7 redis:5.0.5 master1:192.168.33.9:7071 master2:192.168.33.10:7072 master3:192.168.33.11:7073 slave1:192.168.33.9:7074 slave2:192.168.33.10:7075 slave3:192.168.33.11:7076 一.搭建redis集群(以下步骤在每台服务器上都要执行) 1.>安装docker yum -y install docker

redis三主三从部署

服务器A:192.168.3.188 centos7服务器B:192.168.3.189 centos7关闭firewalld防火墙,关闭selinux:redis 版本4.0.1,至少6台做redis cluster yum -y install wget vim tcl gcc make mkdir –p /usr/local/redis cd !$ wget http://download.redis.io/releases/redis-4.0.1.tar.gz tar –xvf redi

redis集群三主三从模式快速部署

****部署环境centos6.5.redis-3.2.1.tar.gz源码包 一.安装部署1.解压编译安装#cd /usr/local#tar -zxvf redis-3.2.1.tar.gz #####请自行下载需要的源码包#cd redis-3.2.1#make && make install 2.将 redis-trib.rb 复制到 /usr/local/bin 目录下#cd src#cp redis-trib.rb /usr/local/bin/ 3.创建 Redis 节点(可

redis4.0.1三主三从

参考:https://blog.csdn.net/weixin_44316575/article/details/88726110 实验只用了一台192.168.25.13虚拟机的6个端口7000~7005 使用www用户安装redis   su - www cd /data/package/ sudo wget http://download.redis.io/releases/redis-4.0.1.tar.gz 安装依赖软件 sudo yum -y install gcc gcc-c++

Redis系列(三)--过期策略

制定Redis过期策略,是整个Redis缓存策略的关键之一,因为内存来说,公司不可能无限大,所以就要对key进行一系列的管控. 文章结构:(1)理解Redis过期设置API(命令与Java描述版本):(2)理解Redis内部的过期策略:(3)对开发需求而言,Redis过期策略的设计实现经验. 本系列文章: (1)Redis系列(一)–安装.helloworld以及读懂配置文件 (2)Redis系列(二)–缓存设计(整表缓存以及排行榜缓存方案实现) 一.理解Redis过期设置API(命令与Java

分布式缓存技术redis学习(三)——redis高级应用(主从、事务与锁、持久化)

  上文<详细讲解redis数据结构(内存模型)以及常用命令>介绍了redis的数据类型以及常用命令,本文我们来学习下redis的一些高级特性.目录如下: 安全性设置 设置客户端操作秘密 客户端授权方式 主从复制 主从复制的特点 主从复制的过程 配置主从服务器 事务与锁 事务开启与取消 乐观锁 持久化机制 RDB方式 AOF方式 发布以及订阅消息   安全性设置 设置客户端操作秘密 redis安装好后,默认情况下登陆客户端和使用命令操作时不需要密码的.某些情况下,为了安全起见,我们可以设置在客

redis学习(三)redis持久化

redis持久化 1.redis持久化介绍 我们知道redis性能之所以强悍,是因为redis在运行时将数据都存放在了访问效率远高于硬盘的内存之中.可是这带来了新的问题:在redis或者外部系统重启时,内存中的数据将会丢失,由于目前的内存介质RAM是易失的,非正常的断电也会导致数据的丢失. 在一些场合下我们会希望redis能够将内存中的数据永久性的保存起来. 例如: 1.redis作为数据库,将数据永久的保存起来. 2.redis作为缓存服务器,不希望出现大量缓存数据同时丢失造成缓存被穿透的"雪

Redis学习笔记三

一.Redis持久化 Redis是一个支持持久化的内存数据库,redis需要经常将内存中的数据同步到磁盘来保证持久化. redis提供了不同级别的持久化方法: Snapshotting(快照,默认方式):能够在指定的时间间隔对你的操作进程快照存储 Append-only file(缩写aof):记录每次对服务器写的操作,当服务器重启时会重新执行这些命令来恢复原始的数据 如果你只希望你的数据在服务器运行的时候存在,你也可以不使用任何持久化方式 你也可以同时开启两种持久化方法,这种情况下,当redi