Redis系列(五)-Redis如何在保持读写分离+高可用的架构下

1、单机redis在海量数据面前的瓶颈

2、怎么才能够突破单机瓶颈,让redis支撑海量数据?

3、redis的集群架构

redis cluster

支撑N个redis master node,每个master node都可以挂载多个slave node

读写分离的架构,对于每个master来说,写就写到master,然后读就从mater对应的slave去读

高可用,因为每个master都有salve节点,那么如果mater挂掉,redis cluster这套机制,就会自动将某个slave切换成master

redis cluster(多master + 读写分离 + 高可用)

我们只要基于redis cluster去搭建redis集群即可,不需要手工去搭建replication复制+主从架构+读写分离+哨兵集群+高可用

4、redis cluster vs. replication + sentinal

如果你的数据量很少,主要是承载高并发高性能的场景,比如你的缓存一般就几个G,单机足够了

replication,一个mater,多个slave,要几个slave跟你的要求的读吞吐量有关系,然后自己搭建一个sentinal集群,去保证redis主从架构的高可用性,就可以了

redis cluster,主要是针对海量数据+高并发+高可用的场景,海量数据,如果你的数据量很大,那么建议就用redis cluster

5、redis cluster实操

5.1 创建配置文件及目录

node1:

/etc/redis/7001.conf(存放redis的配置文件),/var/redis/7001(存放redis的持久化文件)

/etc/redis/7002.conf(存放redis的配置文件),/var/redis/7002(存放redis的持久化文件)

mkdir -p /etc/redis-cluster
mkdir -p /var/log/redis
mkdir -p /var/redis/7001
mkdir -p /var/redis/7002

node2:

/etc/redis/7003.conf(存放redis的配置文件),/var/redis/7003(存放redis的持久化文件)

/etc/redis/7004.conf(存放redis的配置文件),/var/redis/7004(存放redis的持久化文件)

mkdir -p /etc/redis-cluster
mkdir -p /var/log/redis
mkdir -p /var/redis/7003
mkdir -p /var/redis/7004

node3:

/etc/redis/7005.conf(存放redis的配置文件),/var/redis/7005(存放redis的持久化文件)

/etc/redis/7006.conf(存放redis的配置文件),/var/redis/7006(存放redis的持久化文件)

mkdir -p /etc/redis-cluster
mkdir -p /var/log/redis
mkdir -p /var/redis/7005
mkdir -p /var/redis/7006

5.2 修改配置文件

node1-7001

port 7001
cluster-enabled yes
cluster-config-file /etc/redis-cluster/node-7001.conf
cluster-node-timeout 15000
daemonize yes
pidfile /var/run/redis_7001.pid
dir /var/redis/7001
logfile /var/log/redis/7001.log
bind 192.168.2.221
appendonly yes

参考node1-7001修改其他节点node1-7002、node2-7003、node2-7004、node3-7005、node3-7006

5.3 准备生产环境的启动脚本

在/etc/init.d下,放6个启动脚本,分别为: redis_7001, redis_7002, redis_7003, redis_7004, redis_7005, redis_7006,脚本参考Redis系列(一)-CentOS7下Redis单机安装+自启动

5.4 启动redis

分别启动6个redis实例

node1

./redis_7001 start

./redis_7002 start

node2

./redis_7003 start

./redis_7004 start

node3

./redis_7005 start

./redis_7006 start

5.5 创建集群

在node1(任何一台node都可以)

./redis-cli --cluster create 192.168.2.221:7001 192.168.2.221:7002 192.168.2.230:7003 192.168.2.230:7004 192.168.2.232:7005 192.168.2.232:7006 --cluster-replicas 1

Redis系列(五)-Redis如何在保持读写分离+高可用的架构下

 

 5.6 客户端连接集群

./redis-cli -c -h 192.168.2.221 -p 7001

 查看集群信息

cluster info

Redis系列(五)-Redis如何在保持读写分离+高可用的架构下

cluster nodes

Redis系列(五)-Redis如何在保持读写分离+高可用的架构下

 

Redis系列(五)-Redis如何在保持读写分离+高可用的架构下

上一篇:华为命令更新2021024


下一篇:如何使用GeoTools