Redis里头数据到底咋存取,简单又实用的操作指南分享
- 问答
- 2026-01-05 01:49:36
- 25
Redis就像一个超级快的高速钥匙柜,你放进去的东西都得有一把唯一的钥匙(也就是Key),然后凭钥匙来存和取,咱们不用记那些复杂的命令,就把它当成一个简单的操作就行。
第一部分:最基础的,字符串(String)的存和取
这是最常用、最简单的类型,就好像你把一个纸条放进一个带标签的格子里。
-
存数据(SET): 命令就是
SET,你想把用户名“张三”存起来,钥匙叫“user:1001:name”,那么操作就是:SET user:1001:name 张三这就存好了,你还可以给它加个有效期,比如10分钟后自动消失,命令就变成:SET user:1001:name 张三 EX 600(EX后面跟的是秒数) -
取数据(GET): 命令就是
GET,拿着钥匙去柜子里找就行了:GET user:1001:name如果钥匙存在,Redis就会返回“张三”;如果钥匙不对或者过期了,就返回空。 -
来源参考: 根据Redis官方文档(Redis Commands | SET)的说明,SET命令是设置键值对的核心命令,而GET是获取键值对的核心命令。
第二部分:存多个字段的对象,用哈希(Hash)
如果一个东西信息比较多,比如一个用户有名字、年龄、城市,用很多个单独的字符串钥匙会很乱,这时候就用哈希(Hash),它就像一个大信封,钥匙是信封的名字,信封里面有很多个小纸条(字段和值)。
-
存数据(HSET): 命令是
HSET,把用户1001的完整信息存进去:HSET user:1001 name 张三 age 30 city 北京这一条命令就把三个字段都塞进“user:1001”这个大信封里了。 -
取单个字段(HGET): 命令是
HGET,只想看这个用户的城市:HGET user:1001 city返回的就是“北京”。 -
取全部字段(HGETALL): 命令是
HGETALL,想把整个信封里的东西都倒出来看看:HGETALL user:1001它会把这个信封里所有的字段和值一个一个地列出来。 -
来源参考: Redis官方文档(Redis Commands | HSET)中指出,哈希是存储对象的理想选择,可以高效地访问和修改对象的个别字段。
第三部分:存列表,比如消息队列,用列表(List)
List就像一个只有一端开口的竹筒(或者两端都开口),你可以往里塞纸条,也可以从外面抽纸条,这特别适合做消息队列,比如秒杀时排队下单。

-
从左边塞进去(LPUSH): 命令是
LPUSH,有三个任务要排队:LPUSH task_queue task1 task2 task3注意,这样塞进去的顺序是task3在最里面,task1在最外面。 -
从右边抽出来(RPOP): 命令是
RPOP,处理任务的人从另一边抽任务:RPOP task_queue第一次抽,拿到的是“task1”,因为它是最后被推进来的,但在出口端它是第一个,这样就实现了先进先出的队列。 -
来源参考: 在Redis官方文档(Redis Commands | LPUSH)中,列表常被用作消息队列、时间线等场景。
第四部分:存不需要重复的集合,用集合(Set)
Set就像一个袋子,你往里面扔东西,但袋子里不允许有两个一模一样的东西,它不管顺序,只管有没有。
-
往袋子里扔东西(SADD): 命令是
SADD,给文章1001添加标签:SADD article:1001:tags 科技 Redis 数据库即使你重复执行“科技”,袋子里也只有一个“科技”。 -
检查东西在不在袋子里(SISMEMBER): 命令是
SISMEMBER,检查“Redis”是不是这篇文章的标签:SISMEMBER article:1001:tags Redis如果在,返回1;不在,返回0。 -
取整个袋子(SMEMBERS): 命令是
SMEMBERS,看看这篇文章都有哪些标签:SMEMBERS article:1001:tags注意,取出来的顺序是不确定的。
-
来源参考: Redis官方文档(Redis Commands | SADD)描述集合用于存储唯一值的无序集合。
第五部分:存取带分数的排序集合,用有序集合(Sorted Set)
这个比Set高级一点,它给袋子里每个东西都贴了个分数标签,然后可以根据分数大小来排序,最适合做排行榜。
-
存带分数的数据(ZADD): 命令是
ZADD,记录玩家的分数:ZADD player_scores 1500 张三 3200 李四 2800 王五 -
按排名取数据(ZRANGE): 命令是
ZRANGE,想看分数从低到高的前三名:ZRANGE player_scores 0 2 WITHSCORES它会返回“张三 1500”、“王五 2800”、“李四 3200”,如果想从高到低,就用ZREVRANGE。 -
查看某个人的排名(ZREVRANK): 命令是
ZREVRANK,想知道李四在排行榜是第几名(从0开始算):ZREVRANK player_scores 李四因为是从高到低排,李四分数最高,所以返回0,表示第一名。 -
来源参考: Redis官方文档(Redis Commands | ZADD)中说明有序集合非常适合排行榜、优先级队列等场景。
几个通用的必备操作
- 检查钥匙是否存在(EXISTS):
EXISTS user:1001:name,存在返回1,不存在返回0。 - 给钥匙设有效期(EXPIRE):
EXPIRE user:1001:name 300,让这个钥匙300秒后过期。 - 删除钥匙(DEL):
DEL user:1001:name,不管里面是什么类型的数据,直接连钥匙带内容整个删掉。 - 来源参考: 这些是Redis的通用键命令,在官方文档(Redis Commands | Keys)部分有集中说明。
就是Redis最核心、最实用的存取操作,你不用一下子全记住,只需要知道有这些“柜子”和“袋子”,需要的时候再来查这个指南,知道用哪个命令就行了,多上手练几次,自然就熟了。
本文由召安青于2026-01-05发表在笙亿网络策划,如有疑问,请联系我们。
本文链接:https://www.haoid.cn/wenda/74669.html
