docker搭建redis集群

Redis 集群介绍

1.RedisCluster: 官方推荐,没有中心节点 。(主节点不是中心节点)

2.Codis:360推出的,中间件产品,存在中心节点。

3.Twemproxy:中间件产品,存在中心节点。

RedisCluster

无中心节点,客户端与redis节点直连,不需要中间代理层。

数据可以被分片存储(如果节点挂掉,数据会消失,所以需要设置冗余节点进行备份)

下面配置6个节点的redis,

3个master节点,3个slave 节点

下载镜像

docker pull yyyyttttwwww/redis (这个是慕课网老师上传的镜像,请参考)
docker run -it -d  --name r2 -p 5000:6379 --net=net2 --ip 172.19.0.2 redis bash
# 查看docker网络
docker network ls
# 删除网络
docker network rm xxxx

进入docker容器vim /usr/redis/redis.conf

daemonize yes                  # 后台运行
cluster-enabled yes            # 开启集群
cluster-config-file nodes.conf # 集群配置文件
cluster-node-timeout 15000     # 超时时间
appendonly yes                 # 开启AOF模式 (日志,备份使用)

启动容器内的redis

./redis-server ./..xxx/redis.conf

创建并启动了6节点的redis后

我们使用redis-trib.rb工具,来创建集群
它是ruby写的,需要ruby环境环境

cp /usr/redis/src/redis-trib.rb /usr/redis/cluster/
cd /ussr/redis/cluster
apt-get install ruby
apt-get install rubygems
gem install redis
./redis-trib.rb create --replicas 1 172.168.0.2:6379 172.168.0.3:6379 172.168.0.4:6379 172.168.0.5:6379 172.168.0.6:6379 172.168.0.7:6379

# --replicas 1 代表每个主节点有一个从节点
创建好集群后, 进入任意一个redis交互模式

cluster nodes 查看节点状态

你可能感兴趣的:(docker搭建redis集群)