NoSQL数据库 Redis主从集群环境搭建

1.集群(负载均衡)master(slave忽略)

集群中各个Master节点彼此相连,某个节点的fail通过半数投票决定(奇数个节点),节点之间通过ping-pong彼此连接

cluster负责对整个集群的维护,设置16384个哈希槽平均分配到,通过crc 16算法对连接进行计算同时对16384取余,在集群中,将16384个slot(哈希槽)平均分配到每个master中,根据算法获取连接值决定由哪个master节点处理该连接

客户端连接到集群中节点都代表连接集群成功

2.投票

1) 节点fail

超过一半的节点无法访问该节点,则该节点fail

2)集群fail

①某个master fail,但是该master没有slave则集群fail(slot丢失)

②超过半数的master节点fail,不管是否有slave整个集群都会fail

3.搭建集群

1)搭建6个redis服务器(3个master和3和slave) 6379-6384
cluster-enabled yes
2) 创建文件夹(/opt/redis) --> cluster

将6个数据库(配置文件)放置在cluster中

将src的redis-trib.rb文件复制到cluster中

cluster 目录下:

redis-trib.rb

mkdir 6379
cd 6379
3)修改配置文件并拷贝配置文件

redis.conf ----> vim 修改 cluster-enabled yes

cp -r 6379  6380 6381 6382 6383 6384
vim redis.conf

修改redis.conf的端口

4)启动6台redis-server
redis-server     xxxx/xxx/xxx/6379/redis.conf
redis-server     xxxx/xxx/xxx/6380/redis.conf
redis-server     xxxx/xxx/xxx/6381/redis.conf
redis-server     xxxx/xxx/xxx/6382/redis.conf
redis-server     xxxx/xxx/xxx/6383/redis.conf
redis-server     xxxx/xxx/xxx/6384/redis.conf
5)安装ruby(通信接口的程序是ruby写的)
yum install -y ruby

yum install -y rubygems

集群管理器和redis之间通信,安装接口 redis-3.2.1gem

在线安装:gem install redis (要求ruby版本在2.2.2以上)

离线:gem install redis-3.2.1gem

6) 创建集群:
./redis-trib.rb create --replicas 1 192.168.2.101:6379 192.168.2.102:6380 192.168.2.103:6381 192.168.2.104:6382 192.168.2.104:6382 192.168.2.105:6383 192.168.2.106:6384
7) 连接集群:
redis-cli -h 主机 -p 端口 -c
8) 客户端进入后查看集群信息和节点命令

cluster info

cluster nodes

猜你喜欢

转载自blog.csdn.net/qq_33713328/article/details/88683072