Redis复习 | 青训营笔记

73 阅读2分钟

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

这篇笔记旨在复习上课学习的Redis的相关内容。

什么是Redis

为什么需要Redis

随着数据量的增长和读写数据压力的不断增大,传统MySQL数据库不能支撑大型的数据系统,需要将多个MySQL数据库进行集群,这样做不仅麻烦,并且读取数据时间久。此外,存在公司中的数据有相当一部分为“冷数据”,即不是经常会访问到的数据,与之相对的“热数据”需要频繁访问,为了解决这个问题,Redis应运而生。Redis可以直接从内存中读取数据,速度相比别的数据库更快,因此,可以将“热数据”存在Redis中,访问时可以直接从内存中读取,速度比传统的MySQL集群要快得多。而其余“冷数据”则交给传统的MySQL集群存储,优先访问Redis存储的数据,访问不到再去MySQL集群中访问数据。在MySQL集群中访问到的数据,可以视为热数据再存入Redis中。

Redis基本工作原理

Redis通过RSEP协议连接到服务。上文已经提到,Redis可以从内存中读取数据以加快访问速度,不仅如此,Redis还将数据和日志文件保存在本地硬盘上以防止数据丢失。日志文件会保存在AOF文件中,如果Redis重启了,Redis会对比本地的AOF文件来核对数据是否是最新的。此外,Redis启动时还会读取本地的RDB文件,RDB文件是保存当前Redis所有实例的文件。

Redis应用案例

  1. 连续签到:使用sds数据结构
  2. 消息通知:用list数据结构作为消息队列
  3. 计数:通过hash结构存储
  4. 排行榜:使用zset数据结构
  5. 限流:使用一个时间戳的key,key超过限制的N则禁止访问
  6. 分布式锁:使用setnx实现

以上就是我对Redis课程的复习和总结。