Redis入门,看这一篇就够了( 六 )
选项同步频率always每个写命令都同步eyerysec每秒同步一次no让操作系统来决定何时同步
- always 选项会严重减低服务器的性能
- everysec 选项比较合适 , 可以保证系统崩溃时只会丢失一秒左右的数据 , 并且 Redis 每秒执行一次同步对服务器几乎没有任何影响 。
- no 选项并不能给服务器性能带来多大的提升 , 而且会增加系统崩溃时数据丢失的数量 。
复制通过使用 slaveof host port 命令来让一个服务器成为另一个服务器的从服务器 。
一个从服务器只能有一个主服务器 , 并且不支持主主复制 。
连接过程
- 主服务器创建快照文件 , 即 RDB 文件 , 发送给从服务器 , 并在发送期间使用缓冲区记录执行的写命令 。 快照文件发送完毕之后 , 开始像从服务器发送存储在缓冲区的写命令 。
- 从服务器丢弃所有旧数据 , 载入主服务器发来的快照文件 , 之后从服务器开始接受主服务器发来的写命令 。
- 主服务器每执行一次写命令 , 就向从服务器发送相同的写命令 。
随着负载不断上升 , 主服务器无法很快的更新所有从服务器 , 或者重新连接和重新同步从服务器将导致系统超载 。 为了解决这个问题 , 可以创建一个中间层来分担主服务器的复制工作 。 中间层的服务器是最上层服务器的从服务器 , 又是最下层服务器的主服务器 。
哨兵Sentinel(哨兵)可以监听集群中的服务器 , 并在主服务器进入下线状态时 , 自动从从服务器中选举处新的主服务器 。
分片分片是将数据划分为多个部分的方法 , 可以将数据存储到多台机器里面 , 这种方法在解决某些问题时可以获得线性级别的性能提升 。
假设有 4 个 Redis 实例 R0, R1, R2, R3, 还有很多表示用户的键 user:1, user:2, ... , 有不同的方式来选择一个指定的键存储在哪个实例中 。
- 最简单的是范围分片 , 例如用户 id 从 0 ~ 1000 的存储到实例 R0 中 , 用户 id 从 1001 ~ 2000 的存储到实例 R1中 , 等等 。 但是这样需要维护一张映射范围表 , 维护操作代价高 。
- 还有一种是哈希分片 。 使用 CRC32 哈希函数将键转换为一个数字 , 再对实例数量求模就能知道存储的实例 。
- 客户端分片:客户端使用一致性哈希等算法决定应当分布到哪个节点 。
- 代理分片:将客户端的请求发送到代理上 , 由代理转发到正确的节点上 。
- 服务器分片:Redis Cluster 。
此外 , 附上一些整理的Redis电子书资料及视频资料 。
【2020】Redis企业级入门到精通应用实战apprhkaai3v6603.h5.xiaoeknow.com
文章插图
文章插图
(需要电子书资料的可留言)
推荐阅读
- 苹果两款新iPad齐曝光:性能提高、入门款更轻薄、售价便宜
- RHEL 9提升了x86_64处理器的入门要求
- 跨界才是潮流?看看这四款联合跨界手机 款款是精品
- 入门HiFi享好声,这几款耳机绝对值得入手
- DIY从入门到放弃:电源挑贵的买就靠谱吗?
- 腾讯数据工程师推荐的Python新手入门书籍,还是首发电子版
- 喜欢打游戏?快来看看这4款游戏性能优越的5G手机
- 电脑常识新手快速入门的基础操作电脑新手快速入门的基础
- java 从零实现属于你的 redis 分布式锁
- Redis集群做法的难点,百万并发客户端「实战」