redis cli 命令介绍 – wiki词典

Redis CLI 命令介绍

Redis (Remote Dictionary Server) 是一个开源的内存数据结构存储,它可以用作数据库、缓存和消息代理。Redis CLI (Command Line Interface) 是与 Redis 服务器交互的强大工具,允许用户执行各种命令来管理数据和配置服务器。

本文将详细介绍 Redis CLI 的常用命令,帮助您更好地理解和使用 Redis。

连接到 Redis 服务器

要启动 Redis CLI,只需在终端中输入 redis-cli。如果您的 Redis 服务器运行在默认端口 (6379) 和本地主机上,它将自动连接。

bash
redis-cli

如果 Redis 服务器运行在不同的主机或端口上,您可以使用 -h-p 选项指定:

bash
redis-cli -h your_host_ip -p 6380

如果您的 Redis 服务器需要密码验证,可以使用 -a 选项:

bash
redis-cli -a your_password

连接成功后,您将看到 host:port> 提示符,表示您可以开始输入 Redis 命令了。

常用数据类型命令

Redis 支持多种数据结构。以下是一些最常用的数据类型及其相关命令:

1. 字符串 (Strings)

字符串是 Redis 最基本的数据类型,可以存储文本、数字或二进制数据。

  • SET key value: 设置指定 key 的值为 value。
    redis
    SET mykey "Hello Redis"
  • GET key: 获取指定 key 的值。
    redis
    GET mykey
    # "Hello Redis"
  • DEL key [key ...]: 删除一个或多个 key。
    redis
    DEL mykey
  • INCR key: 将 key 中储存的数字值增一。如果 key 不存在,则 key 的值会被初始化为 0,然后再执行 INCR 操作。
    redis
    SET counter 10
    INCR counter
    # (integer) 11
  • DECR key: 将 key 中储存的数字值减一。
  • INCRBY key increment: 将 key 所储存的值加上增量 increment。
  • DECRBY key decrement: 将 key 所储存的值减去减量 decrement。
  • APPEND key value: 如果 key 已经存在并且是一个字符串, APPEND 命令将 value 追加到 key 原来的值的末尾。
  • STRLEN key: 返回 key 所储存的字符串值的长度。

2. 哈希 (Hashes)

哈希用于存储字段-值对的集合,非常适合表示对象。

  • HSET key field value [field value ...]: 设置哈希表中指定 key 的指定字段的值。
    redis
    HSET user:1 name "Alice" age 30 city "New York"
  • HGET key field: 获取哈希表中指定 key 的指定字段的值。
    redis
    HGET user:1 name
    # "Alice"
  • HGETALL key: 获取哈希表中指定 key 的所有字段和值。
    redis
    HGETALL user:1
    # 1) "name"
    # 2) "Alice"
    # 3) "age"
    # 4) "30"
    # 5) "city"
    # 6) "New York"
  • HDEL key field [field ...]: 删除哈希表中指定 key 的一个或多个字段。
  • HLEN key: 获取哈希表中字段的数量。
  • HKEYS key: 获取哈希表中所有字段。
  • HVALS key: 获取哈希表中所有值。

3. 列表 (Lists)

列表是一个有序的字符串元素集合,可以从头部或尾部添加/移除元素。

  • LPUSH key value [value ...]: 将一个或多个值插入到列表的头部。
    redis
    LPUSH mylist "item1" "item2"
  • RPUSH key value [value ...]: 将一个或多个值插入到列表的尾部。
    redis
    RPUSH mylist "item3"
  • LPOP key: 移出并获取列表的第一个元素。
    redis
    LPOP mylist
    # "item2"
  • RPOP key: 移出并获取列表的最后一个元素。
  • LRANGE key start stop: 获取列表中指定范围内的元素。
    redis
    LRANGE mylist 0 -1 # 获取所有元素
    # 1) "item1"
    # 2) "item3"
  • LLEN key: 获取列表的长度。

4. 集合 (Sets)

集合是无序的字符串元素集合,集合中的每个元素都是唯一的。

  • SADD key member [member ...]: 将一个或多个成员添加到集合中。
    redis
    SADD myset "apple" "banana" "orange"
  • SMEMBERS key: 获取集合中的所有成员。
    redis
    SMEMBERS myset
    # 1) "apple"
    # 2) "orange"
    # 3) "banana"
  • SREM key member [member ...]: 移除集合中的一个或多个成员。
  • SCARD key: 获取集合的成员数。
  • SISMEMBER key member: 判断成员元素是否是集合的成员。

5. 有序集合 (Sorted Sets)

有序集合是集合的变体,每个成员都关联一个分数 (score),Redis 会根据分数对成员进行排序。

  • ZADD key score member [score member ...]: 将一个或多个成员及其分数添加到有序集合中。
    redis
    ZADD myzset 100 "member1" 90 "member2" 110 "member3"
  • ZRANGE key start stop [WITHSCORES]: 获取有序集合中指定范围内的成员。
    redis
    ZRANGE myzset 0 -1 WITHSCORES
    # 1) "member2"
    # 2) "90"
    # 3) "member1"
    # 4) "100"
    # 5) "member3"
    # 6) "110"
  • ZSCORE key member: 获取有序集合中指定成员的分数。
  • ZREM key member [member ...]: 移除有序集合中的一个或多个成员。
  • ZCARD key: 获取有序集合的成员数。

通用命令

这些命令适用于所有数据类型。

  • KEYS pattern: 查找所有符合给定模式的 key。注意:在生产环境中慎用此命令,因为它可能会阻塞服务器。
    redis
    KEYS *
    KEYS user:*
  • EXISTS key [key ...]: 检查一个或多个 key 是否存在。
  • TTL key: 返回 key 的剩余生存时间 (Time To Live),以秒为单位。
  • PTTL key: 返回 key 的剩余生存时间,以毫秒为单位。
  • EXPIRE key seconds: 为 key 设置过期时间,以秒为单位。
  • PERSIST key: 移除 key 的过期时间,使其变为持久化的 key。
  • TYPE key: 返回 key 所储存值的类型。
    redis
    TYPE mykey
    # string
  • RENAME oldkey newkey: 修改 key 的名称。
  • RENAMENX oldkey newkey: 仅当 newkey 不存在时,将 oldkey 改名为 newkey。

事务 (Transactions)

Redis 事务允许您在单个原子操作中执行一组命令。

  • MULTI: 标记一个事务块的开始。
  • EXEC: 执行所有在事务块中排队的命令。
  • DISCARD: 取消事务,放弃执行事务块内的所有命令。

redis
MULTI
SET mykey "value1"
INCR counter
EXEC

发布/订阅 (Publish/Subscribe)

Redis 提供了发布/订阅消息范式。

  • PUBLISH channel message: 将信息发送到指定的频道。
  • SUBSCRIBE channel [channel ...]: 订阅一个或多个频道。

服务器管理命令

  • INFO [section]: 获取 Redis 服务器的各种信息和统计数据。
    redis
    INFO # 获取所有信息
    INFO Memory # 获取内存相关信息
  • PING: 测试连接是否仍然正常。
    redis
    PING
    # PONG
  • SELECT index: 切换到指定的数据库。Redis 默认有 16 个数据库,编号从 0 到 15。
    redis
    SELECT 1
  • FLUSHDB: 删除当前数据库的所有 key。
  • FLUSHALL: 删除所有数据库的所有 key。慎用!
  • SAVE: 同步保存数据到磁盘。
  • BGSAVE: 异步保存数据到磁盘。
  • SHUTDOWN: 关闭 Redis 服务器。

总结

Redis CLI 是一个功能强大的工具,熟练掌握这些命令将使您能够高效地管理和操作 Redis 数据。本文仅涵盖了 Redis CLI 的一部分常用命令,Redis 还有许多其他高级功能和命令等待您探索。建议查阅 Redis 官方文档以获取更全面的信息和最新功能。

滚动至顶部