前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Redis 复制12

Redis 复制12

作者头像
franket
发布2022-07-10 00:01:02
1720
发布2022-07-10 00:01:02
举报
文章被收录于专栏:技术杂记技术杂记

限制写操作

下面两个参数是用来限制 master 写操作的:

代码语言:javascript
复制
127.0.0.1:6379> CONFIG GET min*
1) "min-slaves-to-write"
2) "0"
3) "min-slaves-max-lag"
4) "10"
127.0.0.1:6379> 

由于暂时用不到这个特性,所以,只是对文档进行翻译,没有用试验验证

从 Redis 2.8 开始, 为了保证数据的安全性, 可以通过配置, 让主服务器只在有至少 N 个当前已连接从服务器的情况下, 才执行写命令; 不过, 因为 Redis 使用异步复制, 所以主服务器发送的写数据并不一定会被从服务器接收到, 因此, 数据丢失的可能性仍然是存在的。

以下是这个特性的运作逻辑:

  • 从服务器以每秒一次的频率 PING 主服务器一次, 并报告复制流的处理情况。
  • 主服务器会记录各个从服务器最后一次向它发送 PING 的时间。
  • 用户可以通过配置, 指定网络延迟的最大值 min-slaves-max-lag , 以及执行写操作所需的至少从服务器数量 min-slaves-to-write 。
  • 如果至少有 min-slaves-to-write 个从服务器, 并且这些服务器的延迟值都少于 min-slaves-max-lag 秒, 那么主服务器就会执行客户端请求的写操作。
  • 另一方面, 如果条件达不到 min-slaves-to-write 和 min-slaves-max-lag 所指定的条件, 那么写操作就不会被执行, 主服务器会向请求执行写操作的客户端返回一个错误。

可以将这个特性看作 CAP 理论中的 C 的条件放宽版本: 尽管不能保证写操作的持久性, 但起码丢失数据的窗口会被严格限制在指定的秒数中。

以下是这个特性的两个选项和它们所需的参数:

  • min-slaves-to-write
  • min-slaves-max-lag

详细的信息可以参考 Redis 源码中附带的 redis.conf 示例文件。


总结

Redis有一个和mysql类似的复制机制,可以进行如下同步方式:

  • (SYNC)完全同步
  • (PSYNC)增量同步(2.8之后的特性)
  • (diskless)无盘同步(2.8.18之后支持一种特性,目前还处于实验性阶段)

Note: 同步设置后,避免master的自动重启

几个重要命令:

  • slaveof 192.168.75.11 6379
  • SLAVEOF no one
  • telnet localhost 6379
  • sync
  • ping
  • keys *
  • config get slave*
  • CONFIG SET slave-read-only no
  • CONFIG SET requirepass 123456
  • CONFIG set masterauth 123456

原文地址

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 限制写操作
  • 总结
相关产品与服务
云数据库 Redis
腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档