Redis集群知多少
redis目前的集群方案分为以下几种:
1.RedisCluster:官方推荐,没有中心节点
2.Codis:中间件产品,存在中心节点
3.Twemproxy:中间件产品,存在中心节点
RedisCluster
- 无中心节点,客户端与redis节点只连,不需要中间代理层
- 数据可以被分片存储
- 管理方便,后续可自行增加或摘除节点
主从同步
- Redis集群中的数据库复制是通过主从同步来实现的
- 主节点(master)把数据分发给从节点(slave)
- 主从同步的好处在于高可用,redis节点有冗余设计
Redis集群高可用
- redis集群中应该包含奇数个master,至少应该有3个master
- 不建议两个,因为主从选举,应该存在一半以上的集群节点存活,挂掉1个,集群活节点不足一半以上。(感觉没将清楚)
- redis集群中每个master都应该有slave
动动手
1.安装镜像
docker pull yyyyttttwwww/redis
镜像重命名
docker tag yyyyttttwwww/redis redis
docker rmi yyyyttttwwww/redis
2.设置网段
之前我们创建了网段net1,我们可以先解除
docker swarm leave -f
查看docker网络,并删除网段
docker network ls
docker network rm docker_gwbridge
添加net2网段
docker network create --subnet=172.19.0.0/24 net2
3.启动容器
docker run -it -d --name r1 -p 5001:6379 --net=net2 --ip 172.19.0.2 redis bash
配置Redis节点
进入容器
docker exec -it r1 bash
配置redis
vim /usr/redis/redis.conf
如下配置需要修改:
使之生效
cd /usr/redis/src
./redis-server …/redis.conf
4.安装redis-trib.rb
redis-trib是基于Ruby的Redis集群命令行工具
5.创建Redis集群
利用redis-trib.rb创建Redis集群
–replicas 1 参数表示为每个主节点创建一个从节点