redis集群搭建

今天的积累都是为了更好的明天,加油!我是java程序员可以关注我一起学习哈!
1、下载并解压redis
cd /root/software  

搭集群:
1. 下载并解压

cd /root/software
wget http://download.redis.io/releases/redis-5.0.3.tar.gz
tar -zxvf redis-5.0.3.tar.gz 

2. 编译安装

cd redis-5.0.3
make && make install

3. 将 redis-trib.rb 复制到 /usr/local/bin 目录下

cd src
cp redis-trib.rb /usr/local/bin/  

4. 创建 Redis 节点

首先在 192.168.31.245 机器上 /root/software/redis-5.0.3 目录下创建 redis_cluster 目录;

mkdir redis_cluster  

在 redis_cluster 目录下,创建名为7000、7001、7002的目录,并将 redis.conf 拷贝到这三个目录中

mkdir 7000 7001 7002<br>
cp redis.conf redis_cluster/7000
cp redis.conf redis_cluster/7001
cp redis.conf redis_cluster/7002  

#############################复制7000/redis.conf到7003/redis.conf   cp 7000/redis.conf 7003/redis.conf

分别修改这三个配置文件,修改如下内容

port  7000                                        //端口7000,7002,7003        
bind 本机ip                                       //默认ip为127.0.0.1 需要改为其他节点机器可访问的ip 否则创建集群时无法访问对应的端口,无法创建集群
daemonize    yes                               //redis后台运行
pidfile  /var/run/redis_7000.pid          //pidfile文件对应7000,7001,7002
cluster-enabled  yes                           //开启集群  把注释#去掉
cluster-config-file  nodes_7000.conf   //集群的配置  配置文件首次启动自动生成 7000,7001,7002
cluster-node-timeout  15000                //请求超时  默认15秒,可自行设置
appendonly  yes                           //aof日志开启  有需要就开启,它会每次写操作都记录一条日志 



接着在另外一台机器上(192.168.31.210),的操作重复以上三步,只是把目录改为7003、7004、7005,对应的配置文件也按照这个规则修改即可

5. 启动各个节点

第一台机器上执行
再src下执行:
./redis-server ../redis_cluster/7000/redis.conf
./redis-server ../redis_cluster/7001/redis.conf
./redis-server ../redis_cluster/7002/redis.conf

6. 检查 redis 启动情况

##一台机器<br>ps -ef | grep redis
  ps -ef | grep redis //查看redis启动情况
    netstat -tnlp | grep redis//查看redis端口开启情况
7.创建集群

Redis 官方提供了 redis-trib.rb 这个工具,就在解压目录的 src 目录中,第三步中已将它复制到 /usr/local/bin 目录中,可以直接在命令行中使用了。使用下面这个命令即可完成安装。

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

其中,前三个 ip:port 为第一台机器的节点,剩下三个为第二台机器。

等等,出错了。这个工具是用 ruby 实现的,所以需要安装 ruby。安装命令如下:
yum -y install ruby ruby-devel rubygems rpm-build

gem install redis
之后再运行 redis-trib.rb 命令

注意:
redis-5.0.3 以后用以下命令:
./redis-cli --cluster create --cluster-replicas 1 192.168.43.129:7000 192.168.43.129:7001 192.168.43.129:7002 192.168.43.129:7003 192.168.43.129:7004 192.168.43.129:7005
运行后看到下面效果:
>>> Performing hash slots allocation on 6 nodes...
Master[0] -> Slots 0 - 5460
Master[1] -> Slots 5461 - 10922
Master[2] -> Slots 10923 - 16383
Adding replica 192.168.43.129:7003 to 192.168.43.129:7000
Adding replica 192.168.43.129:7004 to 192.168.43.129:7001
Adding replica 192.168.43.129:7005 to 192.168.43.129:7002
>>> Trying to optimize slaves allocation for anti-affinity
[WARNING] Some slaves are in the same host as their master
M: e56ad455099f69024baf1addd5d81a1e32583d95 192.168.43.129:7000
   slots:[0-5460] (5461 slots) master
M: 4b78e4e23f95873265babad715d941515207ad22 192.168.43.129:7001
   slots:[5461-10922] (5462 slots) master
M: de50879690455a9bece294fa864861786e5d246a 192.168.43.129:7002
   slots:[10923-16383] (5461 slots) master
S: e558ab3fdbfed7e17d993d6d27817ed8832ef223 192.168.43.129:7003
   replicates e56ad455099f69024baf1addd5d81a1e32583d95
S: 3cdb255cafb5eb9f78cb98c7d0a3b18747da1f3a 192.168.43.129:7004
   replicates 4b78e4e23f95873265babad715d941515207ad22
S: 498d1a32a4f74cb9179ab80f8dd5ff497f4e687f 192.168.43.129:7005
   replicates de50879690455a9bece294fa864861786e5d246a
Can I set the above configuration? (type 'yes' to accept):
输入yes  :
>>> Nodes configuration updated
>>> Assign a different config epoch to each node
>>> Sending CLUSTER MEET messages to join the cluster
Waiting for the cluster to join
.
>>> Performing Cluster Check (using node 192.168.43.129:7000)
M: e56ad455099f69024baf1addd5d81a1e32583d95 192.168.43.129:7000
   slots:[0-5460] (5461 slots) master
   1 additional replica(s)
M: 4b78e4e23f95873265babad715d941515207ad22 192.168.43.129:7001
   slots:[5461-10922] (5462 slots) master
   1 additional replica(s)
S: 498d1a32a4f74cb9179ab80f8dd5ff497f4e687f 192.168.43.129:7005
   slots: (0 slots) slave
   replicates de50879690455a9bece294fa864861786e5d246a
M: de50879690455a9bece294fa864861786e5d246a 192.168.43.129:7002
   slots:[10923-16383] (5461 slots) master
   1 additional replica(s)
S: e558ab3fdbfed7e17d993d6d27817ed8832ef223 192.168.43.129:7003
   slots: (0 slots) slave
   replicates e56ad455099f69024baf1addd5d81a1e32583d95
S: 3cdb255cafb5eb9f78cb98c7d0a3b18747da1f3a 192.168.43.129:7004
   slots: (0 slots) slave
   replicates 4b78e4e23f95873265babad715d941515207ad22
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

   

8. 集群验证

在第一台机器上连接集群的7002端口的节点,在另外一台连接7005节点,连接方式为:
 redis-cli -h 192.168.43.129 -c -p 7002  ,加参数 -C 可连接到集群,
 因为上面 redis.conf 将 bind 改为了ip地址,所以 -h 参数不可以省略。

在7005节点执行命令  set hello world 



遇到的错误:
1、(error) CLUSTERDOWN Hash slot not served
2、  gem install redis
    ERROR:  Error installing redis:
     redis requires Ruby version >= 2.2.2.centos7/rhel7安装较高版本ruby2.2/2.3/2.4+
方法一:换yum源安装

    ~]# yum install centos-release-scl-rh    //会在/etc/yum.repos.d/目录下多出一个CentOS-SCLo-scl-rh.repo源

    ~]# yum install rh-ruby23  -y    //直接yum安装即可  

    ~]# scl  enable  rh-ruby23 bash    //必要一步

    ~]# ruby -v    //查看安装版本     
    续:接上文提到的报错问题:“redis requires Ruby version >= 2.2.2”
    ~]# gem install redis   
    然后,redis-trib.rb这个二进制文件就可以使用了,用来构建redis集群,相关内容可以参考之前的文章,见方法二。
3、(error) CLUSTERDOWN The cluster is down
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值