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

红色手表带你慢慢玩转Redis,边学边用不枯燥的教程分享

(引用来源:B站UP主“红色手表”视频内容及专栏文章)

嘿,朋友们,我是红色手表,今天咱们不聊那些高大上的理论,就实实在在地来玩转一下Redis,很多人一听Redis,就觉得是程序员才要懂的东西,特别复杂,别怕,我今天就带你用一个特别好玩的角度,像玩游戏一样,把它给整明白,咱们的口号是:边学边用,绝不枯燥!

第一关:Redis是什么?它就是个“超级快的多功能记事本”

你先别去想什么“内存数据库”、“键值对”这些专业词儿,头疼,你就把它想象成一个放在你电脑内存里的、速度超级快的记事本,这个记事本特别牛,不仅能记简单的文字,还能记清单、记表格,甚至还能给记的东西设个“保质期”,时间一到自动就没了。

为啥要用它?你想啊,你电脑上存东西一般是放在硬盘里,就像你的大书柜,东西能存很多,但找起来慢,而内存呢,就像你书桌上的一个小本子,你随手就能记、随手就能看,速度飞快,Redis就是把这个“小本子”的作用发挥到极致,专门用来记那些你需要频繁、快速访问的“临时”信息,网站上有多少人在线啊,购物车里临时放了啥东西啊,这种信息用Redis记就再合适不过了。

第二关:启动你的Redis“服务器”

光说不练假把式,咱们第一步,就是先把Redis这个“超级记事本”打开,怎么打开呢?如果你用的是Mac,打开“终端”(那个小黑框);如果用Windows,可能需要先安装一下Redis,然后也打开命令行工具。

在里面输入一个简单的命令:redis-server,然后按回车,如果你看到屏幕上出现一个红色的logo(这就是为啥我叫红色手表,应景!),还有一堆提示信息,最后停在那不动了,好像卡住了似的——恭喜你!这就对了!这说明你的Redis“服务器”已经成功启动了,现在这个“超级记事本”已经摊开在你面前,准备让你往上写东西了。

第三关:用“命令行”跟Redis聊天

记事本打开了,我们得有个笔来写东西吧?这个“笔”就是另一个命令行窗口,你再新开一个终端窗口,别关掉刚才那个,在新的窗口里,输入 redis-cli,然后回车,这时候,你会看到命令提示符变成了 0.0.1:6379>,这就好比是你拿到了那支神奇的笔,现在你可以开始和Redis这个“记事本”对话了。

第四关:玩转Redis的“三板斧”——SET, GET, DEL

红色手表带你慢慢玩转Redis,边学边用不枯燥的教程分享

这是最核心、最常用的三个命令,就像学功夫的三板斧,简单又实用。

  1. SET(写点东西):你想记点啥?比如记下我的名字,你就输入:SET myname "红色手表",然后回车,Redis会回你一个“OK”,意思是:“好啦,老弟,我已经把你的名字‘红色手表’记在‘myname’这个标签下面了。”
  2. GET(读点东西):过一会儿你忘了自己叫啥了,怎么办?查一下呗,输入:GET myname,回车,Redis立马就把刚才存的“红色手表”给你显示出来了,是不是快得像闪电?
  3. DEL(擦掉东西):这个名字我不想留了,想删掉,输入:DEL myname,回车,Redis告诉你删掉了1个,你再输入 GET myname,它就回你一个(nil),意思是“哥们儿,我这儿啥也没有啊”。

你看,就这么简单!你已经学会了最基本的读写删操作,但这只是开始,好玩的还在后头。

第五关:给数据加个“保质期”——EXPIRE

这是Redis一个超级实用的功能,你有个验证码,有效期是60秒,60秒后自动失效,你怎么实现?很简单!

先存验证码:SET authcode "123456" 给它设个保质期:EXPIRE authcode 60 这样,60秒后,你再用 GET authcode 去查,就会发现它自动消失了,你也可以用一条命令搞定:SET authcode "123456" EX 60,EX就是EXPIRE的简写,这个功能在做登录、秒杀等活动时特别有用。

第六关:除了记名字,还能记点啥?——丰富的数据类型

红色手表带你慢慢玩转Redis,边学边用不枯燥的教程分享

Redis这个记事本可不是普通的记事本,它里面分了好几个区域,可以记不同结构的东西。

  • List(列表):像排队一样,有序的清单,你可以从左边放进东西(LPUSH),也可以从右边放进东西(RPUSH),比如模拟一个消息队列:LPUSH news "第一条消息"LPUSH news "最新消息",然后用 LRANGE news 0 -1 可以把所有消息都查出来。
  • Hash(哈希):像一张小表格,可以存一个对象的多个属性,比如存一个用户信息:HSET user:1 name "张三" age 28 city "北京",这样就把用户1的名字、年龄、城市都存到一起了,取的时候用 HGETALL user:1 就全出来了。
  • Set(集合):像一个大箩筐,里面放东西是无序的,但最关键的是,里面的东西不能重复,这个特性特别适合用来做“点赞”、“关注”功能,比如用户A给文章1点赞:SADD article:1:likes userA,他怎么点都只算一次,因为集合会自动去重,查有多少人点赞:SCARD article:1:likes

第七关:真正用起来——结合小程序或网页

光在命令行里玩还不够酷,对吧?咱们最终是要把它用起来的,你可以用你熟悉的任何编程语言,比如Python、Java、PHP,它们都有专门连接Redis的“桥梁”(就是客户端库)。

举个例子,用Python写一个简单的网页访问计数器:

  1. 网页每次被打开,程序就执行一个命令:INCR page:view,INCR是让一个数字自动加1。
  2. 然后程序再执行 GET page:view,把当前的总访问量显示在网页上。

这样,一个简单的实时计数器就做好了!你会发现,这比去数据库里查快得多,也简单得多。

好了,今天咱们就玩到这里,你已经从一个Redis小白,变成了一个知道它是个“超级快的记事本”、会启动服务、会用命令行操作、还知道它有好几种数据类型的入门玩家了,学习技术最好的方式就是动手去玩,去试错,下次我们可以聊聊怎么用Redis实现一个简单的购物车,或者怎么让它持久化保存数据(就是怎么让记事本上的东西别一关机就没了)。

希望这次分享对你有帮助,觉得有意思的话,记得点赞关注红色手表,咱们下期再见!