参考

单机搭建参考地址:https://hub.docker.com/_/redis/
集群搭建参考地址:https://blog.csdn.net/adolph586/article/details/85340764

redis配置文件下载地址
https://redis.io/topics/config

单机搭建

  1. mkdir -p /data/redis/conf
  2. touch /data/redis/conf/redis.conf
  3. docker run --name redis -p 6379:6379 \
  4. -v /data/redis/data:/data -v /data/redis/conf/redis.conf:/etc/redis/redis.conf \
  5. --restart always -d redis redis-server /etc/redis/redis.conf \
  6. --appendonly yes --requirepass "redis666"

docker.png

集群搭建


下载redis镜像

  1. docker pull redis

查看镜像

  1. docker images

image.png

创建redis配置文件模板(自定义路径:/docker/redis-cluster)

redis-cluster.tmpl (我的IP地址为192.168.1.139)

  1. port ${PORT}
  2. protected-mode no
  3. cluster-enabled yes
  4. cluster-config-file nodes.conf
  5. cluster-node-timeout 5000
  6. cluster-announce-ip 192.168.1.139
  7. cluster-announce-port ${PORT}
  8. cluster-announce-bus-port 1${PORT}
  9. appendonly yes

3: 创建自定义 docker network

  1. docker network create redis-net

4: 创建各个容器配置文件和数据存放文件夹

  1. for port in {7000..7005}; do
  2. mkdir -p ./${port}/conf \
  3. && PORT=${port} envsubst < ./redis-cluster.tmpl > ./${port}/conf/redis.conf \
  4. && mkdir -p ./${port}/data; \
  5. done

4: 创建容器

  1. for port in {7000..7005}; do
  2. docker run -d -ti -p ${port}:${port} -p 1${port}:1${port} -v /docker/redis-cluster/${port}/conf/redis.conf:/usr/local/etc/redis/redis.conf -v /docker/redis-cluster/${port}/data:/data --restart always --name redis-${port} --net redis-net --sysctl net.core.somaxconn=1024 redis redis-server /usr/local/etc/redis/redis.conf; done

5:开放防火墙端口

  1. firewall-cmd --permanent --zone=public --add-port=7000-7005/tcp
  2. firewall-cmd --permanent --zone=public --add-port=17000-17005/tcp
  3. firewall-cmd --reload //重新加载配置
  4. firewall-cmd --permanent --zone=public --list-ports //查看开放的端口

6:查看并记录各个容器的IP地址

docker inspect redis-7000 redis-7001 redis-7002 redis-7003 redis-7004 redis-7005 | grep IPAddress

7:随意进入一个redis 容器

docker exec -it redis-7000 bash

image.png
8:执行集群命令
此处错误修改,不应该使用容器IP,应该使用实际IP,模板中设置的cluster-announce-ip

redis-cli --cluster create  192.168.1.139:7000  192.168.1.139:7001  192.168.1.139:7002  192.168.1.139:7003  192.168.1.139:7004  192.168.1.139:7005  --cluster-replicas 1

中间有一次需要输入yes
image.png
执行成功
image.png

9:此时集群搭建成功可以进行测试

redis-cli -h 172.18.0.3 -p 7001

image.png

若是出现如下错误:这是因为redis根据key值来分配到指定slot中,所以出现如下问题,一种方案需要到指定的容器中进行同样的操作就可以成功。
image.png

或者需要客户端跟踪重定向,使用-c参数

redis-cli -h 172.18.0.3 -p 7001 -c

10:redis 连接工具
相信大家windows下安装工具都得心应手,但Linux中安装就头大了吧,treeNMS管理工具,直接到http://www.treesoft.cn/dms.html下载,是用JAVA开发的,基于WEB方式对Redis管理,windows环境下载解压即可使用,Linux环境中也只需将软件复制过去,配置JAVA环境就可以使用了。MAC系统中也可以直接复制过去用,前提是有JAVA运行环境。