Redis 核心技术与实战
蒋德钧
中科院计算所副研究员
81696 人已学习
新⼈⾸单¥68
登录后,你可以任选4讲全文学习
课程目录
已完结/共 53 讲
开篇词 (1讲)
实践篇 (28讲)
Redis 核心技术与实战
15
15
1.0x
00:00/00:00
登录|注册

期中测试题答案 | 这些问题,你都答对了吗?

Redis
主题总结

该思维导图由 AI 生成,仅供参考

你好,我是蒋德钧。今天,我来公布一下主观题的答案。

第一题

Redis 在接收多个网络客户端发送的请求操作时,如果有一个客户端和 Redis 的网络连接断开了,Redis 会一直等待该客户端恢复连接吗?为什么?
答案:
Redis 不会等待客户端恢复连接。
原因是,Redis 的网络连接是由操作系统进行处理的,操作系统内核负责监听网络连接套接字上的连接请求或数据请求,而 Redis 采用了 IO 多路复用机制 epoll,不会阻塞在某一个特定的套接字上。epoll 机制监测到套接字上有请求到达时,就会触发相应的事件,并把事件放到一个队列中,Redis 就会对这个事件队列中的事件进行处理。这样一来,Redis 只用查看和处理事件队列,就可以了。当客户端网络连接断开或恢复时,操作系统会进行处理,并且在客户端能再次发送请求时,把接收到的请求以事件形式通知 Redis。

第二题

Redis 的主从集群可以提升数据可靠性,主节点在和从节点进行数据同步时,会使用两个缓冲区:复制缓冲区和复制积压缓冲区。这两个缓冲区的作用各是什么?会对 Redis 主从同步产生什么影响吗?
答案:
首先来说一下复制缓冲区。
作用:主节点开始和一个从节点进行全量同步时,会为从节点创建一个输出缓冲区,这个缓冲区就是复制缓冲区。当主节点向从节点发送 RDB 文件时,如果又接收到了写命令操作,就会把它们暂存在复制缓冲区中。等 RDB 文件传输完成,并且在从节点加载完成后,主节点再把复制缓冲区中的写命令发给从节点,进行同步。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

Redis是一种高性能的键值存储系统,本文主要涉及Redis在网络连接、主从同步和数据持久化方面的相关问题。首先,Redis在接收多个网络客户端发送的请求操作时,不会等待客户端恢复连接,而是采用IO多路复用机制epoll,以提高效率。其次,主从集群中的复制缓冲区和复制积压缓冲区对主从同步有重要作用,需要合理配置以避免溢出和数据覆盖。最后,针对业务场景中需要快速查询大量短视频信息的需求,可以使用Redis的Hash类型来保存数据,并通过AOF日志实现数据的可靠性保证。此外,文章还讨论了单实例和多实例运行方案的优劣势,提供了针对不同方案的实际应用建议。文章内容涵盖了Redis的核心技术特点,对读者快速了解Redis在实际应用中的解决方案具有重要参考价值。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《Redis 核心技术与实战》
新⼈⾸单¥68
立即购买
登录 后留言

全部留言(7)

  • 最新
  • 精选
  • yeek
    客户端连接断开的补充猜测: 1. epoll只是负责帮我们维护连接,当客户端断连之后,epoll不会自己帮我们删除无效的连接,redis服务端有个空闲链接检测机制,需手动开启,用于定期检查释放无效的连接,删除epoll中的fd 2. 一般客户端会采用池化技术,定期检测客户端连接池的可用性,以保障不会一直创建链接和销毁连接
    2020-10-09
    12
  • 徐小熊
    老师,我想问一下,如果我们使用主从库模式,读写分离,会出现高并发情况下主库的写命令还未同步到从库的情况,这个时候又有读命令发送到从库,是不是就会读不到本来应该写入的数据呢?
    2020-10-09
    2
    3
  • i_chase
    20g的数据用hash保存,不是典型的大key吗
    2022-11-11归属地:广东
    4
  • escray
    以前是比较厌恶考试的,现在则比较喜欢,因为是给自己看的。 选择题第一次做 65 分,第二次 80 分,第三次 95…… 第一题要点:Redis 不会等待客户端恢复连接。Redis 的网络连接由操作系统负责处理……采用 IO 多路复用机制 epoll 第二题我搞错了复制缓冲区和复制积压缓冲区的概念。 复制缓冲区就是主从同步时,主节点为从节点创建的输出缓冲区,暂存主节点发送 RDB 文件时收到的写命令操作。RDB 文件传输完成并且在从节点加载完成后,主节点将复制缓冲区中的写命令发给从节点。 如果复制缓冲区溢出,那么主库关闭和从库的网络连接,重新开始全量同步。可以调整 client-output-buffer-limit slave 配置项,增加复制缓冲区大小。 复制积压缓冲区,是在主从节点常规同步时,写命令暂存在复制积压缓冲区中,如果主从网络断连,那么从节点再次连接后,可以从复制积压缓冲区同步尚未复制的命令。 复制积压缓冲区是环形的,如果主从网络断连时间太长,复制积压缓冲区可能被新写入命令覆盖,无法增量复制,只能全量复制。可以调整 repl_backlog_size 的设置,修改复制积压缓冲区大小。 第三题可以使用 AOF 日志来做持久化方案,主要是因为负载以读为主,写命令不会太多,AOF 日志文件不会太大。 另外在选择方案的时候也要考虑经济成本。
    2021-04-01
  • 旅途
    根据方案一中的描述,持久化方案还是用了rdb不是吗
    2020-12-22
    1
  • 漫步oo0云端
    请问第三题的视频为什么首选不是保存在string上?string也是保存在全局哈希表中,也很快啊?
    2020-10-09
    4
  • 我不用网名
    哈哈,国庆终于把进度补上来了
    2020-10-07
收起评论
显示
设置
留言
7
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部