当前位置: 首页>后端>正文

linux redis创建 Hashkey linux搭建redis集群

一、引言

再过一个周末,终于可以按步就班的工作了,想想就开心,哈哈哈哈~~~~

之前咱们从redis单机版、数据类型、高级应用、整合spring,终于到我们redis集群了。redis搭建redis集群也一样的简单,但是redis搭建集群涉及到了ruby脚本语言,可能有些同学听说过。ruby是一位日本的朋友开发的,具体介绍点击这里来查看!

二、redis集群环境的安装

为了保证ruby脚本能正常运行,所以我们先得安装ruby,按顺序执行以下命令。

yum install ruby

           yum install rubygems

cd /usr/local/src/

wget https://rubygems.global.ssl.fastly.net/gems/redis-3.2.1.gem

gem install redis-3.2.1.gem

三、搭建redis集群

集群结构:咱们搭建3个redis的集群,每一个redis是一主一备,只是为了保证redis更高效的工作。如果在redis集群中并且没有备份节点的情况下,只要有其中一个redis服务挂掉了,则整个redis集群不可用,所以需要一个备份节点来保证。还是和以前一样,搭建在一台服务器上, 按实际来说应该是每一台服务上安装一个redis即可。

步骤一:创建redis的6个实例,一主一备,所以是6个redis实例。将单机版中的redis、或者是说将安装后的redis,其中有一个bin目录,复制到redis-cluster目录下,并改名为redis01、02、03.....,最后复制完成如下图。

安装单机版redis,可参考这篇文章:Linux搭建redis单机版环境

mkdir /usr/local/redis-cluster

cp -r bin /usr/local/redis-cluster/redis01 #先要进入redis安装目录,在执行此命令,记住需要改名执行6次

linux redis创建 Hashkey linux搭建redis集群,linux redis创建 Hashkey linux搭建redis集群_ruby,第1张

步骤二:修改每一个redis.conf文件,设置redis启动的端口号,切记不能重复,小编这里设置的端口号是:7001~7006。并且把 cluster-enabled yes 注释去掉。 

linux redis创建 Hashkey linux搭建redis集群,linux redis创建 Hashkey linux搭建redis集群_ruby_02,第2张

linux redis创建 Hashkey linux搭建redis集群,linux redis创建 Hashkey linux搭建redis集群_ruby_03,第3张

 

步骤三:在redis安装解压包中,src目录下有个redis-trib.rb,复制到redis-cluster中。

cp src/*.rb /usr/local/redis-cluster/  #先需要进入到redis安装包解压后的目录中执行

linux redis创建 Hashkey linux搭建redis集群,linux redis创建 Hashkey linux搭建redis集群_redis集群_04,第4张

步骤四:把6个redis实例全部启动。

linux redis创建 Hashkey linux搭建redis集群,linux redis创建 Hashkey linux搭建redis集群_redis集群_05,第5张

步骤五:使用redis-trib.rb文件创建redis集群,这个.rb的文件也就是ruby脚本语言,执行以下命令。最后如下图,则表示搭建成功了。

./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

linux redis创建 Hashkey linux搭建redis集群,linux redis创建 Hashkey linux搭建redis集群_ruby_06,第6张

 

四、可能会遇到的问题

问题一:`call': ERR Slot 0 is already busy (Redis::CommandError),Slot槽被占用了,可能是因为之前的redis配置信息、旧数据没有清理干净。

解决办法:使用客户端登录每一个redis实例,执行 flushall  和 cluster reset  就可以了。

问题二:Waiting for the cluster to join.......  一直在等待

解决办法:这个是因为redis集群不仅仅要开发redis客户端连接的端口号,还需要将redis集群总线的端口号开发。

redis总线的端口号是:redis连接端口+10000 ,比如连接端口7001,那么总线端口是17001


https://www.xamrdz.com/backend/3dj1921982.html

相关文章: