Quantcast
Channel: CodeSection,代码区,Linux操作系统:Ubuntu_Centos_Debian - CodeSec
Viewing all articles
Browse latest Browse all 11063

redis集群配置

$
0
0

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 ,修改如下:

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 //no 表示

appendonly yes // 指定是否在每次更新操作后进行日志记录

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

<span style="font-family: Consolas,Bitstream Vera Sans Mono,Courier New,Courier,monospace;"><span style="font-family: Liberation Serif,serif;">flushdb</span></span>

// 删除所有数据库中的 key

<span style="font-family: Consolas,Bitstream Vera Sans Mono,Courier New,Courier,monospace;"><span style="font-family: Liberation Serif,serif;">flushall</span></span>

删除 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的默认命令提示符下,终端颜色不能够被很好的支持。


Viewing all articles
Browse latest Browse all 11063

Trending Articles