linux之docker安装redis一主二从部署


docker安装redis一主二从部署

前提条件
服务器ip:192.168.56.102(主),192.168.56.105(从),192.168.56.106(从)
安装好docker环境,教程:Linux的centos7安装docker

1.拉起镜像

可以在docker仓库查询最新的镜像,官网地址:https://hub.docker.com/
我拉取的版本是6.0.9

docker pull redis:6.0.9

2.参数说明

redis最原始版redis.conf配置文件关键信息详细说明

3.配置文件

1)创建文件夹

docker的redis镜像是没有redis.conf文件,这个文件要我们先创建好,然后映射给容器里

mkdir -p /usr/local/docker/redis/conf
mkdir -p /usr/local/docker/redis/data
mkdir -p /usr/local/docker/redis/log

2)主机配置文件

创建文件 redis_master.conf

vim /usr/local/docker/redis/conf/redis_master.conf

redis_master.conf 文件内容

# 绑定
bind 0.0.0.0
# 连接保护模式关闭
protected-mode no
# 端口
port 6379
# 数据库数量
databases 16
# rdb快照规则
# 在900秒(15分钟)后,如果至少更改了1个键
save 900 1
save 300 10
save 60 10000
# rdb快照文件名称
dbfilename dump.rdb
# 客户端连接数量设置
maxclients 10000
# AOF模式开启,默认关闭
appendonly yes
# 文件名
appendfilename "appendonly.aof"
# AOF同步机制 
# 每秒同步
appendfsync everysec
# 文件大小切割
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
# 淘汰机制设置
maxmemory-policy noeviction

#密码设置
requirepass 123456

3)二从机配置文件

创建文件 redis_slave.conf

vim /usr/local/docker/redis/conf/redis_slave.conf

redis_slave.conf 文件内容,在主机的redis_master.conf的配置之上再加多下面的配置

# 主机地址
replicaof 192.168.56.102 6379
masterauth 123456

4)开始启动redis

主机启动命令:

docker run \
--restart=always \
--name redis-master \
-v /usr/local/docker/redis/conf/redis_master.conf:/etc/redis/redis.conf \
-v /usr/local/docker/redis/data:/data \
-v /etc/localtime:/etc/localtime \
-p 6379:6379 \
-d redis:6.0.9 redis-server /etc/redis/redis.conf

从机1启动命令:

docker run \
--restart=always \
--name redis-slave-1 \
-v /usr/local/docker/redis/conf/redis_slave.conf:/etc/redis/redis.conf \
-v /usr/local/docker/redis/data:/data \
-v /etc/localtime:/etc/localtime \
-p 6379:6379 \
-d redis:6.0.9 redis-server /etc/redis/redis.conf

从机2启动命令:

docker run \
--restart=always \
--name redis-slave-2 \
-v /usr/local/docker/redis/conf/redis_slave.conf:/etc/redis/redis.conf \
-v /usr/local/docker/redis/data:/data \
-v /etc/localtime:/etc/localtime \
-p 6379:6379 \
-d redis:6.0.9 redis-server /etc/redis/redis.conf

验证是否成:
连接客户端命令:

docker exec -it redis-master bash -c "redis-cli -h 127.0.0.1 -p 6379"

查看redis主机展示信息:

[root@centos-105 /usr/local/docker/redis/conf]docker exec -it redis-master bash -c "redis-cli -h 127.0.0.1 -p 6379"
127.0.0.1:6379> info replication
# Replication
role:master # 当时master
connected_slaves:2 #连接从机数量
slave0:ip=192.168.56.105,port=6379,state=online,offset=1120,lag=0 #从机信息
slave1:ip=192.168.56.106,port=6379,state=online,offset=1106,lag=1 #从机信息
master_replid:4f0264f734e529b03ae5b7e676ad7a5d4bdce332
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:1120
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:1120

查看redis从机展示信息:

[root@centos-105 /usr/local/docker/redis/conf]docker exec -it redis-slave-1 bash -c "redis-cli -h 127.0.0.1 -p 6379"
127.0.0.1:6379> info replication
# Replication
role:slave # 当时slave
master_host:192.168.56.102 #连接主机信息
master_port:6379
master_link_status:up
master_last_io_seconds_ago:9
master_sync_in_progress:0
slave_repl_offset:1162
slave_priority:100
slave_read_only:1
connected_slaves:0
master_replid:4f0264f734e529b03ae5b7e676ad7a5d4bdce332
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:1162
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:1162

注意:在从机是不允许做写人操作,只能读

127.0.0.1:6379> set sss sss
(error) READONLY You can't write against a read only replica.

4.redis压力测试

使用redis自带的redis-benchmark测试工具来测试redis的性能

docker exec -it redis-master bash -c "redis-benchmark -c 50 -n 10000"
  • c 指定并发连接数
  • n 指定请求数

5.注意事项

1)daemonize 后台运行

注意:docker -d 已经是后台运行了,所以在redis.conf的配置里,daemonize 设置为no,如果是yes,会出现冲突,然后启动不了redis容器

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

binggoling

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值