Redis核心技术与实战
蒋德钧
中科院计算所副研究员
新⼈⾸单¥1
9347 人已学习
课程目录
已更新 33 讲 / 共 50 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词 | 这样学Redis,才能技高一筹
免费
基础篇 (10讲)
01 | 基本架构:一个键值数据库包含什么?
02 | 数据结构:快速的Redis有哪些慢操作?
03 | 高性能IO模型:为什么单线程Redis能那么快?
04 | AOF日志:宕机了,Redis如何避免数据丢失?
05 | 内存快照:宕机后,Redis如何实现快速恢复?
06 | 数据同步:主从库如何实现数据一致?
07 | 哨兵机制:主库挂了,如何不间断服务?
08 | 哨兵集群:哨兵挂了,主从库还能切换吗?
09 | 切片集群:数据增多了,是该加内存还是加实例?
10 | 第1~9讲课后思考题答案及常见问题答疑
实践篇 (17讲)
11 | “万金油”的String,为什么不好用了?
12 | 有一亿个keys要统计,应该用哪种集合?
13 | GEO是什么?还可以定义新的数据类型吗?
14 | 如何在Redis中保存时间序列数据?
15 | 消息队列的考验:Redis有哪些解决方案?
16 | 异步机制:如何避免单线程模型的阻塞?
17 | 为什么CPU结构也会影响Redis的性能?
18 | 波动的响应延迟:如何应对变慢的Redis?(上)
19 | 波动的响应延迟:如何应对变慢的Redis?(下)
20 | 删除数据后,为什么内存占用率还是很高?
21 | 缓冲区:一个可能引发“惨案”的地方
22 | 第11~21讲课后思考题答案及常见问题答疑
23 | 旁路缓存:Redis是如何工作的?
24 | 替换策略:缓存满了怎么办?
25 | 缓存异常(上):如何解决缓存和数据库的数据不一致问题?
26 | 缓存异常(下):如何解决缓存雪崩、击穿、穿透难题?
27 | 缓存被污染了,该怎么办?
加餐篇 (3讲)
加餐(一)| 经典的Redis学习资料有哪些?
加餐(二)| Kaito:我是如何学习Redis的?
加餐(三)| Kaito:我希望成为在压力中成长的人
期中测试 (2讲)
期中测试题 | 一套习题,测出你的掌握程度
期中测试题答案 | 这些问题,你都答对了吗?
Redis核心技术与实战
15
15
1.0x
00:00/00:00
登录|注册

22 | 第11~21讲课后思考题答案及常见问题答疑

蒋德钧 2020-09-30
你好,我是蒋德钧。
咱们的课程已经更新到第 21 讲了,今天,我们来进行一场答疑。
前半部分,我会给你讲解第 11~21 讲的课后思考题。在学习这部分内容时,可以和你的答案进行对照,看看还有哪里没有考虑到。当然,有些问题不一定有标准答案,我们还可以继续讨论。
后半部分,我会围绕着许多同学都很关注的如何排查慢查询命令和 bigkey 的问题,重点解释一下,希望可以解答你的困惑。
好了,我们现在开始。

课后思考题答案

第 11 讲

问题:除了 String 类型和 Hash 类型,还有什么类型适合保存第 11 讲中所说的图片吗?
答案:除了 String 和 Hash,我们还可以使用 Sorted Set 类型进行保存。Sorted Set 的元素有 member 值和 score 值,可以像 Hash 那样,使用二级编码进行保存。具体做法是,把图片 ID 的前 7 位作为 Sorted Set 的 key,把图片 ID 的后 3 位作为 member 值,图片存储对象 ID 作为 score 值。
Sorted Set 中元素较少时,Redis 会使用压缩列表进行存储,可以节省内存空间。不过,和 Hash 不一样,Sorted Set 插入数据时,需要按 score 值的大小排序。当底层结构是压缩列表时,Sorted Set 的插入性能就比不上 Hash。所以,在我们这节课描述的场景中,Sorted Set 类型虽然可以用来保存,但并不是最优选项。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《Redis核心技术与实战》,如需阅读全部文章,
请订阅文章所属专栏新⼈⾸单¥1
立即订阅
登录 后留言

精选留言(4)

  • 九时四
    豁然开朗
    2020-09-30
    2
  • snailshen
    我这里还有个问题,希望老师能给指导?
    redis缓存淘汰策略是惰性和定时删除,如果一个主从集群,一个查询请求查询过期的key,走的是slave读取key的值,但是由于slave不会进行惰性删除,那么这个查询请求就会获取key的值返回给客户端,这个数据其实就产生了一致性问题。怎么避免这种情况啊?希望老师能够解答一下。谢谢!
    2020-10-12
  •  尿布
    醍醐灌顶
    2020-10-09
  • jinjunzhu
    柳暗花明又一村
    2020-10-01
收起评论
4
返回
顶部