Redis集群及其中间遇到的坑
2017-09-27 16:10
246 查看
Redis集群
集群准备
下载并解压Resis:wget http://download.redis.io/releases/redis-4.0.0.tar.gz[/code]
进入Redis目录下make && make install
可能会报错/bin/sh: cc: 未找到命令 make[1]: *** [adlist.o] 错误 127
原因是没有gcc,安装gcc就好yum install gcc
建议下版本高一点的
将/opt/redis-4.0.0/src/redis-trib.rb复制到/usr/local/bin
在/opt/redis-4.0.0/目录下创建redis_cluster
在/opt/redis-4.0.0/redis_cluster下创建7001,7002,7003节点目录
拷贝/opt/redis-4.0.0/redis.conf到节点目录[root@localhost redis-4.0.0]# cp redis.conf redis_cluster/7000 [root@localhost redis-4.0.0]# cp redis.conf redis_cluster/7001 [root@localhost redis-4.0.0]# cp redis.conf redis_cluster/7002
分别修改这3个目录下的redis.conf配置文件port 7000 //端口7000,7002,7003 bind 本机ip //默认ip为127.0.0.1 需要改为其他节点机器可访问的ip 否则创建集群时无法访问对应的端口,无法创建集群 daemonize yes //redis后台运行 pidfile /< 4000 span class="hljs-built_in">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日志开启 有需要就开启,它会每次写操作都记录一条日志
在例外一台机器上进行上步操作,端口为7003,7004,7005
启动2个服务器的redisredis-server /opt/redis-4.0.0/redis_cluster/7000/redis.conf redis-server /opt/redis-4.0.0/redis_cluster/7001/redis.conf redis-server /opt/redis-4.0.0/redis_cluster/7002/redis.conf redis-server /opt/redis-4.0.0/redis_cluster/7003/redis.conf redis-server /opt/redis-4.0.0/redis_cluster/7004/redis.conf redis-server /opt/redis-4.0.0/redis_cluster/7005/redis.conf
查看2台服务器的Redis是否开启ps -ef| grep redis集群开始
这里使用到/opt/redis-x.x.x/src/redis-trib.rb,但是redis-trib.rb是使用ruby写的,这里还要下载ruby工具:yum -y install ruby ruby-devel rubygems rpm-build
使用gem安装redis接口gem install redis
可能会遇到的问题ERROR: Error installing redis: redis requires Ruby version >= 2.2.2.
解决方案1.安装curl sudo yum install curl 2. 安装RVM curl -L get.rvm.io | bash -s stable 3. source /usr/local/rvm/scripts/rvm 4. 查看rvm库中已知的ruby版本 rvm list known 5. 安装一个ruby版本 rvm install 2.3.3 6. 使用一个ruby版本 rvm use 2.3.3 7. 设置默认版本 rvm remove 2.0.0 8. 卸载一个已知版本 ruby --version 9. 再安装redis就可以了 gem install redis
create (确保每个redis都是启动的)/opt/redis-4.0.0/src/redis-trib.rb create --replicas 1 192.168.115.132:7000 192.168.115.132:7001 192.168.115.132:7002 192.168.115.130:7003 192.168.115.130:7004 192.168.115.130:7005
注意补充
–replicas 1 表示 自动为每一个master节点分配一个slave节点 上面有6个节点,程序会按照一定规则生成 3个master(主)3个slave(从)防火墙一定要开放监听的端口,否则会创建失败。
可能出现问题[root@localhost src]# ./redis-trib.rb create --replicas 1 192.168.115.132:7000 192.168.115.132:7001 192.168.115.132:7002 192.168.115.130:7003 192.168.115.130:70 >>> Creating cluster [ERR] Sorry, can't connect to node 192.168.115.130:7003 解决方案:另外一服务器机子7003端口没有对外开放 firewall-cmd --zone=public --add-port=7003/tcp --permanent firewall-cmd --zone=public --add-port=7004/tcp --permanent firewall-cmd --zone=public --add-port=7005/tcp --permanent firewall-cmd --reload 最后你会发现终究OK了
这可能是最后一个坑
集群一直处于等待状态Sending CLUSTER MEET messages to join the cluster Waiting for the cluster to join...........
在/etc/profil/iptables中添加开放端口
如果上面失败,清楚每个Redis中的缓存文件,例如我的在:
/opt/redis-4.0.0/redis_cluster/7000目录下的 *.aof nodes* 等文件:rm -rf *.aof nodes*集群开启与关闭
Redis集群没有重启或者关闭操作,解决方案,清楚数据重新集群rm -rf **/*.aof **/*.rdb **/nodes*/opt/redis-4.0.0/src/redis-trib.rb create --replicas 1 192.168.115.132:7000 192.168.115.132:7001 192.168.115.132:7002 192.168.115.130:7003 192.168.115.130:7004 192.168.115.130:7005
相关文章推荐
- redis集群环境安装(参照redis中文官网,中间遇到了一些问题,so,记录一下)
- windows下配置redis集群(包括配置过程中遇到的问题)
- redis单机及其集群的搭建
- redis单机及其集群的搭建
- Redis配置集群遇到问题及解决方法
- 使用Jedis 访问redis集群遇到的两个小问题
- Redis配置集群遇到问题及解决方法
- redis的安装配置及其基于sentinel的redis集群高可用方案
- 安装Redis中间遇到的问题
- 【Redis】——redis集群版搭建及其应用
- redis 官方集群配置,实践遇到的问题
- redis单机及其集群的搭建
- Redis集群安装遇到的问题与解决办法
- Ubuntu 14.04 Redis4.02 集群部署并记录遇到的问题以及对应解决方案
- Centos6.4搭建Redis集群遇到的几个问题汇总
- 在windows下面配置redis集群遇到的一些坑
- 【redis】关于集群创建遇到的问题
- Centos 安装部署redis集群 及 jedis连接集群遇到的问题
- redis集群原理及其实现
- windows下本地安装redis集群遇到的一些问题