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

Redis那些运行命令怎么查看和用,想深入了解就得这样试试看

想知道Redis命令怎么查看和用,光看理论不行,必须自己动手敲一敲,最好的学习方法就是一边开着Redis的命令行界面(CLI),一边跟着下面的步骤自己试。

第一步:先找到“说明书”——HELP命令

Redis自带了一个非常实用的内置帮助系统,你不需要去网上查,在命令行里就能直接看,怎么用呢?很简单,有几种方式:

  1. 直接敲 HELP:输入HELP然后回车,它会告诉你如何使用帮助系统本身,比如HELP @<group>可以查看命令组,HELP <command>可以查看特定命令的详细用法,这是总目录。
  2. 查看命令分组 (HELP @<group>): Redis把上百个命令分成了不同的组,比如@connection(连接相关)、@string(字符串类型)、@list(列表类型)、@hash(哈希类型)等等,你想了解哪一类的命令,就输入HELP @组名,你想知道所有和字符串操作有关的命令,就输入 HELP @string,屏幕上会列出所有字符串命令的简单说明和用法示例,这是分章节阅读。
  3. 查看具体命令 (HELP <command>): 这是最常用的,如果你已经知道命令的名字,但不确定参数怎么用,就直接HELP 命令名,你对设置过期时间的SET命令用法有点模糊,就输入 HELP SET,它会给出非常详细的语法说明,每个参数是干嘛的,甚至还有简单的例子,这是精确查找。

(参考来源:Redis官方文档中关于CLI交互模式的说明)

Redis那些运行命令怎么查看和用,想深入了解就得这样试试看

第二步:别怕搞砸,在命令行里大胆试

知道了怎么看说明书,接下来就是动手操作,不用担心会把数据库搞坏,尤其是如果你只是在本地学习的话。

  • 从最简单的“增删改查”开始:以最常用的字符串(String)类型为例。

    Redis那些运行命令怎么查看和用,想深入了解就得这样试试看

    • 增/改:用 SET 命令,试试 SET mykey "Hello World",这就好比往一个叫“mykey”的盒子里放入了“Hello World”这个内容,Redis会回复OK,表示成功。
    • :用 GET 命令,紧接着输入 GET mykey,Redis就会把你刚才存进去的"Hello World"显示出来。
    • :用 DEL 命令,输入 DEL mykey,再输入 GET mykey,这次会返回(nil),表示这个key已经不存在了,删除成功。
    • 检查存在:用 EXISTS 命令,输入 EXISTS mykey,它会返回(integer) 0,表示不存在;如果你SET之后检查,会返回(integer) 1
  • 试试复杂点的数据结构:Redis的强大之处在于不止有简单的字符串。

    • 哈希(Hash):像一个小的字典,适合存一个对象的多个字段,比如存一个用户信息:
      • HSET user:1000 name "张三" age 30 city "北京"
      • HGET user:1000 name (获取名字)
      • HGETALL user:1000 (获取所有字段和值)
    • 列表(List):一个有序的字符串列表,可以从两头插入弹出。
      • LPUSH mylist "world" (从左边插入)
      • LPUSH mylist "hello"
      • LRANGE mylist 0 -1 (查看列表所有元素,会看到 hello, world)
    • 集合(Set):无序且元素唯一的集合。
      • SADD myset "apple" "banana" "apple" (尝试加入两个apple)
      • SMEMBERS myset (查看集合,你会发现只有一个"apple",因为它自动去重了)

(参考来源:Redis官方文档中对核心数据类型的教程)

第三步:玩点“花活”——结合使用命令和观察效果

Redis那些运行命令怎么查看和用,想深入了解就得这样试试看

单条命令会用了,就可以尝试把命令组合起来,或者使用一些高级参数,观察Redis的特定行为。

  • 给数据加个“保质期”SET命令不仅可以存数据,还能设置过期时间,试试 SET session:user123 "data" EX 10,这条命令存数据的同时,告诉Redis10秒后自动删除这个key,你可以在10秒内用GET session:user123还能查到,10秒后再查就是(nil)了,这个功能在做登录会话、验证码缓存时非常有用。
  • 让操作“原子性”执行:Redis支持用MULTIEXEC命令组成一个事务,你可以把一系列命令打包,然后让Redis一次性按顺序执行,中间不会被其他客户端的命令打断。
    • 输入 MULTI,Redis回复OK
    • 然后你输入 SET a 100,它不会立即执行,而是回复QUEUED(已排队)。
    • 再输入 SET b 200,同样回复QUEUED
    • 最后输入 EXEC,Redis会一次性执行刚才排队的两个命令,并返回两个结果,这可以保证a和b是被同时设置的。
  • 监控Redis在干什么:有一个非常有趣的命令叫 MONITOR,你在客户端输入MONITOR后,这个客户端就会进入监控模式,你在另一个客户端或者用另一个命令行窗口对Redis进行的任何操作,比如SET、GET,都会实时地在这个监控窗口显示出来,这对于调试和理解命令的实时流向非常有帮助(生产环境慎用,因为输出量很大)。

(参考来源:Redis官方文档中关于键过期、事务、监控等特性的说明)

第四步:探索服务器本身

除了操作数据,还有一些命令可以让你了解Redis服务器自身的状态。

  • 查看信息INFO命令非常强大,直接输入INFO,它会输出一长串服务器信息,包括内存使用情况、客户端连接数、持久化状态、各种统计信息等,你可以看更具体的信息,比如INFO memory专门看内存,INFO clients专门看客户端连接。
  • 查看所有键KEYS * 命令可以列出当前数据库的所有key。但要特别注意:如果你的数据库里key非常多,这个命令会阻塞Redis一段时间,因为它需要遍历所有key,所以在生产环境绝对不要使用,学习环境可以试试看。
  • 清空当前数据库:如果你试了一大堆命令,想把环境恢复干净,可以用 FLUSHDB 清空当前数据库,或者 FLUSHALL 清空所有数据库。同样,生产环境极度危险,学习环境随便用。

深入了解Redis命令的最佳路径就是:HELP -> 简单CRUD -> 复杂类型 -> 组合与特性 -> 服务器管理,这个过程里,最重要的一点是保持好奇心,看到不认识的命令或参数,随手HELP一下,然后马上自己构造例子试一试,这样积累下来的印象远比死记硬背要深刻得多。