Redis常用操作

116 阅读5分钟

前言

好记性不如烂键盘,大家一起跟着敲吧! 😁😁😁

开敲!

一、基础命令

  1. SET key value

    • 用途:设置一个 key 对应的 value 值。如果 key 已经存在,则更新其对应的 value 值。
    • 例子:SET user:1000 "Tom",设置 key 为 "user:1000",其对应的 value 为 "Tom"。
  2. GET key

    • 用途:获取一个 key 对应的 value 值。
    • 例子:GET user:1000,获取 key 为 "user:1000" 对应的 value 值。
  3. DEL key [key ...]

    • 用途:删除一个或多个 key。
    • 例子:DEL user:1000,删除 key 为 "user:1000" 的键值对。
  4. EXISTS key [key ...]

    • 用途:检查一个或多个 key 是否存在。
    • 例子:EXISTS user:1000,检查 key 为 "user:1000" 的 key 是否存在。
  5. KEYS pattern

    • 用途:查找所有符合给定模式的 key。
    • 例子:KEYS user:*,查找所有以 "user:" 开头的 key。
  6. EXPIRE key seconds

    • 用途:为 key 设置一个过期时间(秒),当 key 过期后,其对应的 value 将自动删除。
    • 例子:EXPIRE user:1000 60,设置 key 为 "user:1000" 的过期时间为 60 秒。
  7. TTL key

    • 用途:获取 key 的剩余生存时间(秒)。
    • 例子:TTL user:1000,获取 key 为 "user:1000" 的剩余生存时间。

二、列表相关命令

  1. LPUSH key value [value ...]

    • 用途:将一个或多个值插入到列表头部。
    • 例子:LPUSH mylist "a" "b" "c",在列表 "mylist" 的头部插入值 "a"、"b" 和 "c"。
  2. RPUSH key value [value ...]

    • 用途:将一个或多个值插入到列表尾部。
    • 例子:RPUSH mylist "d" "e" "f",在列表 "mylist" 的尾部插入值 "d"、"e" 和 "f"。
  3. LRANGE key start stop

    • 用途:获取列表指定范围的元素。
    • 例子:LRANGE mylist 0 -1,获取列表 "mylist" 中所有的元素。
  4. LREM key count value

    • 用途:从列表中删除指定的值。
    • 例子:LREM mylist 2 "b",从列表 "mylist" 中删除前两个值为 "b" 的元素。
  5. LPOP key

    • 用途:移除并获取列表的第一个元素。
    • 例子:LPOP mylist,移除并返回列表 "mylist" 的第一个元素。
  6. RPOP key

    • 用途:移除并获取列表的最后一个元素。
    • 例子:RPOP mylist,移除并返回列表 "mylist" 的最后一个元素。

三、集合相关命令

  1. SADD key member [member ...]

    • 用途:向集合添加一个或多个成员。
    • 例子:SADD myset "apple" "banana" "orange",向集合 "myset" 添加成员 "apple"、"banana" 和 "orange"。
  2. SMEMBERS key

    • 用途:获取集合的所有成员。
    • 例子:SMEMBERS myset,获取集合 "myset" 的所有成员。
  3. SISMEMBER key member

    • 用途:检查成员是否是集合的成员。
    • 例子:SISMEMBER myset "apple",检查 "apple" 是否是集合 "myset" 的成员。
  4. SREM key member [member ...]

    • 用途:从集合中移除一个或多个成员。
    • 例子:SREM myset "banana",从集合 "myset" 中移除成员 "banana"。

四、哈希表相关命令

  1. HSET key field value

    • 用途:为一个哈希表设置字段的值。如果字段已存在,则更新其值;如果字段不存在,则新增该字段。
    • 例子:HSET user:1000 name "Tom",在哈希表 "user:1000" 中设置字段 "name" 的值为 "Tom"。
  2. HGET key field

    • 用途:获取哈希表中指定字段的值。
    • 例子:HGET user:1000 name,获取哈希表 "user:1000" 中字段 "name" 的值。
  3. HGETALL key

    • 用途:获取哈希表中所有的字段和值。
    • 例子:HGETALL user:1000,获取哈希表 "user:1000" 中所有的字段和值。
  4. HDEL key field [field ...]

    • 用途:删除哈希表中的一个或多个字段。
    • 例子:HDEL user:1000 name,删除哈希表 "user:1000" 中的字段 "name"。
  5. HLEN key

    • 用途:获取哈希表中字段的数量。
    • 例子:HLEN user:1000,获取哈希表 "user:1000" 中字段的数量。
  6. HEXISTS key field

    • 用途:检查哈希表中字段是否存在。
    • 例子:HEXISTS user:1000 name,检查哈希表 "user:1000" 中是否存在字段 "name"。

五、有序集合相关命令

  1. ZADD key score member [score member ...]

    • 用途:向有序集合添加一个或多个成员,或者更新已存在成员的分数。
    • 例子:ZADD mysortedset 1 "one" 2 "two" 3 "three",向有序集合 "mysortedset" 添加成员 "one"、"two" 和 "three",并分别设置它们的分数为 1、2 和 3。
  2. ZRANGE key start stop [WITHSCORES]

    • 用途:获取有序集合中指定范围的成员。加上 WITHSCORES 可以同时获取成员的分数。
    • 例子:ZRANGE mysortedset 0 -1 WITHSCORES,获取有序集合 "mysortedset" 中所有的成员及其分数。
  3. ZREM key member [member ...]

    • 用途:从有序集合中移除一个或多个成员。
    • 例子:ZREM mysortedset "two",从有序集合 "mysortedset" 中移除成员 "two"。
  4. ZRANK key member

    • 用途:获取成员在有序集合中的排名(按分数从小到大)。
    • 例子:ZRANK mysortedset "one",获取成员 "one" 在有序集合 "mysortedset" 中的排名。
  5. ZSCORE key member

    • 用途:获取成员在有序集合中的分数。
    • 例子:ZSCORE mysortedset "one",获取成员 "one" 在有序集合 "mysortedset" 中的分数。

六、发布/订阅模型相关命令

  1. SUBSCRIBE channel [channel ...]

    • 用途:订阅一个或多个频道。
    • 例子:SUBSCRIBE news,订阅名为 "news" 的频道。
  2. PUBLISH channel message

    • 用途:向指定的频道发布消息。
    • 例子:PUBLISH news "Latest news update",向 "news" 频道发布消息 "Latest news update"。
  3. UNSUBSCRIBE [channel ...]

    • 用途:取消订阅一个或多个频道,或者取消所有频道的订阅。
    • 例子:UNSUBSCRIBE news,取消订阅名为 "news" 的频道。

最后

以上仅是 Redis 的一些常用命令,实际上 Redis 还提供了许多其他命令和功能,如事务、Lua 脚本、管道等,这些在实际应用中也是非常重要的。有需要的话大家可以结合 Redis 的官方文档进行深入学习和实践。