Redis集群部署
redis 是一个高性能的<K,V>分布式缓存数据库。
参考博客http://blog.csdn.net/myrainblues/article/details/25881535
安装Redis3集群(3台Linux storm1,storm2,storm3)
1.下载redis的稳定版本
下载地址http://download.redis.io/releases/
需要注意的是redis版本一定要在3.x以上,不然不支持集群
2.上传redis到服务器
1 |
|
3.解压
1 |
|
需要注意的是在操作之前一定要保证权限正确
4.进入到源码包中,编译并安装redis
1 |
|
进入/usr/local/bin
查看安装后的结果
解释一下后续比较关键的几个命令
名称 | 作用 | 备注 |
---|---|---|
redis-server | 启动redis服务 | |
redis-cli | 启动客户端 | |
redis-trib.rb | 启动redis-cluster | 需要ruby的支持才能用,文件存放在/redis/src/目录下 |
make编译需要GCC的支持,redis-trib工具则需要ruby和gem的支持,下面说一下ruby和gem的安装
5.安装所有依赖
安装gcc
1 |
|
安装ruby和gem
1 |
|
使用gem下载redis集群的配置脚本
1 |
|
gem install的安装包会放在/usr/lib/ruby/gems/1.8/cache
目录下
如果遇到redis requires Ruby version >= 2.2.2的问题解决方案:https://www.jianshu.com/p/0a5de7dc0254
原因是Ruby的版本太低,只要升级Ruby的版本即可。这边移除ruby 2.0.0版本,重新安装 2.3.3版本即可解决问题
如果redis所在服务器不能上网怎么办?
比如想要将下载好的redis-3.2.2.gem
拷贝到其他服务器,手动安装即可
shell cd /usr/lib/ruby/gems/1.8/cache for n in {2..6}; do scp redis-3.2.2.gem 192.168.0.3$n:$PWD; done
在需要安装的机器上执行下面命令安装
1 |
|
7.部署storm2和storm3
用同样的方式在其他的机器上编译安装redis
8.修改所有机器的配置文件redis.conf
1 |
|
9.启动所有机器上的redis节点
1 |
|
10.使用redis-trib配置redis集群
1 |
|
检查防火墙,如果开启需要关闭
1 |
|
使用redis-trib.rb集群构建工具启动集群
1 |
|
遇到 Can I set the above configuration? (type ‘yes’ to accept):输入yes回车即可
这边运行以后报了个错误ERR Slot 0 is already busy (Redis::CommandError)
原因是因为之前我已经配置过一次,再次使用就会出现slot 0
被占用的结果,用redis-cli
登录到每个节点执行 flushall
和 cluster reset
就可以了。
博客:https://blog.csdn.net/xiaojin21cen/article/details/70445545
启动成功后:
11.测试
在storm1节点上set一个值,在storm2上查看值,storm1的ip 192.168.1.19 ;storm2的 ip 192.168.1.20
1 |
|
在storm2上查看
1 |
|
报了错误:(error) MOVED 166 192.168.1.19:6379
解决办法:在链接客户端时带上-c参数,参考https://www.oschina.net/question/1259683_2133954
1 |
|