Redis高可用集群Redis Cluster的搭建

Redis-Cluster是从redis 3.0版本之后,官方退出的一款高可用集群,其效果和业内常用的 KeepAlived+HAproxy+Twemproxy+redis实现的集群在功能上是大致相同的,但是redis-cluster更加简单.

一.redis-cluster架构图

在这里插入图片描述

二.redis-cluster选举机制

在这里插入图片描述
redis cluster 为了保证数据的高可用性,加入了主从模式,一个主节点对应一个或多个从节点,主节点提供数据存取,从节点则是从主节点拉取数据备份,当这个主节点挂掉后,就会有这个从节点选取一个来充当主节点,从而保证集群不会挂掉。

三.redis-cluster配置

(1)安装redis(路径仅供参考)

下载解压包并解压到/usr/local/src/目录

tar zxvf /srv/ftp/redis.3.2.9 /usr/local/src/

编译安装

make && make install

笔者为了方便,将启动项和配置文件导入/usr/local/redis/

mkdir -p /usr/local/redis/{conf,src}

创建数据存放目录

mkdir -p /usr/data/redis/{redis-6379,redis-6380,redis-6381,redis-6382,redis-6383,redis-6384,redis-6385,redis-6386}/{logs,dbcache,run}/

(2)配置src
将编译好的安装包中的下面三项移入 /usr/local/redis/src/
在这里插入图片描述

名称 作用
redis-benchmark 性能测试
redis-cli redis客户端启动
redis-server redis服务启动

(3)配置conf,笔者采用了8个redis搭载集群,所以要配置8个配置文件

在这里插入图片描述
文件内容参考
reids-6379.conf

pidfile "/usr/data/redis/redis-6379/run/redis_6379.pid"
save 900 1
save 300 10
save 60 10000
slave-serve-stale-data yes
slave-read-only yes
replication
slaves
repl-diskless-sync no
socket
server
repl-diskless-sync-delay 5
change
repl-disable-tcp-nodelay no
slave-priority 100
appendfilename "appendonly.aof"
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
lua-time-limit 5000
cluster-enabled yes
cluster-node-timeout 15000
slowlog-log-slower-than 10000
slowlog-max-len 128
latency-monitor-threshold 0
notify-keyspace-events ""
directives.
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-size -2
list-compress-depth 0
set-max-intset-entries 512
zset-max-ziplist-value 64
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
aof-rewrite-incremental-fsync yes
masterauth "123"
requirepass "123"

配置redis-cluster的配置文件的注意事项
1.切记不要配密码(requirespass 123)
2.打开cluster支持(cluster-enable yes)
3.配置挂掉时间(cluster-node-timeout 15000)
4.没有主从关系(#slave of)
5.切记protected mode no,必须为no,因为保护一开redis-cluster无法从外部进行配置

四.redis-cluster部署

(1)部署前,先确保安装有ruby编译环境

apt-get install ruby ruby-dev rubygems

(2)首先需要进行redis编译处理

gem install redis

(3)复制redis-trib.rb到redis的主目录内

cp /usr/local/src/redis-3.2.9/src/redis-trib.rb /usr/local/redis/src

(4)启动redis服务

/usr/local/redis/src/redis-server /usr/local/redis/conf/redis-6379.conf
            /usr/local/redis/src/redis-server /usr/local/redis/conf/redis-6380.conf
            /usr/local/redis/src/redis-server /usr/local/redis/conf/redis-6381.conf
            /usr/local/redis/src/redis-server /usr/local/redis/conf/redis-6382.conf
            /usr/local/redis/src/redis-server /usr/local/redis/conf/redis-6383.conf
            /usr/local/redis/src/redis-server /usr/local/redis/conf/redis-6384.conf
            /usr/local/redis/src/redis-server /usr/local/redis/conf/redis-6385.conf
            /usr/local/redis/src/redis-server /usr/local/redis/conf/redis-6386.conf

(5)启动redis-cluster集群

/usr/local/redis/src/redis-trib.rb create --replicas 1 192.168.74.148:6379 192.168.74.148:6380 192.168.74.148:6381 192.168.74.148:6382 192.168.74.148:6383 192.168.74.148:6384 192.168.74.148:6385 192.168.74.148:6386

(6)启动成功
启动成功后会出现如下提示信息
在这里插入图片描述
主从分配是redis-cluster自动分配,M代表主服务器,S代表从服务器

在这里插入图片描述
输入yes代表同意集群自动分配的主从关系

五.redis-cluster集群测试

(1)启动任何一个节点,因为在redis-cluster集群当中,任何一个节点都是平等的关系,所以启动任何一个都代表进入了集群

/usr/local/redis/src/redis-cli -h 192.168.74.148 -p 6379 -a 123 -c

(2)存入数据进行测试

set hello sjw

在这里插入图片描述
会出现提示信息,把当前数据存放在6381端口的服务器中,并跳转到6381

在此提醒切记配置好redis-cluster后不可单独操作某一节点否则会产生如下错误
在这里插入图片描述
则需要进入每一个节点进行

cluster reset

此时代表配置成功!!!

发布了30 篇原创文章 · 获赞 4 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_42549122/article/details/90439015