Redis| 青训营笔记

41 阅读2分钟

“这是我参与「第五届青训营 」伴学笔记创作活动的第 15 天

一、本堂课重点内容:

  • 本堂课的知识要点有哪些?
  1. 为什么需要Redis,Redis的基本工作原理
  2. Redis应用案例
  3. 在字节跳动,使用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 信息等

image.png

  • List 类型:

    应用场景:消息队列等。

image.png

数据结构组成:QucikList:一个双向链表和listpack组成。

image.png

  • Hash 类型:

    应用场景:缓存对象、购物车等。

  • Set 类型:聚合计算(并集、交集、差集)场景,比如点赞、共同关注、抽奖活动等。

  • Zset 类型:排序场景,比如排行榜、电话和姓名排序等。

image.png

大key

key-value这个键值对中,value占的内存太大。value是String类型的时候,存储这个value需要10kb以上的空间)或者当value是有序结合Zet,List,Set时,集合里面的成员数量超过5000个。

大key的危害:

1.读取成本高

2.容易导致慢查询

3.主从复制异常,服务阻塞,无法正常响应请求

解决方法:

  1. 对大key进行拆分

  2. 压缩value

热key

访问频率高的Key,称为热Key。QPS超过500就可以识别为热key。

解决方法:

  1. 采用本地缓存

  2. 对key进行复制

三、实践练习例子:

  • 有什么实践举例帮助理解知识点?

四、课后个人总结:

  • 本章有什么知识点不容易掌握?
  • 什么地方容易与其他内容混淆?

五、引用参考:

  • 我参考了哪些外部博客/笔记/文章?
  • 文章中有什么地方是我参考引用了外部博客/笔记/文章的?