redis集群的搭建

一. redis-cluster架构图

架构细节:

  • 所有的redis节点彼此互联(PING-PONG机制),节点的fail是通过集群中超过半数的节点检测失效时才生效

  •  存取数据时连接任一节点都可以,但集群中有一个节点fail整个集群都会fail

 Redis 集群中内置了 16384 个哈希槽,当需要在Redis 集群中放置一个 key-value 时,redis 先对 key 使用 crc16 算法算出一个结果,然后把结果对 16384 求余数,这样每个 key 都会对应一个编号在 0-16383 之间的哈希槽,redis 会根据节点数量大致均等的将哈希槽映射到不同的节点 crc16(key)%16384=0~16383

 二. redis集群的搭建

  • 搭建之前i请先在linux内安装一台redis服务器,redis安装请参考本链接博客内容:

https://blog.csdn.net/qq_46147786/article/details/126503802?spm=1001.2014.3001.5501

  • Redis集群中至少应该有三个节点。要保证集群的高可用,需要每个节点有一个备份机。
  • Redis集群至少需要6台服务器。
  • 搭建伪分布式。可以使用一台虚拟机运行6个redis实例。需要修改redis的端口号7001-7006

2.1 集群搭建环境

  • 使用ruby脚本搭建集群,需要安装ruby(redis-3.0.0.gem 需要上传到linux)

[root@upload ~]# yum install ruby
[root@upload ~]# yum install rubygems
[root@upload ~]# gem install redis-3.0.0.gem 

[root@localhost ~]# cd redis-3.0.0/src
[root@localhost src]# ll *.rb

-rwxrwxr-x. 1 root root 48141 Apr  1  2015 redis-trib.rb

 2.2 搭建步骤

注意:必须删除dump.rdb和appendonly.aof文件(不删除的搭建会报错)

  • 搭建伪分布式,需要6个redis实例放到/usr/local/redis-cluster目录下,并且运行在不同的端口7001-7006

cp -r  /usr/local/redis  /usr/local/redis-cluster/redis-7001

cp -r  /usr/local/redis  /usr/local/redis-cluster/redis-7002

cp -r  /usr/local/redis  /usr/local/redis-cluster/redis-7003

cp -r  /usr/local/redis  /usr/local/redis-cluster/redis-7004

cp -r  /usr/local/redis  /usr/local/redis-cluster/redis-7005

cp -r  /usr/local/redis  /usr/local/redis-cluster/redis-7006

  • 修改配置文件

进入配置文件:redis.conf,修改一下内容:

         port 7001
         cluster-enable yes

  • 创建启动集群的脚本:start-all.sh 放在/usr/java/redis-cluster目录下。

cd redis-7001
./bin/redis-server bin/redis.conf
cd ..
cd redis-7002
./bin/redis-server bin/redis.conf
cd ..
cd redis-7003
./bin/redis-server bin/redis.conf
cd ..
cd redis-7004
./bin/redis-server bin/redis.conf
cd ..
cd redis-7005
./bin/redis-server bin/redis.conf
cd ..
cd redis-7006
./bin/redis-server bin/redis.conf
cd .. 
[root@localhost redis-cluster]# chmod 777 start-all.sh

  • 创建关闭集群的脚本:shutdown-all.sh,放在/usr/local/redis-cluster目录下。

cd redis-7001
./redis7001/ bin/redis-cli -p 7001 shutdown
./redis7001/ bin/redis-cli -p 7002 shutdown
./redis7001/ bin/redis-cli -p 7003 shutdown
./redis7001/ bin/redis-cli -p 7004 shutdown
./redis7001/ bin/redis-cli -p 7005 shutdown
./redis7001/ bin/redis-cli -p 7006 shutdown
[root@localhost redis-cluster]# chmod 777shutdown-all.sh

  • 使用ruby脚本搭建redis集群----搭建redis集群之前6台redis服务器必须全部开启

cd /usr/upload/redis.3.0.0/src

./redis-trib.rb create --replicas 1 192.168.25.153:7001 192.168.25.153:7002 192.168.25.153:7003 192.168.25.153:7004 192.168.25.153:7005  192.168.25.153:7006

 三. 测试

  • 启动时使用-c参数来启动集群模式,命令如下:

./redis-cli -c -p 7001

 

  •  redis cluster命令

cluster info   #打印集群的信息

cluster nodes  #列出集群当前已知的所有节点(node),以及这些节点的相关信息

​​​

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值