RedisCluster集群方案是Redis官方推荐的一种集群方案,他没有中心节点。客户端与redis节点直连,不需要中间代理层,RedisCluster集群方案可以将数据分片存储。为避免其中一个节点宕机丢失分片数据,我们需要设置冗余节点。
设计架构:
准备前提:
1、Linux服务器(这里使用的centos7.x演示)
2、已安装Docker服务
步骤:
1、拉取redis 镜像
2、创建私有网络
创建docker容器的私有网络,方便建立集群使用,网段为172.15.0.0网络名字命名为redis_net1.(ps: 如果提醒网段被占用,请自行改为其他网段,如: 172.16.0.01 172.17.0.0 ...)
创建私有网络后查看已创建网络的信息
redis_net1: 创建的私有网段的名称
3、在宿主机中创建目录
3.1创建目录 /bizwork/redis-cluster
之后会在 /bizwork/redis-cluster目录下存放配置文件以及数据
3.2 准备好配置文件
在/bizwork/redis-cluster目录下 创建文件redis-cluster.tmpl
将以下内容拷贝到redis-cluster.tmpl 文件中,我们后续会用到
在宿主机/bizwork/redis-cluster批量创建 8000~8005 目录,用来作为容器映射目录
批量创建容器
查看各容器的网段(以下为终端输出结果):
这里我们可看出:
4、创建集群
任意进入一个容器,我这里进入redis-8000容器来执行命令创建集群
使用redis-cli --cluster create命令创建集群(如果设置了密码,需要输入密码参数)具体如下:
至此Docker下RedisCluster集群模式搭建成功!!
常见问题:
基于自己搭建redis cluster踩过的坑,希望能节约大家时间。
1、访问出现 Redis:ERR unknown command 'CLUSTER'
项目配置好集群后,访问报错ERR unknown command 'CLUSTER',原因是redis cluster服务器集群没有搭建成功,我再次检查了一下,未搭建成功的原因是我的redis-8000容器的配置文件的cluster-config-file node_8000.conf 与其他容器中的cluster-config-file node_8000.conf相同
2、Redis无法使用其他库
Redis Cluster 集群方案只支持一个数据库(db 0)
领取专属 10元无门槛券
私享最新 技术干货