Redis集群

来源:互联网 发布:施耐德变频器调试软件 编辑:程序博客网 时间:2024/06/05 04:33

安装流程:
1.首先请参看Redis多实例配置好Redis,至少6个实例。
2.安装RVM(Ruby Version Manage),使用Rvm安装Ruby,Ruby版本>=2.2.2。
3.开始Redis集群。
4.测试
注意事项
1.集群的时候需要关闭防火墙或者把Redis以及Redis集群总线端口加入白名单。
2.重启Redis服务器的时候记得清空运行时候的数据,否则出错
3.Redis需要开启cluster-enabled yes,不要设置密码,否则提示连接不上(因为redis-trib.rb集群工具没有提供该参数),具体解决方案后面提出。

一:安装RVM和Ruby,安装完成之后执行gem install redis
具体安装参加RVM安装,注意我们安装的时候选择安装2.2.2及以上的版本,以2.3.3为例。

RVM 安装(使用普通用户,否则按照可能出错)$ gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3$ \curl -sSL https://get.rvm.io | bash -s stable$ source ~/.bashrc$ source ~/.bash_profile修改 RVM 的 Ruby 安装源到 Ruby China 的 Ruby 镜像服务器,这样能提高安装速度$ echo "ruby_url=https://cache.ruby-china.org/pub/ruby" > ~/.rvm/user/dbRuby 的安装与切换列出已知的 Ruby 版本rvm list known安装一个 Ruby 版本rvm install 2.3.3 --disable-binary这里安装了最新的 2.3.3, rvm list known 列表里面的都可以拿来安装。切换 Ruby 版本rvm use 2.3.3如果想设置为默认版本,这样一来以后新打开的控制台默认的 Ruby 就是这个版本rvm use 2.3.3 --default 查询已经安装的rubyrvm list卸载一个已安装版本rvm remove 1.8.7执行gem指令gem install redis

二:配置Redis选项

#requirepass admin                   //注释掉,不启用密码验证port  6379                                        //端口6379,6380,6381,总线端口+10000bind 0.0.0.0                                      //保证其他机器可以访问daemonize    yes                               //redis后台运行pidfile  /var/redis/6379/run/redis_6379.pid          //pidfile文件对应7000,7001,7002logfile /var/redis/6379/log/redis_6379.log         //日志文件dir    /var/redis/6379/data                    //数据存储文件cluster-enabled  yes                           //开启集群  把注释#去掉cluster-config-file  nodes_6379.conf   //集群的配置  配置文件首次启动自动生成 7000,7001,7002cluster-node-timeout  15000                //请求超时  默认15秒,可自行设置appendonly  yes                           //aof日志开启  有需要就开启,它会每次写操作都记录一条日志

为例方便处理,写一个启动当前主机的所有Redis实例和停止当前实例的脚本.sh

//启动指定的Redis实例:start_cluster.shredis-server redis_6379.confredis-server redis_6380.confredis-server redis_6381.conf//停止Redis实例:stop_redis.sh并且删除缓存数据否则可能出现各种错误redis-cli -p 6379 shutdownredis-cli -p 6380 shutdownredis-cli -p 6381 shutdown#删除文件rm -f /var/redis/6379/log/*rm -f /var/redis/6379/data/*rm -f /var/redis/6379/run/*rm -f /var/redis/6380/log/*rm -f /var/redis/6380/data/*rm -f /var/redis/6380/run/*rm -f /var/redis/6381/log/*rm -f /var/redis/6381/data/*rm -f /var/redis/6381/run/*

当上述配置完成之后启动Redis实例,并且检查是否启动成功:
这里写图片描述

打开端口防火墙或者关闭防火墙:
这里写图片描述
然后在另外一台机器采取同样配置,至此Redis配置完成。

二:Redis集群参考博客
首先切换可执行目录到ruby的安装目录:

source /home/admin/.rvm/scripts/rvm //切换可执行目录到这里

然后执行集群命令

//记得把当前目录切换到redis的src里面eg:cd /home/admin/redis-stable/src ./redis-trib.rb  create  --replicas  1  192.168.1.65:6379 192.168.1.65:6380  192.168.1.65:6381 192.168.1.25:6379  192.168.1.25:6380  192.168.1.25:6381

此时如果出错提示:进入rvm目录,使用gem install redis
这里写图片描述

如果安装并且运行:

这里写图片描述

关闭所有的Redis服务器实例,并且清空数据,然后重启,再次运行该命令,上面我们已经实现了.sh的脚本,所以直接运行:如图
这里写图片描述
这里写图片描述
这里写图片描述
此时集群完成。

三:测试
这里写图片描述

四:错误分析:
这里写图片描述
4.1.无法连接上节点:
1> 请检查实例是否绑定了ip,redis.conf 的bind是否为“0.0.0.0”
2>请检查防火墙是否关闭或者是否允许连接
3>请检查服务器是否启动
4>请确定Redis是否配置了密码,去掉密码
5>telnet确认是否可以连接上

4.2.Not Empty错误
1>关闭服务器,然后清空nodes.conf数据,重启服务器

这里写图片描述
4.3waiting for the cluster to join卡主了
1>检查消息总线端口是否通的或者可用,如上图。

这里写图片描述

原创粉丝点击