Redis那些语句怎么用啊,边学边试着感受它的魅力吧
- 问答
- 2026-01-08 16:19:11
- 9
主要基于Redis官方文档的入门指南和命令手册,并结合常见的入门学习路径进行整理)
Redis这东西,你刚开始可以把它想象成一个特别利索的小本本,它不是那种笨重的大账本(比如关系型数据库),这个本本专门记一些简单的、但需要快速写下和快速查看的东西,它的魅力就在于,你用一个非常简单的命令,它“唰”一下就给你办好了,速度极快。
咱们就从最基础的“键值对”开始感受,这是Redis的根本,就像字典一样,一个键(key)对应一个值(value)。
最简单的存和取:SET 和 GET
怎么往这个小本本上写东西呢?用 SET 命令。
SET mykey "Hello Redis"
这行语句的意思就是:喂,Redis,请把“Hello Redis”这个值,用“mykey”这个钥匙存起来,你敲下回车,Redis会回你一个“OK”,意思是“办妥了!”。
那怎么取出来呢?用 GET 命令。
GET mykey
Redis会立刻把刚才存的“Hello Redis”还给你,你看,就这么简单,一句话存,一句话取,你可能会想,这跟我用个变量有啥区别?别急,魅力在后面,你可以给这个键值对设置一个“保质期”。
给数据加个“保质期”:EXPIRE 和 TTL
我们要存一个验证码,5分钟后它就应该失效,我们可以先存,再设置过期时间:
SET verification_code "123456"
EXPIRE verification_code 300
EXPIRE 命令就是给 key 设置一个存活时间,单位是秒,这里的300就是300秒,也就是5分钟。
那我想看看这个验证码还有多久过期怎么办?用 TTL 命令。
TTL verification_code
它会返回一个数字,就是剩余的秒数,如果返回-2,说明这个key已经不存在了(过期被删掉了);返回-1,说明这个key没有设置过期时间,这个功能在做缓存、会话管理时超级有用,你不需要自己写个定时任务去清理,Redis自动就帮你处理了,这就是它的魅力之一:省心。
你甚至可以一条命令搞定存值和设置过期时间:
SET verification_code "123456" EX 300
看,多简洁。
计个数,增增减减:INCR 和 DECR
假设你在做一个文章阅读量的统计,每次有人阅读文章,阅读数就要+1,如果用传统数据库,你得先查询出当前的阅读数,加1,再写回去,很麻烦,在Redis里,简单到令人发指:
INCR article:123:views
INCR 命令能让一个key的值自动增加1,如果这个key不存在,Redis会先把它设为0,然后再加1,所以第一次执行会返回1,你再执行一次,就返回2。DECR 就是减1。
你还可以按指定步长增加或减少,用 INCRBY 和 DECRBY:
INCRBY article:123:views 10 # 一次增加10
这种原子性的操作(不用担心多个用户同时点击导致计数错误)在高并发场景下魅力无穷,代码写起来非常清爽。
存储列表:LPUSH, RPUSH, LPOP, RPOP
Redis的值不只是字符串,还可以是列表(List),列表就像排队,可以从左边进,也可以从右边进。
我要做一个最近访问用户列表。
从左边插入一个新用户:
LPUSH recent_users "userA"
再插入一个:
LPUSH recent_users "userB"
现在列表里是 ["userB", "userA"],后插入的在前面,如果想从右边插入,就用 RPUSH。
那怎么取呢?LPOP 是从左边弹出一个元素(取出并移除),RPOP 是从右边。
LPOP recent_users
这条命令会取出"userB",同时列表里就只剩下"userA"了,你可以用 LRANGE 命令查看列表的一段内容:
LRANGE recent_users 0 -1 # 0表示起始索引,-1表示到最后,也就是查看全部
用这个可以做消息队列、最新新闻列表等等,非常灵活。
存储集合:SADD, SMEMBERS, SISMEMBER
集合(Set)的特点是元素唯一,没有顺序,给文章点赞的用户名不能重复。
添加点赞用户:
SADD article:123:likes "userA"
SADD article:123:likes "userB"
SADD article:123:likes "userA" # 这次操作是无效的,因为userA已经存在了
查看所有点赞用户:
SMEMBERS article:123:likes
检查某个用户是否点过赞:
SISMEMBER article:123:likes "userC"
如果用户存在,返回1;不存在,返回0,集合还能做交集、并集、差集运算,比如找出共同好友,功能很强。
存储哈希:HSET, HGET, HGETALL
哈希(Hash)适合存储一个对象的多个字段,比如存储一个用户的信息。
HSET user:1000 name "张三" age 30 city "北京"
这条命令一次性设置了用户1000的名字、年龄和城市,它类似于一个小字典。
单独获取某个字段:
HGET user:1000 name
获取所有字段和值:
HGETALL user:1000
用哈希来管理这种结构化数据,比拆成多个独立的key要方便和高效。
边学边试的魅力所在
光看是感受不到Redis的魅力的,你一定要自己安装一个Redis(或者找在线的练习环境),打开它的命令行客户端(redis-cli),然后一条一条地把上面的命令敲进去。
当你敲下 SET 然后立刻 GET 到结果时;当你设置一个过期时间,然后看着 TTL 的数字逐渐变小直到key消失时;当你用 INCR 看着数字轻松上涨时;当你用列表、集合玩出各种花样时……你会真切地感受到一种“爽快感”。
这种爽快感来自于它的直接和高效,它没有复杂的SQL语法,就是简单的命令-响应,它把那些在编程中常见的、琐碎的、但又对性能要求很高的任务(比如缓存、计数、队列),用最优雅的方式解决了。
别犹豫,打开你的终端,开始输入 redis-cli,然后敲下第一个 SET myfirstkey "Hello, Redis!" 吧,亲手试一试,你才能真正体会到它为什么这么受欢迎,它的魅力,就藏在这些简单而强大的命令背后,等着你通过实践去发现。

本文由太叔访天于2026-01-08发表在笙亿网络策划,如有疑问,请联系我们。
本文链接:http://waw.haoid.cn/wenda/76907.html
