redis cluster 部署过程

一, 特点

高性能:

  1、在多分片节点中,将16384个槽位,均匀分布到多个分片节点中
  2、存数据时,将key做crc16(key),然后和16384进行取模,得出槽位值(0-16383之间)
  3、根据计算得出的槽位值,找到相对应的分片节点的主节点,存储到相应槽位上
  4、如果客户端当时连接的节点不是将来要存储的分片节点,分片集群会将客户端连接切换至真正存储节点进行数据存储

高可用:
  在搭建集群时,会为每一个分片的主节点,对应一个从节点,实现slaveof的功能,同时当主节点down,实现类似于sentinel的自动failover的功能。

  1、redis会有多组分片构成(3组)
  2、redis cluster 使用固定个数的slot存储数据(一共16384slot)
  3、每组分片分得1/3 slot个数(0-5500  5501-11000  11001-16383)
  4、基于CRC16(key) % 16384 ====》值 (槽位号)。

规划、搭建过程:

  6个redis实例,一般会放到3台硬件服务器
  注:在企业规划中,一个分片的两个分到不同的物理机,防止硬件主机宕机造成的整个分片数据丢失。

二, 配置

端口号:7000-7005

1、安装集群插件
  EPEL源安装ruby支持
  yum install ruby rubygems -y

使用国内源
  gem sources -l
  gem sources -a http://mirrors.aliyun.com/rubygems/
  gem sources  --remove https://rubygems.org/
  gem sources -l
  gem install redis -v 3.3.3

或者:
  gem sources -a http://mirrors.aliyun.com/rubygems/  --remove https://rubygems.org/

2、集群节点准备

  1 mkdir /data/700{0..7}
  2
  3 vim /data/7000/redis.conf
  4 port 7000
  5 daemonize yes
  6 pidfile /data/7000/redis.pid
  7 loglevel notice
  8 logfile "/data/7000/redis.log"
  9 dbfilename dump.rdb
 10 dir /data/7000
 11 protected-mode no
 12 cluster-enabled yes
 13 cluster-config-file nodes.conf
 14 cluster-node-timeout 5000
 15 appendonly yes
 16
 17
 18 vim /data/7001/redis.conf
 19 port 7001
 20 daemonize yes
 21 pidfile /data/7001/redis.pid
 22 loglevel notice
 23 logfile "/data/7001/redis.log"
 24 dbfilename dump.rdb
 25 dir /data/7001
 26 protected-mode no
 27 cluster-enabled yes
 28 cluster-config-file nodes.conf
 29 cluster-node-timeout 5000
 30 appendonly yes
 31
 32
 33 vim /data/7002/redis.conf
 34 port 7002
 35 daemonize yes
 36 pidfile /data/7002/redis.pid
 37 loglevel notice
 38 logfile "/data/7002/redis.log"
 39 dbfilename dump.rdb
 40 dir /data/7002
 41 protected-mode no
 42 cluster-enabled yes
 43 cluster-config-file nodes.conf
 44 cluster-node-timeout 5000
 45 appendonly yes
 46
 47
 48
 49 vim /data/7003/redis.conf
 50 port 7003
 51 daemonize yes
 52 pidfile /data/7003/redis.pid
 53 loglevel notice
 54 logfile "/data/7003/redis.log"
 55 dbfilename dump.rdb
 56 dir /data/7003
 57 protected-mode no
 58 cluster-enabled yes
 59 cluster-config-file nodes.conf
 60 cluster-node-timeout 5000
 61 appendonly yes
 62
 63
 64
 65 vim /data/7004/redis.conf
 66 port 7004
 67 daemonize yes
 68 pidfile /data/7004/redis.pid
 69 loglevel notice
 70 logfile "/data/7004/redis.log"
 71 dbfilename dump.rdb
 72 dir /data/7004
 73 protected-mode no
 74 cluster-enabled yes
 75 cluster-config-file nodes.conf
 76 cluster-node-timeout 5000
 77 appendonly yes
 78
 79
 80 vim /data/7005/redis.conf
 81 port 7005
 82 daemonize yes
 83 pidfile /data/7005/redis.pid
 84 loglevel notice
 85 logfile "/data/7005/redis.log"
 86 dbfilename dump.rdb
 87 dir /data/7005
 88 protected-mode no
 89 cluster-enabled yes
 90 cluster-config-file nodes.conf
 91 cluster-node-timeout 5000
 92 appendonly yes
 93
 94
 95
 96 vim /data/7006/redis.conf
 97 port 7006
 98 daemonize yes
 99 pidfile /data/7006/redis.pid
100 loglevel notice
101 logfile "/data/7006/redis.log"
102 dbfilename dump.rdb
103 dir /data/7006
104 protected-mode no
105 cluster-enabled yes
106 cluster-config-file nodes.conf
107 cluster-node-timeout 5000
108 appendonly yes
109
110
111 vim /data/7007/redis.conf
112 port 7007
113 daemonize yes
114 pidfile /data/7007/redis.pid
115 loglevel notice
116 logfile "/data/7007/redis.log"
117 dbfilename dump.rdb
118 dir /data/7007
119 protected-mode no
120 cluster-enabled yes
121 cluster-config-file nodes.conf
122 cluster-node-timeout 5000
123 appendonly yes

启动节点:

1 redis-server /data/7000/redis.conf
2 redis-server /data/7001/redis.conf
3 redis-server /data/7002/redis.conf
4 redis-server /data/7003/redis.conf
5 redis-server /data/7004/redis.conf
6 redis-server /data/7005/redis.conf
7 redis-server /data/7006/redis.conf
8 redis-server /data/7007/redis.conf

1 [[email protected] ~]# ps -ef |grep redis

3、将节点加入集群管理

1 redis-trib.rb create --replicas 1 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005

4、集群状态查看

集群主节点状态

redis-cli -p 7000 cluster nodes | grep master

集群从节点状态

1 redis-cli -p 7000 cluster nodes | grep slave

三, 添加节点

集群节点管理

  添加主节点:

  1 redis-trib.rb add-node 127.0.0.1:7006 127.0.0.1:7000

    add-node 后面写的地址为需要添加的地址

       最后的地址为管理的地址

  

  添加一个从节点

   1 redis-trib.rb add-node --slave --master-id d3d67f8fd1680caba870a8b5a167c365088f6840 127.0.0.1:7007 127.0.0.1:7000

  --master-id 后面的是对应的主节点id值

  后面跟的是从节点地址

  最后的是管理节点地址

  -----------------------------注意---------------------------

  

转移slot(重新分片)----------------------------重点-----------------------每次添加都必须slot

  

  添加节点后默认是没有slot的

运行

redis-trib.rb reshard 127.0.0.1:7000

   后面的数字填写的是需要挪动的slot数 一般是16384除以主节点数得出的结果 

    这个id值为需要接收的id 就是哪个新添加需要接收slot的id值

               这个是选择从哪里拿slot值,   选择all就是再所有节点上拿一点, 输入id值为选择从这个节点拿这么多

    选择yes 表示开始配置!!!!!

  

原文地址:https://www.cnblogs.com/kingle-study/p/10044775.html

时间: 2024-12-25 02:36:43

redis cluster 部署过程的相关文章

002. Redis Cluster 部署

一.规划篇 1.机器规划 Matser                   Slave 192.168.1.31:7000              192.168.1.31:7001 192.168.1.32:7000              192.168.1.32:7001 192.168.1.33:7000              192.168.1.33:7001 192.168.1.34:7000              192.168.1.34:7001 2.程序规划 配置文

170103、Redis官方集群方案 Redis Cluster

前面我们谈了Redis Sharding多服务器集群技术,Redis Sharding是客户端Sharding技术,对于服务端来说,各个Redis服务器彼此是相互独立的,这对于服务端根据需要灵活部署Redis非常轻便,Redis Sharding具有很好的灵活性.可伸缩性,是一种轻量级集群技术. 本篇,介绍另外一种多Redis服务器集群技术,即Redis Cluster.Redis Cluster是一种服务器Sharding技术,3.0版本开始正式提供. Redis Cluster中,Shard

redis cluster单机伪分布式搭建--- 3主3从3哨兵集群

redis cluster单机伪分布式搭建--- 3主3从3哨兵集群 最近公司引进微服务框架,之前的一台redis的预存60G已经无法满足现在的260G业务需要,经过一番考虑搭建了这套集群 . 为了方便我就用一台服务器演示,生产环境中不建议这么做(没啥用),只为记录一下过程,至于精细化的配置需要在生产中自行研究 演示环境 [[email protected] ~]# cat /etc/redhat-release CentOS Linux release 7.4.1708 (Core) redi

centos6下redis cluster集群部署过程

一般来说,redis主从和mysql主从目的差不多,但redis主从配置很简单,主要在从节点配置文件指定主节点ip和端口,比如:slaveof 192.168.10.10 6379,然后启动主从,主从就搭建好了.redis主从中如果主节点发生故障,不会自动切换,需要借助redis的Sentinel(哨兵模式)或者keepalive来实现主的故障转移. 今天介绍下redis cluster集群模式:redis集群是一个无中心的分布式redis存储架构,可以在多个节点之间进行数据共享,解决了redi

定制Dockerfile实现redis cluster的docker化部署及集群管理

我们知道redis cluster的部署是很麻烦的,如果在一台服务器启动多个redis实例的话,需要一个个的cp配置文件到指定的目录,然后一个个的修改端口及相关的信 息...以前经常这么干. 如果采用docker后,我们可以更加方便的启动redis, 我们只需要传递端口参数,在dockerfile里定制一个entrypoint脚本,脚本可以接收docker run的参数-. 但是也可以采用 dockerfile的env参数来定制改变端口... 这个是centos的 dockerfile配置,版本

Redis集群部署过程记录(3台服务器共6个节点)

这是我的第一篇博文,整理了我在部署Redis集群踩过的坑,以及详细的部署过程,同时归结了部署过程中遇到的问题的处理方法.1.部署的环境:SUSE Linux Enterprise 11 sp42.涉及到的安装包如下:(1) 安装包:redis-4.0.2.tar.gz下载地址:http://download.redis.io/releases/ redis官网http://www.redis.io(2) 接口包:redis-4.0.0.gem(3) 脚本语言包:ruby-2.4.2.tar.gz

Redis Cluster集群部署搭建

在Oracle的路上走了许多年,换换感觉,尝试一下新的知识,也是一个不错的感觉.Redis,一个超轻量化的内存数据库,只做一小块数据库功能实现,却非常优秀的一个产品.今天,就分享一下安装Redis集群的过程. 搭建redis集群,建议至少需要准备3台服务器,共搭建6个节点,3个master,3个slave,并且要求3个master节点不能全部跑到同一台服务器上,保证节点安全,3台服务器的配置相同,使用redistest账号搭建,对应的端口是7000/7001/7002端口 我的集群分配如下,每个

多节点 安装redis cluster安装部署-4.0.1

环境 节点数量 IP:172.17.7.11   CPU :12 核  MEM:96G   启动服务数量:6   使用端口:7001~12IP:172.17.7.25   CPU :12 核  MEM:96G   启动服务数量:6   使用端口:7001~12IP:172.17.7.26   CPU :12 核  MEM:96G   启动服务数量:6   使用端口:7001~12 kernel uname -aLinux jp33e503-7-11.ptfuture.com 3.10.0-514

Kubernetes 通过statefulset部署redis cluster集群

Kubernetes 通过statefulset部署redis cluster集群 作者: 张首富 时间: 2019-02-19 个人博客地址: https://www.zhangshoufu.com QQ群: 895291458 需要有redis基础 Redis集群架构图 每个Mater 都可以拥有多个slave.当Master掉线后,redis cluster集群会从多个Slave中选举出来一个新的Matser作为代替,而旧的Master重新上线后变成 Master 的Slave. 部署re