当前位置:首页 > 问答 > 正文

Redis视频带你快速入门NoSQL数据库,边学边用不枯燥的讲解

(开场,画面出现一个简单的待办事项应用,操作很慢,一直在转圈)

旁白: “哎呀,这个待办事项列表怎么点一下要等这么久?感觉像在跟远方的服务器写信一样,太慢了!如果你的网站或者应用也有这种‘慢性子’的问题,那很可能是因为它太依赖那个传统的关系型数据库,比如MySQL了,每次查询都要去硬盘里翻箱倒柜,人一多,自然就卡顿了。”

(画面切换,出现一个写着“硬盘I/O瓶颈”的瓶颈图案,旁边是一个愁眉苦脸的用户)

旁白: “那有没有一种数据库,能把最常用的数据直接放在‘工作台’上,也就是内存里,让你随用随取,速度快到飞起呢?当然有!这就是我们今天要快速入门的明星——Redis!”

(Redis的Logo帅气地弹出,背景是高速运转的动画)

旁白: “Redis,全称Remote Dictionary Server,远程字典服务器,你别被这个名字吓到,其实你可以把它想象成一个超级快的‘大杂烩’储物柜,或者一个放在内存里的‘万能记事本’,它的核心特点就一个字:快!因为它把所有数据都放在内存里操作,速度比从硬盘读取快了几个数量级。”

(动画演示:一个数据从硬盘缓慢读出,另一个数据从内存里“唰”地一下弹出)

旁白: “内存一断电数据不就没了吗?Redis当然想到了这一点,它支持定期把数据‘备份’到硬盘上,所以不用担心数据会丢,它生来就是为了解决那些需要极速读写的场景,给我们传统的关系型数据库,比如MySQL,做一个超级给力的‘助手’,专门处理热点数据,这种分工合作的方式,在技术上叫做‘缓存’。”

(画面出现MySQL和Redis手拉手合作的卡通形象,MySQL负责存储永久数据,Redis负责提供快速查询)

旁白: “好了,理论说多了容易困,我们直接来看看Redis这个‘万能记事本’都能记些啥?它可不是只能存简单的数字或文字哦,它支持好几种实用的‘数据结构’。”

字符串(String)—— 最常用的储物格

旁白: “这就像最简单的键值对,一个钥匙(Key)对应一个值(Value),我们可以用来存用户的登录状态。”(来源:Redis官方文档对String数据类型的定义)

示例画面:

键(Key):user:1001:status
值(Value):online

旁白: “设置命令是 SET user:1001:status online,获取命令是 GET user:1001:status,看,是不是很简单?我们还可以用它来存文章的点赞数,通过 INCR 命令让数字自动加1,超级方便。”

哈希(Hash)—— 存对象的小档案

旁白: “如果一个用户的信息有很多项,比如名字、年龄、城市,用多个String来存会很麻烦,这时就用Hash!它像一个档案袋,一个Key对应多个字段(Field)和值(Value)。”(来源:Redis官方文档对Hash数据类型的定义)

示例画面:

Key: user:1001
Field-Value:
  name - "张三"
  age - "28"
  city - "北京"

旁白: “命令像是 HSET user:1001 name 张三 age 28 city 北京,然后可以单独获取城市信息 HGET user:1001 city,存一个用户对象、商品信息,用Hash就特别合适。”

列表(List)—— 简单的队列或时间线

旁白: “List就是一个有序的字符串列表,你可以从左边或者右边把元素推进去、拉出来,这像什么?就像我们排队买奶茶!”(来源:Redis官方文档对List数据类型的定义)

示例画面: 一个竖着的列表,演示 LPUSH task_queue "任务A"LPUSH task_queue "任务B"RPOP task_queue 取出“任务A”。 旁白: “我们可以用它来做消息队列,任务队列’,新的任务从左边推进去(LPUSH),工作线程从右边取出来(RPOP)执行,或者存社交网站的最新微博列表,最新发布的放在列表头。”

集合(Set)—— 自动去重的收藏夹

旁白: “Set的最大特点就是里面的元素都是唯一的,自动帮你‘去重’,它内部的顺序是无序的。”(来源:Redis官方文档对Set数据类型的定义)

示例画面: 一个圆圈,代表集合,执行 SADD article:1001:likers user200 user300 user200,最后集合里只有user200和user300。 旁白: “完美适用于文章的点赞用户列表,你不用担心同一个用户被记录两次,还可以求两个集合的交集,找出同时关注了我和另一个博主的人’。”

有序集合(Sorted Set)—— 带排名的榜单

旁白: “这是Redis的王牌数据结构之一!它和Set一样保证元素唯一,但每个元素都关联一个分数(Score),可以根据分数自动排序。”(来源:Redis官方文档对Sorted Set数据类型的定义)

示例画面: 一个排行榜,显示游戏玩家和得分。

命令:ZADD leaderboard 2500 玩家A
      ZADD leaderboard 3800 玩家B
      ZADD leaderboard 1900 玩家C
获取前三名:ZREVRANGE leaderboard 0 2 WITHSCORES

旁白: “游戏排行榜、热搜榜、带分数的优先级任务,用它来实现简直是量身定做!”

(画面回到一开始的待办事项应用,现在引入了Redis作为缓存,操作瞬间完成)

旁白: “看,现在我们再操作这个待办应用,是不是快如闪电?我们把常用的数据缓存在Redis里,大部分请求都不用去打扰MySQL老大哥了,效率自然大大提升。”

总结画面:

旁白: “Redis入门就是这么简单!你不需要一开始就掌握所有高深莫测的原理,只要记住:”

  • 它是个超快的内存数据库。
  • 它擅长做缓存,加速你的应用。
  • 它有五种实用的数据结构,应对不同场景:String(简单值)、Hash(对象)、List(队列/列表)、Set(去重集合)、Sorted Set(排行榜)。

旁白: “下次当你的应用遇到性能瓶颈,觉得‘慢’的时候,不妨想想Redis这个得力助手,找个开发朋友聊聊,或者自己动手在本地安装一个Redis,敲敲我们今天演示的这些基本命令,你会立刻感受到它的魅力!边学边用,才是最快的学习方式。”

(视频结束,出现“动手试试吧!”的字样和Redis官网链接)

Redis视频带你快速入门NoSQL数据库,边学边用不枯燥的讲解