主从环境

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

配置redis三主三从相关推荐

  1. 两台服务器安装redis集群_redis 集群搭建,小白也能搭三主三从的集群环境

    redis集群简介: Redis集群是一个程序集,它提供在多个 Redis节点之间共享数据. 一个 Redis集群不支持同时处理多个键的 Redis命令,因为这要求将数据移动到多个节点之间,这会降低 ...

  2. Redis三主三从集群搭建

    一.引子 主从复制以及哨兵,他们可以提高读的并发,但是单个master容量有限,数据达到一定程度会有瓶颈,这个时候可以通过水平扩展为多master-slave集群(看原理图). 所以一起来学习redi ...

  3. redis搭建三主三从架构

    最近有在学redis,这次就模仿着搭建了一个.本来网上也有很多版本,不过按照百度出来的内容进行搭建总是有各种问题,磕磕碰碰总算搭建成功,在此记录一下,供大家了解,防止以后自己忘记. 一.系统环境 VM ...

  4. Redis三主三从集群搭建(三台机器)

    介绍 redis三种模式 一.主从模式 Redis虽然读取写入的速度都特别快,但是也会产生读压力特别大的情况.为了分担读压力,Redis支持主从复制,Redis的主从结构可以采用一主多从或者级联结构. ...

  5. redis相关的详细介绍,包括三主三从集群的搭建

    文章目录 1. 数据结构 1.1 String 1.2 hash 3. 如何搭建redis集群 3.2 哈希槽 1.4 LIST 1.5 SET 1.6 Redis HyperLogLog 1. 数据 ...

  6. Redis搭建集群,三主三从集群模式

    几种常见的redis集群模式: 方案一:主从复制 优点: 支持主从复制,主机会自动将数据同步到从机,可以进行读写分离 为了分载Master的读操作压力,Slave服务器可以为客户端提供只读操作的服务, ...

  7. REDIS三主三从集群搭建笔记(redis版本5.0.8)

    mkdir -p /app/redis tar -zxvf redis-5.0.8.tar.gz -C /app/redis cd /app/redis/redis-5.0.8编译安装: make & ...

  8. 手把手搭建redis集群-三台虚拟机(三主三从)

    Redis集群环境搭建: Redis 集群简介: Redis 是一个开源的 key-value 分布式存储系统,由于其出众的性能,大部分互联网企业将其用来作为服务端分布式缓存使用.Redis 在 3. ...

  9. Docker高级篇笔记(七)在docker里面进行redis三主三从的集群案例搭建步骤

    目录 搭建三主三从集群 数据读写存储 主从容错的切换迁移 主从扩容 主从缩容 搭建三主三从集群 1 先启动docker 2 拉取redis镜像 3 创建6个redis容器 docker run -d ...

最新文章

  1. Base64编码的字符串与图片的互转
  2. PHP中添加HTML代码的三种方法(printEND)
  3. OpenCV3编程入门(毛星云)之用滚动条控制两图片的混合
  4. java c语言union转换_C语言联合体(union)的使用方法及其本质-union
  5. linux pci扫描链表,Linux Kernel ---- PCI Driver 分析
  6. 设置公共请求参数_封装一个useFetch实现页面销毁取消请求
  7. 安卓牛客专项练习2020.12.10
  8. FreeRTOS学习及移植笔记之一:开始FreeRTOS之旅
  9. 视差滚动教程、实现方法、源代码
  10. Android下结束进程的方法
  11. Java多线程学习二十七:AtomicInteger 在高并发下性能不好,如何解决?为什么?
  12. django再windows下测试命令总结
  13. StringBuffer跟StringBuilder以及HashMap跟HashTable
  14. 图象关于y轴对称是什么意思_高中数学常考问题1:函数、基本初等函数的图象与性质,真题分析...
  15. linux vim个人配色方案
  16. OneNote for windows10 微软商店下载UWP版本应用打不开
  17. 扫描仪怎样装无线网络服务器,怎么设置打印机IP地址和安装扫描仪。
  18. 全网解析视频接口自行测试
  19. pfSense®与OPNsense®技术比较
  20. DDD领域驱动设计笔记

热门文章

  1. linux环境部署常用命令
  2. ImageLoader设置圆形图片
  3. asp.net缓存(二)
  4. NodeJS+Express+Mysql+MongoDB之环境配置
  5. BlackHat Arsenal USA 2018 ToolsWatch黑客工具库
  6. 【12期 3月期刊 自荐】
  7. SpringBoot的配置项
  8. 测试人员报BUG的正确姿势
  9. Spark MaprLab-Auction Data分析
  10. UEditor 百度富文本编辑器 .Net实例