• 售前

  • 售后

热门帖子
入门百科

Linux(Centos7)下redis5集群搭建和使用说明详解

[复制链接]
想不到918 显示全部楼层 发表于 2021-10-26 13:51:02 |阅读模式 打印 上一主题 下一主题
目次


  • 1、扼要说明
  • 2、创建集群步骤

    • 2.1、创建目次
    • 2.2、下载源码并解压编译

  • 3、创建6个Redis配置文件
  • 4、启动节点
  • 5、启动集群
  • 6、集群的利用

    • 6.1、关闭集群
    • 6.2、重新启动集群
    • 6.3、利用脚本文件启动集群

  • 7、测试集群

1、扼要说明

2018年十月 Redis 发布了稳固版本的 5.0 版本,推出了各种新特性,此中一点是放弃 Ruby的集群方式,改为 利用 C语言编写的 redis-cli的方式,是集群的构建方式复杂度大大低落。关于集群的更新可以在 Redis5 的版本说明中看到,如下:
The cluster manager was ported from Ruby (redis-trib.rb) to C code inside redis-cli. check `redis-cli --cluster help ` for more info.
可以查看Redis官网查看集群搭建方式,连接如下
https://redis.io/topics/cluster-tutorial
集群中应该至少有三个节点,每个节点有一备份节点。须要6台服务器。
如果条件有限,可以搭建伪分布式,以下步骤是在一台 Linux 服务器上搭建有6个节点的 Redis集群。

2、创建集群步骤


2.1、创建目次

        新建目次:
  1. mkdir /usr/local/redis-cluster
复制代码

2.2、下载源码并解压编译
  1. ​wget http://download.redis.io/releases/redis-5.0.0.tar.gz
  2. tar xzf redis-5.0.0.tar.gz
  3. cd redis-5.0.0
  4. make
  5. make install PREFIX=/usr/local/redis
复制代码
3、创建6个Redis配置文件

    6个配置文件不能在同一个目次,此处我们界说如下:
  1. /root/software/redis/redis-cluster-conf/7001/redis.conf
  2. /root/software/redis/redis-cluster-conf/7002/redis.conf
  3. /root/software/redis/redis-cluster-conf/7003/redis.conf
  4. /root/software/redis/redis-cluster-conf/7004/redis.conf
  5. /root/software/redis/redis-cluster-conf/7005/redis.conf
  6. /root/software/redis/redis-cluster-conf/7006/redis.conf
复制代码
一些利用下令仅供参考:
  1. cp redis.conf /usr/local/redis/bin
  2. cd /usr/local/redis/
  3. cp -r bin ../redis-cluster/redis01
  4. cd /usr/local/redis-cluster/redis01
  5. rm dump.rdb #删除快照
  6. vim redis.conf
复制代码
配置文件的内容为:
  1. port 7001 #端口
  2. cluster-enabled yes #启用集群模式
  3. cluster-config-file nodes.conf
  4. cluster-node-timeout 5000 #超时时间
  5. appendonly yes
  6. daemonize yes #后台运行
  7. protected-mode no #非保护模式
  8. pidfile /var/run/redis_7001.pid
  9. bind 172.20.10.7 #127.0.0.1改为本机ip地址,可用ifconfig查看ip
复制代码
此中 port 和 pidfile 须要随着 文件夹的不同调增。
创建剩余5个实例:
  1. [root@master redis-cluster]# cp -r redis01/ redis02
  2. [root@master redis-cluster]# cp -r redis01/ redis03
  3. [root@master redis-cluster]# cp -r redis01/ redis04
  4. [root@master redis-cluster]# cp -r redis01/ redis05
  5. [root@master redis-cluster]# cp -r redis01/ redis06
复制代码
分别修改redis02 ~ redis06 的 redis.conf下的port 和 pidfile

4、启动节点

分别进入redis01、redis02、...redis06目次,实行: ./redis-server ./redis.conf
创建一个批处置惩罚文件,同时启动着六个Redis
  1. vim startall.sh
复制代码
添加如下内容:
  1. cd redis01
  2. ./redis-server redis.conf
  3. cd ..
  4. cd redis02
  5. ./redis-server redis.conf
  6. cd ..
  7. cd redis03
  8. ./redis-server redis.conf
  9. cd ..
  10. cd redis04
  11. ./redis-server redis.conf
  12. cd ..
  13. cd redis05
  14. ./redis-server redis.conf
  15. cd ..
  16. cd redis06
  17. ./redis-server redis.conf
  18. cd ..
复制代码
然后实行
  1. chmod u+x start-all.sh
复制代码
  1. start-all.sh
复制代码
酿成可实行文件
在当前目次下启动:
  1. ./startall.sh
复制代码
查看:
  1. ps aux|grep redis
复制代码
  1. <img alt="" src="https://img.jbzj.com/file_images/article/201906/2019062709500013.jpg" />
复制代码


5、启动集群

由于我们利用的5.0.0的版本的Redis搭建的集群只须要把编译后的redis目次中的这个redis-cli文件拷贝到redis-cluster目次过来即可。(Redis版本5.0以后都是用C语言直接启动)
  1. /usr/local/redis-cluster/redis-cli --cluster create 172.20.10.7:7001 172.20.10.7:7002 172.20.10.7:7003 172.20.10.7:7004 172.20.10.7:7005 172.20.10.7:7006 --cluster-replicas 1
复制代码
启动后,可看到成功信息,如下:
  1. >>> Performing hash slots allocation on 6 nodes...
  2. Master[0] -> Slots 0 - 5460
  3. Master[1] -> Slots 5461 - 10922
  4. Master[2] -> Slots 10923 - 16383
  5. Adding replica 172.20.10.7:7004 to 172.20.10.7:7001
  6. Adding replica 172.20.10.7:7005 to 172.20.10.7:7002
  7. Adding replica 172.20.10.7:7006 to 172.20.10.7:7003
  8. >>> Trying to optimize slaves allocation for anti-affinity
  9. [WARNING] Some slaves are in the same host as their master
  10. M: a4128b5e581c3722acd9b093c5f29f5056f680b0 172.20.10.7:7001
  11. slots:[0-5460] (5461 slots) master
  12. M: d6fed6f21269b8469a3076ac5fb168bd20f70c26 172.20.10.7:7002
  13. slots:[5461-10922] (5462 slots) master
  14. M: 51a0f62dacead745ce5351cdbe0bdbae553ce413 172.20.10.7:7003
  15. slots:[10923-16383] (5461 slots) master
  16. S: 45cc35740ac67f7988bb75325871ba12d08a76e4 172.20.10.7:7004
  17. replicates a4128b5e581c3722acd9b093c5f29f5056f680b0
  18. S: 668054fe16cdf8741152cae863f5c636ed18b803 172.20.10.7:7005
  19. replicates d6fed6f21269b8469a3076ac5fb168bd20f70c26
  20. S: ae39b7db285703f8c08412d6b04998c60a634295 172.20.10.7:7006
  21. replicates 51a0f62dacead745ce5351cdbe0bdbae553ce413
  22. Can I set the above configuration? (type 'yes' to accept):yes
复制代码
输入yes回车
  1. >>> Nodes configuration updated
  2. >>> Assign a different config epoch to each node
  3. >>> Sending CLUSTER MEET messages to join the cluster
  4. Waiting for the cluster to join
  5. ......
  6. >>> Performing Cluster Check (using node 172.20.10.7:7001)
  7. M: a4128b5e581c3722acd9b093c5f29f5056f680b0 172.20.10.7:7001
  8. slots:[0-5460] (5461 slots) master
  9. 1 additional replica(s)
  10. M: d6fed6f21269b8469a3076ac5fb168bd20f70c26 172.20.10.7:7002
  11. slots:[5461-10922] (5462 slots) master
  12. 1 additional replica(s)
  13. S: 45cc35740ac67f7988bb75325871ba12d08a76e4 172.20.10.7:7004
  14. slots: (0 slots) slave
  15. replicates a4128b5e581c3722acd9b093c5f29f5056f680b0
  16. M: 51a0f62dacead745ce5351cdbe0bdbae553ce413 172.20.10.7:7003
  17. slots:[10923-16383] (5461 slots) master
  18. 1 additional replica(s)
  19. S: 668054fe16cdf8741152cae863f5c636ed18b803 172.20.10.7:7005
  20. slots: (0 slots) slave
  21. replicates d6fed6f21269b8469a3076ac5fb168bd20f70c26
  22. S: ae39b7db285703f8c08412d6b04998c60a634295 172.20.10.7:7006
  23. slots: (0 slots) slave
  24. replicates 51a0f62dacead745ce5351cdbe0bdbae553ce413
  25. [OK] All nodes agree about slots configuration.
  26. >>> Check for open slots...
  27. >>> Check slots coverage...
  28. [OK] All 16384 slots covered.
复制代码
至此,Reids5 集群搭建完成。

6、集群的利用


6.1、关闭集群

方法一:
  redis5 提供了关闭集群的工具,在如下目次:
  1. /root/redis-5.0.0/utils/create-cluster
复制代码
   打开此文件修改端口为我们本身的,如下所示:

端口PROT设置为7000,NODES为6,工具会主动累加1 天生 7001-7006 六个节点 用于利用。
往下看再修改路径 和 添加 ip地点,如果不加会默认本地127.0.0.1

修改后,实行如下下令关闭集群:
  1. /root/redis-5.0.0/utils/create-cluster/create-cluster stop
复制代码
方法二:
create-cluster目次下编写脚本文件:vim shutdown.sh
内容如下:
  1. /usr/local/redis-cluster/redis-cli -c -h 172.20.10.7 -p 7001 shutdown
  2. /usr/local/redis-cluster/redis-cli -c -h 172.20.10.7 -p 7002 shutdown
  3. /usr/local/redis-cluster/redis-cli -c -h 172.20.10.7 -p 7003 shutdown
  4. /usr/local/redis-cluster/redis-cli -c -h 172.20.10.7 -p 7004 shutdown
  5. /usr/local/redis-cluster/redis-cli -c -h 172.20.10.7 -p 7005 shutdown
  6. /usr/local/redis-cluster/redis-cli -c -h 172.20.10.7 -p 7006 shutdown
复制代码
然后实行
  1. chmod u+x shutdown.sh
复制代码
将shutdown.sh酿成可实行文件
在当前目次下启动: ./shutdown.sh
查看:ps aux|grep redis
官方:/usr/local/redis-cluster/redis-cli -a xxx -c -h 192.168.5.100 -p 8001
提示:-a访问服务端暗码,-c表示集群模式,-h指定ip地点,-p指定端口号

6.2、重新启动集群
  1. /root/redis-5.0.0/utils/create-cluster/create-cluster start
复制代码

6.3、利用脚本文件启动集群

vim startall.sh 追加如下内容:(记得改本身ip地点)
  1. /usr/local/redis-cluster/redis-cli --cluster create 172.20.10.7:7001 172.20.10.7:7002 172.20.10.7:7003 172.20.10.7:7004 172.20.10.7:7005 172.20.10.7:7006 --cluster-replicas
复制代码
启动:./startall.sh

7、测试集群

redis-cluster目次下实行
  1. redis01/redis-cli -h 192.168.25.153 -p 7002 -c
复制代码
此中-c表示以集群方式连接redis,-h指定ip地点,-p指定端口号
cluster nodes 查询集群结点信息
cluster info 查询集群状态信息

总结
以上所述是小编给各人介绍的Linux(Centos7)下redis5集群搭建和利用说明详解 ,希望对各人有所资助,如果各人有任何疑问请给我留言,小编会及时复兴各人的。在此也非常感谢各人对脚本之家网站的支持!
如果你以为本文对你有资助,接待转载,烦请注明出处,谢谢!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作