Redis单机安装
1.在本地某个位置创建以下内容
mkdir -p /usr/redis
mkdir -p /usr/redis/data
touch /usr/redis/redis.conf
touch /usr/redis/redis.bash
vim /usr/redis/redis.conf
2.编辑配置文件vim /docker/redis/redis.conf
Redis配置文件
Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程
daemonize no
指定Redis监听端口,默认端口为6379
port 6379
绑定的主机地址,不要绑定容器的本地127.0.0.1地址,因为这样就无法在容器外部访问
bind 0.0.0.0
持久化
appendonly yes
3.下载并运行redis镜像
docker run -p 6379:6379 --name redis -v /usr/redis/redis.conf:/etc/redis/redis.conf -v /usr/redis/data:/data -d redis redis-server /etc/redis/redis.conf
docker run redis # 从redis镜像运行容器
-p 6379:6379 # 映射本地6379端口到容器6379端口,前为本地端口
–name redis # 设置容器名称为redis,方便以后使用docker ps进行管理
-v /docker/redis/redis.conf:/etc/redis/redis.conf # 关联本地/docker/redis/redis.conf文件到容器中/etc/redis/redis.conf,同样,前为本地
-v /docker/redis/data:/data # 关联本地/docker/redis/data到容器内/data目录,此为存放redis数据的目录,为方便以后升级redis,而数据可以留存
-d # 后台启动,使用此方式启动,则redis.conf中daemonize必须设置为no,否则会无法启动
redis-server /etc/redis/redis.conf # 在容器内启动redis-server的命令,主要是为了加载配置
4.给予执行权限
sudo chmod 777 /usr/redis/redis.bash
5.连接的容器
docker exec -it redis bash
6.直接使用redis-cli
docker exec -it redis redis-cli
Redis集群安装部署
1.创建相应的挂载目录
mkdir -p /usr/redisclu/node1/data #集群一
mkdir -p /usr/redisclu/node2/data #集群二
mkdir -p /usr/redisclu/node3/data #集群三
2.创建集群节点1并启动容器
docker create --name redis-node1 -v /usr/redisclu/node1/data:/data
-p 6380:6379 redis --cluster-enabled yes
–cluster-config-file redis-node1.conf
docker start redis-node1
3.创建集群节点2并启动容器
docker create --name redis-node2 -v /usr/redisclu/node2/data:/data
-p 6381:6379 redis --cluster-enabled yes
–cluster-config-file redis-node2.conf
docker start redis-node2
4.创建集群节点3并启动容器
docker create --name redis-node3 -v /usr/redisclu/node3/data:/data
-p 6382:6379 redis --cluster-enabled yes
–cluster-config-file redis-node3.conf
docker start redis-node3
5.查看redis-node1容器被分配的IP地址
docker inspect redis-node1
6.查看redis-node2容器被分配的IP地址
docker inspect redis-node2
7.查看redis-node3容器被分配的IP地址
docker inspect redis-node3
8.进入结点并集群搭建
docker exec -it redis-node1 /bin/bash
redis-cli --cluster create 172.17.0.3:6379 172.17.0.4:6379 172.17.0.5:6379 --cluster-replicas 0
9.进入redis客户端并测试
docker exec -it redis-node1 redis-cli -c
Redis主从集群
1.创建相应的挂载目录
mkdir -p /usr/redisclu/node1/data #集群一
mkdir -p /usr/redisclu/node2/data #集群二
mkdir -p /usr/redisclu/node3/data #集群三
mkdir -p /usr/redisclu/node4/data #集群4
mkdir -p /usr/redisclu/node5/data #集群5
mkdir -p /usr/redisclu/node6/data #集群6
2.创建集群节点并启动容器
docker create --name redis-node1 -v /usr/redisclu/node1/data:/data
-p 6380:6379 redis --cluster-enabled yes
–cluster-config-file redis-node1.conf
docker create --name redis-node2 -v /usr/redisclu/node2/data:/data
-p 6381:6379 redis --cluster-enabled yes
–cluster-config-file redis-node2.conf
docker create --name redis-node3 -v /usr/redisclu/node3/data:/data
-p 6382:6379 redis --cluster-enabled yes
–cluster-config-file redis-node3.conf
docker create --name redis-node4 -v /usr/redisclu/node4/data:/data
-p 6384:6379 redis --cluster-enabled yes
–cluster-config-file redis-node4.conf
docker create --name redis-node5 -v /usr/redisclu/node5/data:/data
-p 6385:6379 redis --cluster-enabled yes
–cluster-config-file redis-node5.conf
docker create --name redis-node6 -v /usr/redisclu/node6/data:/data
-p 6386:6379 redis --cluster-enabled yes
–cluster-config-file redis-node6.conf
docker start redis-node1
docker start redis-node2
docker start redis-node3
docker start redis-node4
docker start redis-node5
docker start redis-node6
docker exec -it redis-node1 /bin/bash
redis-cli --cluster create 172.17.0.3:6379 172.17.0.4:6379 172.17.0.5:6379 172.17.0.6:6379 172.17.0.7:6379 172.17.0.8:6379 --cluster-replicas 1
3.查看redis-node容器被分配的IP地址
docker inspect redis-node1
docker inspect redis-node2
docker inspect redis-node3
docker inspect redis-node4
docker inspect redis-node5
docker inspect redis-node6
4.进入结点并集群搭建
docker exec -it redis-node1 /bin/bash
redis-cli --cluster create 172.17.0.3:6379 172.17.0.4:6379 172.17.0.5:6379 172.17.0.6:6379 172.17.0.7:6379 172.17.0.8:6379 --cluster-replicas 1
5.查看redis主从信息
redis-cli
cluster nodes