Linux 两台机器搭建三主三从 redis 集群

什么是Redis

Redis是目前一个非常优秀的key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set有序集合)和hash(哈希类型)

为什么要基于3.x安装集群

3.x以前,redis仅支持主从模式,并不支持集群模式。

安装redis3.x集群

本次安装redis集群,共用两台redhat 6.5机器,其中每台机器分别安装三个节点(一主一从)。

### 两台服务器,各启动三个实例,形成三主三从
实验机器IP:RedHat 7.4
:172.22.32.111 172.22.32.107  redis:5.0.3

1:安装redis

可详见安装redis:https://blog.csdn.net/oJingZhiYuan12/article/details/88352869

注:查看系统是否已运行redis,查看其端口号   ps -aux|grep redis/    kill-9 端口

2、配置内核参数
# 配置 vm.overcommit_memory 为1,这可以避免数据被截断
sysctl -w vm.overcommit_memory=1

3、创建多实例的文件夹,用来存放不同实例的配置文件
cd /usr/local/
mkdir cluster
cd cluster
mkdir 7000 7001 7002

4、修改配置文件
vim /usr/local/redis/redis.conf

bind 172.22.32.111 (需要不同服务器的节点连通,就不能设置为 127.0.0.1)
protected-mode no(需要不同服务器的节点连通,这个就要设置为 no)
daemonize yes(设置后台运行redis)
cluster-enabled yes
cluster-node-timeout 5000
appendonly yes

5, 根据不同端口需要设置的地方
port 7000
pidfile /var/run/redis_7000.pid
logfile /var/log/redis/redis_7000.log
dbfilename dump_7000.rdb
appendfilename "appendonly_7000.aof"
cluster-config-file nodes_7000.conf

注:一般不存在此文件夹,需:mkdir /var/log/redis/
6、复制配置文件到各个实例文件夹,并修改相应端口号和参数
cp -f /usr/local/redis/redis.conf /usr/local/cluster/7000/
cp -f /usr/local/redis/redis.conf /usr/local/cluster/7001/
cp -f /usr/local/redis/redis.conf /usr/local/cluster/7002/

7、启动各个实例
cd /usr/local/redis/src/
./redis-server /usr/local/cluster/7000/redis.conf &
./redis-server /usr/local/cluster/7001/redis.conf &
./redis-server /usr/local/cluster/7002/redis.conf &

使用 ps -ef|grep redis 查看是否都启动成功,IP和端口号都正确
==================================================================================
====================== 1~7都是要在两台服务器中操作的 ===========================
============================================================================

8、测试两台服务器是否都能 telnet 得通另一台的 7000~7002

9、安装 ruby 环境
yum -y install ruby rubygems

10、创建集群
cd /usr/local/redis/src/Redis5.0中创建集群:
./redis-cli --cluster create 172.22.32.111:7000 172.22.32.111:7001 172.22.32.111:7002 172.22.32.107:7000 172.22.32.107:7001 172.22.32.107:7002 --cluster-replicas 1

注:Redis5.0使用./redis-cli 命令创建集群

留意屏幕,会有一句(type 'yes' to accept),输入 yes ,回车,就是接受自动分配的三主三从
如果最后出现
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

说明成功了。

如果是出现
Waiting for the cluster to join...........
一直有 “.”出现,说明另一台服务器的端口策略没通,一直在等那边的节点加入集群,那么恭喜你,要悲剧了.....


11、验证集群节点数
cd /usr/local/redis/src/
./redis-cli -h 172.22.32.111  -c -p 7000
Linux 两台机器搭建三主三从 redis 集群_第1张图片

Linux 两台机器搭建三主三从 redis 集群_第2张图片

14,php验证集群是否创建成功:

(1)安装redis扩展;

(2)代码验证:
              $obj_cluster = new RedisCluster(NULL, ['172.22.32.111:7000']);
              echo $obj_cluster->get('ss');

15、重启集群
关闭全部节点 
使用关闭进程命令 
pkill -9 redis

启动 所有的redis实例 

创建集群 
./redis-cli --cluster create 172.22.32.111:7000 172.22.32.111:7001 172.22.32.111:7002 172.22.32.107:17000 172.22.32.107:17001 172.22.32.107:17002 --cluster-replicas 1

创建成功则重启成功了

    

你可能感兴趣的:(Linux)