Redis Cluster搭建

Redis Cluster搭建使用

要让集群正常工作至少需要3个主节点,在这里我们要创建6个redis节点,其中三个为主节点,三个为从节点,对应的redis节点的ip和端口对应关系如下

这里我们需要三台机器(master和slave不能在同一台机器上)

Master                           slave


192.168.1.1:6379          192.168.1.2:6380

192.168.1.2:6379          192.168.1.3:6380

192.168.1.3:6379          192.168.1.1:6380


1. 下载最新版redis。

wget http://download.redis.io/releases/redis-3.0.0.tar.gz

2. 解压,安装(yum 安装gcc gcc-c++ make cmake)

tar xf redis-3.0.0.tar.gz                      

cd redis-3.0.0

make && make install

3. 创建存放多个实例的目录

mkdir /etc/redis

cp src/redis-server /usr/local/bin/redis-server

cp src/redis-trib.rb /usr/local/bin/redis-trib(复制集群管理程序到/usr/local/bin)

cp redis.conf /etc/redis/redis.conf

cd /etc/redis

cp redis.conf redis_6380.conf

4、修改配置文件

修改vi redis_6380.conf 需要修改的内容

Port 6380

cluster-config-file nodes-6380.conf

dbfilename dump_6380.rdb

appendfilename "appendonly_6380.aof"

daemonize yes

cluster-enabled yes

cluster-node-timeout 5000

appendonly yes

5、分别启动6个redis实例(三台机器都执行)

redis-server redis.conf

redis-server redis_6380.conf

查看进程否存在

[root@node1 ~]# ps -ef | grep redis

root  4311  1  0 Dec20 ?     00:01:24 redis-server 192.168.1.1:6379 [cluster]

root  17148 1  0 02:25 ?       00:00:09 redis-server 192.168.1.1:6380 [cluster]

root  19066 16183  0 04:34 pts/0    00:00:00 grep --color=auto redis

6、执行命令创建集群,首先安装依赖,否则创建集群失败

# yum install ruby rubygems -y

# wget https://rubygems.global.ssl.fastly.net/gems/redis-3.0.0.gem

# gem install -l redis-3.0.0.gem

7、创建集群

# redis-trib create --replicas 1 192.168.1.1:6379 192.168.1.2:6379 192.168.1.3:6379 192.168.1.1:6380 192.168.1.3:6380 192.168.1.2:6380

检查集群状态

# redis-trib check 192.168.1.1:6379

删除节点

# redis-trib del-node 192.168.1.1:6380 41b09f0cc8e1e0f0c85ce03ca50112966f5ea8c0

增加节点

# redis-trib add-node --slave --master-id d1796bb07559f077aac0a7813b9b28afed28cd60 192.168.1.2:6380 192.168.1.1:6379


至于已运行的集群,如何添加密码

对每一个节点用命令设置密码或修改每一个节点的配置文件中密码项后重启,需要验证

注意事项:

1.如果是使用redis-trib.rb工具构建集群,集群构建完成前不要配置密码,集群构建完毕再通过config set + config rewrite命令逐个机器设置密码

2.如果对集群设置密码,那么requirepass和masterauth都需要设置,否则发生主从切换时,就会遇到授权问题,可以模拟并观察日志

3.各个节点的密码都必须一致,否则Redirected就会失败

192.168.1.1:6379>config set masterauth abc

192.168.1.1:6379>config set requirepass abc

192.168.1.1:6379>config rewrite

4.手动切换master slave

在master上执行:

# redis-cli -h 192.168.1.1 -p 6380 -a abc CLUSTER FAILOVER

你可能感兴趣的:(Redis Cluster搭建)