“这是我参与「第五届青训营 」伴学笔记创作活动的第 15 天
一、本堂课重点内容:
- 本堂课的知识要点有哪些?
- 为什么需要Redis,Redis的基本工作原理
- Redis应用案例
- 在字节跳动,使用Redis有哪些注意事项
二、详细知识点介绍:
- 本堂课介绍了哪些知识点?
Redis
redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。
Redis如何实现持久化
Redis 共有三种数据持久化的方式:
- AOF 日志:每执行一条写操作命令,就把该命令以追加的方式写入到一个文件里;
- RDB 快照:将某一时刻的内存数据,以二进制的方式写入磁盘;
- 混合持久化方式:Redis 4.0 新增的方式,集成了 AOF 和 RBD 的优点
Redis常见数据结构及其使用场景
-
String 类型:可以存储数字,字符串,二进制。
应用场景:缓存对象、常规计数、分布式锁、共享 session 信息等
-
List 类型:
应用场景:消息队列等。
数据结构组成:QucikList:一个双向链表和listpack组成。
-
Hash 类型:
应用场景:缓存对象、购物车等。
-
Set 类型:聚合计算(并集、交集、差集)场景,比如点赞、共同关注、抽奖活动等。
-
Zset 类型:排序场景,比如排行榜、电话和姓名排序等。
大key
key-value这个键值对中,value占的内存太大。value是String类型的时候,存储这个value需要10kb以上的空间)或者当value是有序结合Zet,List,Set时,集合里面的成员数量超过5000个。
大key的危害:
1.读取成本高
2.容易导致慢查询
3.主从复制异常,服务阻塞,无法正常响应请求
解决方法:
-
对大key进行拆分
-
压缩value
热key
访问频率高的Key,称为热Key。QPS超过500就可以识别为热key。
解决方法:
-
采用本地缓存
-
对key进行复制
三、实践练习例子:
- 有什么实践举例帮助理解知识点?
四、课后个人总结:
- 本章有什么知识点不容易掌握?
- 什么地方容易与其他内容混淆?
五、引用参考:
- 我参考了哪些外部博客/笔记/文章?
- 文章中有什么地方是我参考引用了外部博客/笔记/文章的?