redis学习笔记(1)|青训营笔记

60 阅读2分钟

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

为完成组队大项目作业,今天学习redis相关知识。

Redis 是使用一个使用C语言开发的数据库。不过与传统数据库不同的是,Redis 的数据是存在内存中的,也就是它是内存数据库,所以读写速度非常快,因此 Redis 被广泛应用于缓存方向。此外,Redis 还被应用于分布式锁,甚至是消息队列。Redis 提供了多种数据类型来支持不同的业务场景。Redis 还支持事务 、持久化、Lua 脚本、多种集群方案。

Redis 与 MySQL 数据库有以下几点区别:

  • MySQL是关系型数据库;Redis是非关系型数据库,也是缓存数据库。
  • MySQL用于持久化的存储数据到硬盘,功能强大,但是速度较慢;Redis用于存储使用较为频繁的数据到缓存中,读取速度快。
  • MySQL和Redis因为需求的不同,一般都是配合使用。(要注意保持数据库和缓存中的数据的一致性。)
  • Redis适合放一些频繁使用的数据,一般会应用在下面这些场景中:排行榜、计数器、消息队列推送、关注、粉丝、好友关系等。

Redis 有以下这五种基本类型(具体参考 www.runoob.com/redis/redis… ,可以在 try.redis.io/ 中尝试):

  • String(字符串):一般常用在需要计数的场景,比如用户的访问次数、热点文章的点赞转发数量等等。
  • List(列表):一般常用在发布与订阅或者说消息队列、慢查询。
  • Hash(哈希表):一般用于系统中对象的存储,比如我们可以 hash 数据结构来存储用户信息,商品信息等等。。
  • Set(集合):常用于需要存放的数据不能重复以及需要获取多个数据源交集和并集等场景,如共同关注、共同粉丝、共同喜好等功能。
  • zset(有序集合):常用于需要对数据根据某个权重进行排序的场景。比如在直播系统中,实时排行信息包含直播间在线用户列表,各种礼物排行榜,弹幕消息(可以理解为按消息维度的消息排行榜)等信息。