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
5.6 客户端连接集群
./redis-cli -c -h 192.168.2.221 -p 7001
查看集群信息
cluster info
cluster nodes