基础知识
#redis配置
1)bind 127.0.0.1 :注释掉这部分,这是限制 redis 只能本地访问
2)protected-mode no :默认是yes,开启保护模式,限制为本地访问
3)requirepass 123456 :配置 redis 连接密码,默认是注释的
4)dir ./ :更改本地redis数据库存放文件夹(可选)
5)appendonly yes :redis 持久化,开启了这个 redis 就不会每次重启时自动清空了
#docker启动redis命令
1)–name:给容器起一个名字;
2)-p:端口映射(宿主机端口:容器端口);
3)-v:挂载自定义配置(自定义配置:容器内部配置);
#docker run -itd -p 6379:6379 --name lhjredis -v /docker/redis/conf/redis.conf:/etc/redis/redis.conf -v /docker/redis/data:/data redis redis-server /etc/redis/redis.conf
本命令共有两个挂载:Linux 上自定义的 redis 配置(/docker/redis/conf/redis.conf)挂载到容器内 redis 应用的默认配置文件 /etc/redis/redis.conf;Linux 上自定义的数据存放目录(/docker/redis/data)挂载到容器内 redis 应用的默认数据存放目录(/data)。这样 docker 容器内的 redis 应用会使用 Linux 上自定义的配置文件,docker 容器内的 redis 应用的数据会放到 Linux 上自定义的数据存放目录。
4)-d:后台运行;
5)redis-server --appendonly yes: 在容器执行 redis-server 启动命令,并打开 redis 持久化配置;
启动redis主从
#最终部署redis主从执行命令为
docker run --name redis6379 --net=host -v $PWD/redis6379 -d redis:latest redis-server --port 6379 --requirepass 123456 --appendonly yes --bind 0.0.0.0 --protected-mode no
docker run --name redis6380 --net=host -v $PWD/redis6380 -d redis:latest redis-server --slaveof 192.168.0.23 6379 --port 6380 --requirepass 123456 --appendonly yes --bind 0.0.0.0 --protected-mode no
docker run --name redis6381 --net=host -v $PWD/redis6381 -d redis:latest redis-server --slaveof 192.168.0.23 6379 --port 6381 --requirepass 123456 --appendonly yes --bind 0.0.0.0 --protected-mode no
部署redis哨兵
#挂载本地配置文件 -v $PWD/sentinel-26379.conf:/usr/local/etc/redis/sentinel.conf
新建文件 sentinel-26379.conf、sentinel-26380.conf、sentinel-26381.conf
port 26379
sentinel monitor mymaster 192.168.0.23 6379 1
sentinel down-after-milliseconds mymaster 5000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 180000
bind 0.0.0.0
protected-mode no
#daemonize yes
#dir "/var/log/sentinel"
#logfile "/var/log/sentinel/26379.log"
port 26380
sentinel monitor mymaster 192.168.0.23 6379 1
sentinel down-after-milliseconds mymaster 5000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 180000
bind 0.0.0.0
protected-mode no
#daemonize yes
#dir "/var/log/sentinel"
#logfile "/var/log/sentinel/26379.log"
port 26381
sentinel monitor mymaster 192.168.0.23 6379 1
sentinel down-after-milliseconds mymaster 5000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 180000
bind 0.0.0.0
protected-mode no
#daemonize yes
#dir "/var/log/sentinel"
#logfile "/var/log/sentinel/26379.log"
哨兵启动
docker run --name sentinel-26379 --net=host -v $PWD/sentinel-26379.conf:/usr/local/etc/redis/sentinel.conf -d redis:latest redis-sentinel /usr/local/etc/redis/sentinel.conf
docker run --name sentinel-26380 --net=host -v $PWD/sentinel-26380.conf:/usr/local/etc/redis/sentinel.conf -d redis:latest redis-sentinel /usr/local/etc/redis/sentinel.conf
docker run --name sentinel-26381 --net=host -v $PWD/sentinel-26381.conf:/usr/local/etc/redis/sentinel.conf -d redis:latest redis-sentinel /usr/local/etc/redis/sentinel.conf
全部完整启动命令
完整启动命令 加上这个话将会加上密码认证 --requirepass 123456
docker run --name redis6379 --net=host -v $PWD/redis6379 -d redis:latest redis-server --port 6379 --appendonly yes --bind 0.0.0.0 --protected-mode no
docker run --name redis6380 --net=host -v $PWD/redis6380 -d redis:latest redis-server --slaveof 192.168.0.23 6379 --port 6380 --appendonly yes --bind 0.0.0.0 --protected-mode no
docker run --name redis6381 --net=host -v $PWD/redis6381 -d redis:latest redis-server --slaveof 192.168.0.23 6379 --port 6381 --appendonly yes --bind 0.0.0.0 --protected-mode no
docker run --name sentinel-26379 --net=host -v $PWD/sentinel-26379.conf:/usr/local/etc/redis/sentinel.conf -d redis:latest redis-sentinel /usr/local/etc/redis/sentinel.conf
docker run --name sentinel-26380 --net=host -v $PWD/sentinel-26380.conf:/usr/local/etc/redis/sentinel.conf -d redis:latest redis-sentinel /usr/local/etc/redis/sentinel.conf
docker run --name sentinel-26381 --net=host -v $PWD/sentinel-26381.conf:/usr/local/etc/redis/sentinel.conf -d redis:latest redis-sentinel /usr/local/etc/redis/sentinel.conf
评论区