在linux(Centos7)上安装集群版redis

11 篇文章 0 订阅

单机版redis安装

 

1.进入/usr/local/ 目录下,创建 redis-cluster文件夹

cd /usr/local

mkdir redis-cluster

 

2.在/usr/local/redis-cluster目录下,创建6个文件夹

cd /usr/local/redis-cluster

mkdir 7001

mkdir 7002

...

mkdir 7006

3.拷贝单机版redis安装目录下的redis.conf文件到 /usr/local/redis-cluster/7001文件夹下

   cp /usr/local/redis/redis.conf /usr/local/redis-cluster/7001

4.修改/usr/local/redis-cluster/7001/目录下的配置文件redis.conf

  vim /usr/local/redis-cluster/7001/redis.conf

  • 1) daemonize yes
  • 2) port 7001(分别对每个机器的端口号进行设置)
  • 3) bind 192.168.1.62(必须要绑定当前机器的ip,这里方便redis集群定位机器,不绑
    定可能会出现循环查找集群节点机器的情况)
  • 4) dir /usr/local/redis-cluster/7001/data(指定数据文件存放位置,必须要指定不同的目
    录位置,不然会丢失数据)
  • 5) cluster-enabled yes(启动集群模式)
  • 6) cluster-config-file nodes-7001.conf(这里800x最好和port对应上)
  • 7) cluster-node-timeout 3000
  • 8) appendonly yes
  • 9) pidfile /var/run/redis_7001.pid 
  • 10) protected-mode  no   (关闭保护模式 redis5)
  • 11) requirepass roger (设置redis访问密码)
  • 12) masterauth roger (设置集群节点间访问密码,跟上面一致)

5.把/usr/local/redis-cluster/7001/目录下的配置文件redis.conf拷贝到/usr/local/redis-cluster/7002/

  • cd /usr/local/redis-cluster/7002/
  • vim redis.conf
  • 按键盘 Insert  键,进入编辑模式
  • :%s/7001/7002/g
  • 按键盘 ESC 键,退出编辑模式
  • :wq (保存退出)

6.其他四个文件夹,仿照步骤5操作

7.由于集群需要使用ruby命令,所以需要安装ruby

  • yum install ruby
  • yum install rubygems
  • gem install redis --version [对应的redis版本号]  --安装ruby和redis的接口

8.分别启动6个实例,并检验是否启动成功

 /usr/local/redis/bin/redis-server /usr/local/redis-cluster/7001/redis.conf

/usr/local/redis/bin/redis-server /usr/local/redis-cluster/7002/redis.conf

...

/usr/local/redis/bin/redis-server /usr/local/redis-cluster/7006/redis.conf

使用下面的命令检验是否启动成功

ps -ef | grep redis

9.进入单机redis安装目录下的src文件夹下,使用redis-trib.rb命令创建整个redis集群

  • cd /usr/local/redis/src
  • ./redis-trib.rb create --replicas 1 192.168.1.62:7001 192.168.1.62:7002 192.168.1.62:7003 192.168.1.62:7004 192.168.1.62:7005 192.168.1.62:7006

redis5以后采用redis-cli 直接创建集群,不再使用ruby去创建集群

   ./redis-cli -a roger --cluster create --cluster-replicas 1 192.168.1.61:8001 192.168.1.62:8002 192.168.1.63:8003 192.168.1.61:8004192.168.1.62:8005 192.168.1.63:8006 

--cluster-replicas 1  代表的含义是 主:从 = 1:1 = 1

    第一:要关闭保护模式

    第二:要bind ip地址或者设置redis密码

10.查看集群

  • 连接任意一个客户端即可:./redis-cli -c -h -p (-c表示集群模式,指定ip地址和端口
    号)如:/usr/local/redis/bin/redis-cli -c -h 192.168.1.62 -p 700*
  • 进行验证: cluster info(查看集群信息)、cluster nodes(查看节点列表)
  • 进行数据操作验证
  • 关闭集群则需要逐个进行关闭,使用命令:/usr/local/redis/bin/redis-cli -c -h 192.168.1.62 -p 700* shutdown
     

遇到的问题:

   1) /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- redis (LoadError)

解决办法:安装ruby和redis接口,使用命令 gem install redis

  2)     redis requires Ruby version >= 2.2.2.

解决办法1:使用yum安装高版本的ruby

              ~]# yum -y 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    //查看安装版本

解决办法2:Redis之集群redis-trib.rb环境的搭建-yellowcong

3) 使用vim命令修改文件,不正常退出,会出现swap文件已存在

解决办法:1-进入修改文件所在的目录下

                  2-使用命令显示所有的文件,包含隐藏文件 ls -a

                  3-执行命令 vim -r [文件名] 然后正常退出

                  4-使用命令删除 swap文件 rm -rf [swap文件名]

出现 ...swap文件需要删除的时候, 进入修改文件所在的目录,使用命令 ls -a 查看所有的文件包括隐含文件,然后使用命令 rm -rf [swap文件名]

4) 如果集群中redis.conf配置文件中的ip地址发生修改,再次启动集群的时候就会报错

[ERR] Node 192.168.1.62:8002 is not empty. Either the node already knows other nodes (check with CLUSTER NODES) or contains some key in database 0.

解决办法:1-首先关闭集群中每个节点

                2-删除每个节点下的 appendonly.aof  dump.rdb  nodes-7001.conf

                  cd /usr/local/redis-cluster/8001/data

                  rm -f ./*

                3-重新启动每个redis节点

                4-启动集群

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值