redis cluster配置
1、环境准备
1)准备6台ubuntu虚拟机
2)配置好IP(192.168.1.36,192.168.1.37,192.168.1.38, 192.168.1.40,192.168.1.41,192.168.1.42 三台master 三台slave)
3)安装好openssh-server
2、下载redis http://redis.io/download 本次使用3.2.3版本redis-3.2.3.tar.gz
3、安装redis
1)对目录提权 sudo chmod -R 777 /opt/
2)拷贝redis-3.2.3.tar.gz到6台虚拟机下 如 /opt/
3)解压redis-3.2.3.tar.gz
4)编译redis 终端命令
cd redis-3.2.3/src
make
4、修改redis.config,修改后覆盖6台虚拟机的redis.config,修改如下:
daemonize yes //后台运行
cluster-enabled yes //开启集群
cluster-config-file nodes-6379.conf //节点配置信息
cluster-node-timeout 5000 //超时
cluster-slave-validity-factor 10 //slave 故障转移次数
Cluster-migration-barrier 1 //最小slave数量
Cluster-require-full-coverage no //yes 表示只要任何一个slot异常那么整个cluster不对外提供服务。
appendonly yes //指定是否在每次更新操作后进行日志记录
appendfsync everysec
appendfilename "appendonly.aof" //指定更新日志文件名
logfile "/opt/redis-3.2.3/logs/redis-6379.log" //日志记录目录 目录不存在需先创建
bind 0.0.0.0 //允许远程连接
5、启动redis
$ cd redis-3.2.3/src
$ ./redis-server /opt/redis-3.2.3/redis.conf
6、验证是否安装成功
$ cd src
$ ./redis-cli
redis> set foo bar
OK
redis> get foo
"bar"
redis> del foo
(integer) 1
7、构建集群
1)选择其中一台安装ruby,需要的情况每台都安装一下
选择一个下载源:ustc.edu.cn/ubuntu 测试最佳
sudo apt-get update
sudo apt-get install ruby (可能需要先sudo apt-get -f install)
gem install redis (可能需要授权sudo chmod -R 777 /var/)
2)构建集群
./redis-trib.rb create --replicas 1 192.168.1.36:6379 192.168.1.37:6379 192.168.1.38:6379 192.168.1.40:6379 192.168.1.41:6379 192.168.1.42:6379
检查集群状态
redis-trib.rb check 192.168.1.36:6379
(在测试的时候 发现一个问题 其中一台机器的redis节点,构建的时候自己的ip不能在前面2个位置)
8、测试
集群下 远程连接get set 必须带-c
$ ./redis-cli -h 192.168.1.36 -p 6379 -c
测试结果:
1)在master1上set,可以在其他master上get,反之一样
2)只down一台master1,其从slave1会自动切换为master,当master1再次启动,则变为slave了,角色互换
3)同down掉一台master1和从slave1,则其他master和slave运行正常,但是 master1和从slave1的数据,无法获取了,并且在其他master无法设置master1和从slave1所拥有的key值,当master1和从slave1再次启动,则先启动的master,后面的为slave
4)key第一次set在哪里,后面会一直set在该master上?
附:
redis 远程连接主机(192.168.1.36)
$ cd src
$ ./redis-cli -h 192.168.1.36 -p 6379
$ ./redis-cli -h 192.168.1.36 -p 6379 -a 123456 (带密码)
强制关闭redis
netstat –ntlp |grep 6379
kill -9 pid
//
删除当前数据库中的所有
Key
flushdb
//
删除所有数据库中的
key
flushall
删除aof,rdb,conf 3个文件删除
参考资料:
http://www.tuicool.com/articles/aQbQ3u
http://hot66hot.iteye.com/blog/2050676
www.cnblogs.com/yuanermen/p/5717885.html
http://blog.csdn.net/jthink_/article/details/50373959
http://www.freeteam.cn/site/FreeCMS/share/info/2016/5175.html
问题:都挂了,如何再次构建集群,数据是否还在,其中master和对应slave挂了 如何再次加入集群
192.168.1.43
RedisLive集群监控
sudo apt-get install python-pip
http://sofar.blog.51cto.com/353572/1369266/
http://blog.csdn.net/fengspg/article/details/51010011
redis-stat集群监控
http://my.oschina.net/guol/blog/182265?p=2&temp=1472112097074#blog-comments-list
http://www.tuicool.com/articles/ae6bUfN
需要安装一台redis 用于监测 不用更改redis.config (0.0.0.0)
sudo
apt-get install ruby
sudo apt-get install ruby-dev
sudo
gem install redis-stat
命令行显示方式:
$
./redis-stat 172.168.63.201:7000 172.168.63.201:7001 5
web界面方式:
$
./redis-stat 172.168.63.201:7000 172.168.63.201:7001 –server=8080
10--daemon
说明:表示每个10秒打印一次信息,--daemon表示在后台挂起执行;
127.0.0.1:8080
如果你运行的操作是Windows,那么只能在JRuby上安装redis-stat。需要注意的是,Windows的默认命令提示符下,终端颜色不能够被很好的支持。
集群添加删除节点:http://blog.51yip.com/nosql/1726.html