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

用Shell命令玩转Redis,快速上手数据库那些事儿

(根据网络技术博客和社区问答中关于Redis Shell操作的常见讨论整理)

想用Shell命令快速玩转Redis,其实没那么复杂,你不用把它想成一个高深莫测的数据库,就把它当成一个巨大的、存储在内存里的字典(或者叫键值对集合),我们通过一个叫redis-cli的命令行工具来和它“对话”,下面就直接开始,一步步带你上手。

第一步:启动对话,连接Redis

你得确保你的电脑上已经安装并运行了Redis,打开你的终端(Terminal或Command Prompt),输入最简单的连接命令:

redis-cli

如果Redis就在你本机上,而且用的是默认端口6379,这个命令就能直接连上,连上之后,命令提示符会变成0.0.1:6379>,这说明你已经进入了Redis的“对话模式”,接下来你输入的命令都会被发送给Redis服务器执行。

如果Redis在别的机器上,或者端口改了,你就需要告诉redis-cli具体位置,

redis-cli -h 你的服务器IP -p 端口号 -a 密码(如果有的话)

第二步:学会“增删改查”这四板斧

数据库最基本的操作就是存东西、取东西、改东西和删东西,在Redis里,这对应着SET, GET, SET, DEL这几个命令。

  1. 存一个值(增/改): 命令是SET,你想把用户名“张三”存到一个叫user:name的键里。

    0.0.1:6379> SET user:name "张三"
    OK

    看到OK就表示成功了,如果user:name这个键已经存在,那么新的值“张三”会覆盖掉旧的值,所以这个命令也起到了“改”的作用。

  2. 取一个值(查): 命令是GET,现在我们把刚才存的值取出来看看。

    0.0.1:6379> GET user:name
    "张三"

    看,Redis把“张三”还给我们了,如果你查一个不存在的键,它会返回(nil),表示空。

    用Shell命令玩转Redis,快速上手数据库那些事儿

  3. 删一个值(删): 命令是DEL,如果我们想删除user:name这个键。

    0.0.1:6379> DEL user:name
    (integer) 1

    返回的(integer) 1表示成功删除了1个键,如果再删一次,就会返回(integer) 0,因为键已经不存在了。

第三步:探索Redis的多种数据结构

Redis的强大之处在于它不止能存简单的字符串,还能存一些有结构的数据,比如列表、集合、哈希表,这就像你的储物柜,不仅有放单个物品的格子(字符串),还有放一堆书的书架(列表),放不重复玩具的盒子(集合)。

  1. 列表(List): 像一个排队队伍,数据一个接一个,可以从左边或右边放进放出。

    • 从左边插入: LPUSH
      0.0.1:6379> LPUSH mylist "first"
      127.0.0.1:6379> LPUSH mylist "second"
    • 从右边插入: RPUSH
      0.0.1:6379> RPUSH mylist "third"
    • 查看列表一段范围的值: LRANGE0 -1表示查看所有。
      0.0.1:6379> LRANGE mylist 0 -1
      1) "second"  # 这是最后从左边插进来的,所以在最前面
      2) "first"
      3) "third"   # 这是从右边插进来的,所以在最后面
  2. 集合(Set): 像一个装独特物品的袋子,里面的元素是唯一的,没有顺序。

    • 添加元素: SADD
      0.0.1:6379> SADD myset "apple"
      127.0.0.1:6379> SADD myset "banana"
      127.0.0.1:6379> SADD myset "apple"  # 重复添加,Redis会忽略
    • 查看所有元素: SMEMBERS
      0.0.1:6379> SMEMBERS myset
      1) "banana"
      2) "apple"   # 你会发现只有一个"apple"
  3. 哈希(Hash): 像一个表格或者一个微型数据库,它里面又可以存多个字段和值,特别适合表示一个对象,比如存储用户信息。

    用Shell命令玩转Redis,快速上手数据库那些事儿

    • 设置哈希的字段值: HSET
      0.0.1:6379> HSET user:1000 name "李四" age 30 city "北京"

      这里user:1000是键的名字,我们在这个键里面存了三个字段:name, age, city。

    • 获取哈希的某个字段值: HGET
      0.0.1:6379> HGET user:1000 name
      "李四"
    • 获取哈希的所有字段和值: HGETALL
      0.0.1:6379> HGETALL user:1000
      1) "name"
      2) "李四"
      3) "age"
      4) "30"
      5) "city"
      6) "北京"

第四步:一些实用的管理命令

  1. 查看所有键: 命令是KEYS *,但要小心在生产环境使用,如果键很多可能会卡住。

    0.0.1:6379> KEYS *
  2. 判断键是否存在: EXISTS,存在返回1,不存在返回0。

    0.0.1:6379> EXISTS user:name
  3. 给键设置过期时间: EXPIRE,比如让一个键10秒后自动消失,这在做缓存时非常有用。

    0.0.1:6379> SET temp_data "hello"
    127.0.0.1:6379> EXPIRE temp_data 10
  4. 退出对话: 命令是QUIT,或者直接按Ctrl + D

    0.0.1:6379> QUIT

最后的小贴士

  • 多动手敲命令,这是最快的学习方式,不用担心敲错,Redis的命令很直观,错了会有提示。
  • 键的命名最好有个规范,比如用冒号分隔,像user:1000:profile,这样清晰易懂。
  • Redis的数据主要在内存里,所以它超级快,但也要注意别把内存撑爆了。

就是用Shell命令玩转Redis的快速上手指南,从最简单的连接和增删改查开始,再到列表、集合、哈希这些数据结构,你已经掌握了最基本的操作,就是多练习,试着用这些基础命令组合出更多有趣的功能。