转载请表明出处 https://blog.csdn.net/Amor_Leo/article/details/85147086 谢谢
Docker安装单机版redis5和集群版redis5
单机Redis
搜索redis
docker search redis
拉取redis镜像
docker pull redis:latest
准备redis.conf
cd /usr/local
mkdir redis
cd redis/
mkdir data conf
wget https://raw.githubusercontent.com/antirez/redis/5.0.3/redis.conf -O conf/redis.conf
修改配置文件
vim conf/redis.conf
修改内容(修改以下三项,其他不变)
bind 0.0.0.0 #所有IP都可以访问
protected-mode no # 关闭保护模式
appendonly yes
放行端口号
firewall-cmd --zone=public --add-port=6379/tcp --permanent
firewall-cmd --reload
创建并启动容器
docker run -p 6379:6379 -v /usr/local/redis/data:/data -v /usr/local/redis/conf/redis.conf:/usr/local/etc/redis/redis.conf --privileged=true --name redis -d redis redis-server /usr/local/etc/redis/redis.conf
命令详解
-p 6379:6379:端口映射
-v /usr/local/redis/conf/redis.conf: /usr/local/etc/redis/redis.conf :把宿主机配置好的redis.conf放到容器中
-v /usr/local/redis/data:/data:把redis持久化的数据在宿主机内显示,做数据备份
redis-server /usr/local/etc/redis/redis.conf 让redis按照redis.conf的配置启动
–appendonly yes redis启动后数据持久化
连接
docker exec -it redis redis-cli
集群Redis
- 环境
192.168.0.111
192.168.0.112
192.168.0.113
创建文件夹
三台分别执行
mkdir -p /usr/local/redis-cluster/6379/data
mkdir -p /usr/local/redis-cluster/6380/data
mkdir -p /usr/local/redis-cluster/6379/conf
mkdir -p /usr/local/redis-cluster/6380/conf
cd /usr/local/redis-cluster
准备redis.conf
三台分别执行
wget https://raw.githubusercontent.com/antirez/redis/5.0.3/redis.conf -O 6379/conf/redis.conf
wget https://raw.githubusercontent.com/antirez/redis/5.0.3/redis.conf -O 6380/conf/redis.conf
依次修改redis.conf
三台分别执行
vim 6379/redis.conf
bind 0.0.0.0 #默认绑定本地地址,导致其它地方不可远程访问 改成局域网中的IP地址或者0.0.0.0所有ip都可以访问
protected-mode no #非保护模式
port 6379 #端口
pidfile /var/run/redis_6379.pid #需要修改为 reids_{port}.pid 的形式
appendonly yes #开启AOF日志 指定持久化方式
cluster-enabled yes #开启集群
cluster-config-file nodes-6379.conf #集群的配置文件 nodes_{port}.conf的形式
cluster-node-timeout 5000 #超时时间
vim 6380/redis.conf
bind 0.0.0.0 #默认绑定本地地址,导致其它地方不可远程访问 改成局域网中的IP地址或者0.0.0.0所有ip都可以访问
protected-mode no #非保护模式
port 6380 #端口
pidfile /var/run/redis_6380.pid #需要修改为 reids_{port}.pid 的形式
appendonly yes #开启AOF日志 指定持久化方式
cluster-enabled yes #开启集群
cluster-config-file nodes-6380.conf #集群的配置文件 nodes_{port}.conf的形式
cluster-node-timeout 5000 #超时时间
放行端口号
三台分别执行
firewall-cmd --zone=public --add-port=6379/tcp --permanent
firewall-cmd --zone=public --add-port=6380/tcp --permanent
firewall-cmd --reload
创建并启动容器
三台分别执行
注意docker网络: --net=host
docker run -p 6379:6379 --net=host -v /usr/local/redis-cluster/6379/data:/data -v /usr/local/redis-cluster/6379/conf/redis.conf:/usr/local/etc/redis/redis.conf --privileged=true --name redis1 -d redis redis-server /usr/local/etc/redis/redis.conf
docker run -p 6380:6380 --net=host -v /usr/local/redis-cluster/6380/data:/data -v /usr/local/redis-cluster/6380/conf/redis.conf:/usr/local/etc/redis/redis.conf --privileged=true --name redis2 -d redis redis-server /usr/local/etc/redis/redis.conf
查看是否启动成功
docker ps
安装redis源码
选择其中一台虚拟机
- 创建一个目录
cd /usr/local/ mkdir redis
- 进入创建的目录
cd redis
- 下载新版本Redis
wget http://download.redis.io/releases/redis-5.0.3.tar.gz
- 解压
tar -zxvf redis-5.0.3.tar.gz
- 进入解压之后的目录
cd redis-5.0.3
- 编译安装 (使用prefix 指定一个安装位置)
make && make install PREFIX=/usr/local/redistest
创建集群
cd src
./redis-cli --cluster create 192.168.0.111:6379 192.168.0.111:6380 192.168.0.112:6379 192.168.0.112:6380 192.168.0.113:6379 192.168.0.113:6380 --cluster-replicas 1
查看redis状态
ps -ef | grep redis
连接
-
使用./redis-cli
./redis-cli -c -h 192.168.0.111 -p 6379
cluster info cluster nodes
-
使用docker连接
docker exec -it redis1 redis-cli -p 6379
关闭开启redis集群
三台虚拟机分别执行
- 关闭
docker stop redis1 redis2
- 开启
docker start redis1 redis2