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

Redis其实没那么难,跟着一步步学就能快速上手用起来

基于常见的Redis新手入门指南和实践经验总结)

Redis其实没那么难,跟着一步步学就能快速上手用起来,很多人一听到“内存数据库”、“键值存储”这种词就觉得头大,感觉是特别高深的技术,只有大公司的高级工程师才用得到,其实完全不是这样,它就是一个速度超级快的“大字典”或者“多功能工具箱”,你用非常简单的命令就能让它帮你干活。

咱们先别管那些复杂的概念,就先想想它能干什么,你最常听说的可能是用它来“缓存”,什么是缓存?举个最生活的例子:你家里有个小零食筐(Redis),你经常吃的零食就放在里面,每次想吃的时候,直接从筐里拿,又快又方便,而不是每次都跑到楼下很远的大超市(比如硬盘上的数据库)去买,虽然超市里东西更全,但跑一趟要花很多时间,Redis就是这个“小零食筐”,把那些你经常要查询的数据(比如网站的热门文章信息、用户的登录状态)放在内存里,下次需要的时候,毫秒级就能拿到,网站速度自然就快了。

那怎么开始用呢?第一步,你得把它安装到你的电脑上,这步其实很简单,去Redis官网找到下载链接,根据你的操作系统(比如Windows、MacOS或Linux)按照说明一步步安装就行,安装好后,在终端或命令行里输入一个叫redis-server的命令,就能启动Redis服务了,看到它显示出一个漂亮的ASCII艺术logo,并且提示说“Ready to accept connections”(准备接受连接),那就说明启动成功了!这时候,你别关这个窗口,让它一直运行着。

服务启动了,我们怎么跟它说话呢?再打开一个新的终端窗口,输入命令redis-cli,这个cli是“命令行界面”的意思,它就是你和Redis服务对话的小窗口,你会看到提示符变成了0.0.1:6379>,这说明你已经连接成功了!接下来的所有操作,都是在这个小窗口里输入命令完成的。

我们来学几个最核心、最常用的命令,你会发现它们就像说英语一样直观。

第一个命令,SET,意思是“设置”,你想把用户名“张三”和他的年龄“28”存起来,就这么写:

SET user:zhangsan:age 28

然后按回车,Redis会回复一个OK,表示存好了,你看,这个键(key)我写的是user:zhangsan:age,这有点像给东西贴标签,起个名字,方便后面找,你可以根据自己的需要随便起名。

存进去之后,怎么取出来呢?用GET命令:

GET user:zhangsan:age

按回车,Redis就会把刚才存的28给你显示出来,是不是超级简单?这就是最基本的存和取。

但Redis不只是能存数字和短字符串,它有好几种不同的“数据结构”,听起来高级,其实就是不同的存放方式,应对不同的场景。

有时候一个键下面要放多个值,比如张三的爱好,有“篮球”、“读书”、“旅游”好几个,这时候可以用SADD命令,把它加到一个叫“集合”的结构里:

SADD user:zhangsan:hobbies "篮球"
SADD user:zhangsan:hobbies "读书"
SADD user:zhangsan:hobbies "旅游"

然后你可以用SMEMBERS命令一次性取出所有爱好:

SMEMBERS user:zhangsan:hobbies

Redis会把这三个爱好都列出来,而且集合的特点是里面的值不会重复,你再加一个“篮球”进去,它也只会有一个。

再比如,要做排行榜怎么办?Redis提供了一个叫“有序集合”的结构,每个值都有一个分数,可以按分数排序,比如记录球员得分:

ZADD leaderboard 100 "球员A"
ZADD leaderboard 85 "球员B"
ZADD leaderboard 95 "球员C"

然后用ZREVRANGE命令按分数从高到低看前三名:

ZREVRANGE leaderboard 0 2 WITHSCORES

这样就能看到“球员A”100分排第一,“球员C”95分第二,这个功能用来做游戏排名、热搜榜都非常方便。

还有一个非常实用的功能是给数据设置“过期时间”,比如用户登录后,你给他生成一个登录凭证(token),你希望这个token过1小时就失效,存的时候可以这么写:

SET user:session:abc123token "zhangsan_id" EX 3600

这个EX 3600就是告诉Redis,这个键3600秒(1小时)后自动删除,这样你就不用自己写程序去清理过期数据了,Redis会自动帮你处理,特别省心。

你看,就这么几个命令:SET, GET, SADD, ZADD,再加上设置过期时间,你已经能解决很多实际问题了,比如用SET/GET做缓存和存简单配置;用集合SADD存标签、兴趣爱好;用有序集合ZADD做排行榜;用过期时间管理登录会话。

Redis的功能远不止这些,还有列表、哈希等其他结构,但原理都是相通的,你完全不需要一开始就掌握所有东西,就从这几个最常用的命令开始,在你的小项目里试着用起来,比如把你网站上某个经常查询数据库的地方,改成先查一下Redis,如果没有再去查数据库,同时把结果塞到Redis里设置个短一点的过期时间,就这么一个小的改动,你就能立刻体会到Redis带来的速度提升。

别被名字吓到,动手把服务跑起来,在redis-cli里敲几下命令试试,你就会发现,Redis真的没那么难,快速上手用它来加速你的应用,是一件很有成就感的事情。

Redis其实没那么难,跟着一步步学就能快速上手用起来