redis配置文件中slave-serve-stale-data的解释

博客围绕redis.conf文件中的slave-serve-stale-data参数展开,介绍了其在Redis主从复制中的作用。当该参数设为yes,从服务器可响应客户端请求;设为no,从服务器将阻塞请求,有请求时返回特定提示。

redis.conf文件中可以看到slave-serve-stale-data这个参数,作用是什么?

原文解释:

# When a slave loses its connection with the master, or when the replication
# is still in progress, the slave can act in two different ways:
#
# 1) if slave-serve-stale-data is set to 'yes' (the default) the slave will
#    still reply to client requests, possibly with out of date data, or the
#    data set may just be empty if this is the first synchronization.
#
# 2) if slave-serve-stale-data is set to 'no' the slave will reply with
#    an error "SYNC with master in progress" to all the kind of commands
#    but to INFO and SLAVEOF.
#
slave-serve-stale-data yes

slave-serve-stale-data参数设置成yes,主从复制中,从服务器可以响应客户端请求;

slave-serve-stale-data参数设置成no,主从复制中,从服务器将阻塞所有请求,有客户端请求时返回“SYNC with master in progress”;

### 如何在 Docker 中安装 Redis 并挂载配置文件 #### 创建容器前的准备工作 为了确保 Redis 的正常运行,在启动容器之前需要完成一些必要的准备操作。这包括拉取官方镜像、创建宿主机上的挂载目录以及准备好 `redis.conf` 文件。 1. **拉取 Redis 镜像** 使用以下命令来获取指定版本的 Redis 官方镜像: ```bash docker pull redis:6.0.8 ``` 此处选择了 Redis 版本 6.0.8,可以根据实际需求替换为其他稳定版号[^1]。 2. **创建挂载目录** 在宿主机上建立两个主要目录分别用于存储 Redis配置文件和数据文件。这样可以方便后续维护与升级工作。 ```bash mkdir -p /docker/redis/conf/ mkdir -p /docker/redis/data/ ``` 上述路径 `/docker/redis/conf/` 和 `/docker/redis/data/` 可依据个人习惯更改至任意位置[^3]。 3. **复制或编辑配置文件** 如果已有现成的 `redis.conf` 文件,则可以直接将其放置到刚才创建好的配置文件夹下;如果没有的话也可以手动新建一个空白文档再逐步完善内部参数设定。 假设我们采用后者的方式来进行演示说明: ```bash touch /docker/redis/conf/redis.conf vi /docker/redis/conf/redis.conf ``` 接下来向该新生成的文本里写入基础性的初始化语句如下所示(仅为示范片段),更多高级选项可查阅官方手册或者参考资料链接进一步补充完整内容[^4]: ```conf bind 0.0.0.0 protected-mode yes port 6379 timeout 0 loglevel notice logfile "" databases 16 save 900 1 save 300 10 save 60 10000 stop-writes-on-bgsave-error no rdbcompression yes rdbchecksum yes dbfilename dump.rdb dir ./ slave-serve-stale-data yes slave-read-only yes repl-diskless-sync no repl-diskless-sync-delay 5 requirepass yourpasswordhere maxclients 10000 maxmemory-policy volatile-lru appendonly no ``` #### 启动带有自定义配置的 Redis 实例 当一切就绪之后就可以利用 Docker run 指令正式启动服务端口监听进程啦! 以下是完整的执行脚本样例供参考学习之用: ```bash docker run --name my_redis \ -v /docker/redis/conf/redis.conf:/usr/local/etc/redis/redis.conf \ -v /docker/redis/data/:/data \ -d \ -p 6379:6379 \ redis:6.0.8 \ redis-server /usr/local/etc/redis/redis.conf ``` 这里需要注意几个关键点: - `-v`: 表示卷映射关系,前者代表本地物理磁盘地址而后者则是目标虚拟机内的相对应逻辑路径; - `-d`: 背景模式运行,默认不会占用当前终端会话资源; - `-p`: 将外部访问请求转发给内部实例处理的具体端口号绑定规则; - 最后的部分指定了要加载哪个特定版本的服务程序及其关联参数列表[^2]. 至此整个流程便顺利完成啦!如果想要验证成果是否成功达成预期效果可以通过 telnet 或者 netstat 工具简单测试一下连接状况即可得到结论哦~ --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值