Redis中常见的数据类型查看命令

在Redis中,不同类型的键值对需要使用不同的命令来查看其内容。以下是针对Redis中常见的数据类型(如字符串、哈希、列表、集合、有序集合等)的查看命令总结:

1. 字符串类型 (String)

字符串是最基本的数据类型,可以存储字符串、数字等。

查看值:

GET key_name

示例:

GET mystring

检查是否存在:

EXISTS key_name

获取类型:

TYPE key_name

2. 哈希类型 (Hash)

哈希是一个键值对的集合,适合存储对象。

查看所有字段和值:HGETALL key_name

示例:HGETALL user:1000

查看单个字段的值:HGET key_name field_name

示例:HGET user:1000 name

查看所有字段:HKEYS key_name

查看所有值:HVALS key_name

3. 列表类型 (List)

列表是一个有序的字符串集合。

查看整个列表:LRANGE key_name start stop

示例(查看前 10 个元素):LRANGE mylist 0 9

查看列表长度:LLEN key_name

查看单个元素:LINDEX key_name index

示例(查看第一个元素):LINDEX mylist 0

4. 集合类型 (Set)

集合是一个无序且唯一的字符串集合。

查看所有成员:SMEMBERS key_name

示例:SMEMBERS myset

查看集合大小:SCARD key_name

检查某个成员是否存在:SISMEMBER key_name member

5. 有序集合类型 (Sorted Set)

有序集合是带有分数的集合,成员按分数排序。

查看所有成员及其分数:ZRANGE key_name start stop [WITHSCORES]

示例(带分数查看前 10 个成员):ZRANGE myzset 0 9 WITHSCORES

按分数范围查看成员:ZRANGEBYSCORE key_name min max [WITHSCORES]

示例(查看分数在 0 到 100 的成员):ZRANGEBYSCORE myzset 0 100 WITHSCORES

查看集合大小:ZCARD key_name

查看某个成员的分数:ZSCORE key_name member

6. 通用命令

无论数据类型是什么,以下命令都适用:

查看键的类型:TYPE key_name

检查键是否存在:EXISTS key_name

删除键:DEL key_name

查看所有键:KEYS pattern

示例(查看所有以 user: 开头的键):KEYS user:*

扫描键(推荐用于大数据量场景):SCAN cursor [MATCH pattern] [COUNT count]

总结

根据键的数据类型,选择合适的命令来查看其内容。如果不确定键的类型,可以先用 TYPE 命令确认类型,再选择对应的命令操作。例如:

TYPE mykey

如果返回 string,则使用 GET;如果是 hash,则使用 HGETALL 等。

附录1:Redis中常见的数据类型查看命令

Redis 提供了多种数据类型的查看命令,以下按数据类型分类整理常见命令,并附简要说明:

1. 通用命令

TYPE key:查看键的数据类型(如 string、hash、list 等)。

EXISTS key:检查键是否存在。

TTL key:查看键的剩余过期时间(秒),-1 表示永久,-2 表示已删除。

PTTL key:同上,但以毫秒为单位。

KEYS pattern:查找匹配模式的键(生产环境慎用,可能导致阻塞,建议用 SCAN 代替)。

2. 字符串(String)

GET key:获取键对应的字符串值。

STRLEN key:返回字符串长度。

GETRANGE key start end:截取字符串的子串(类似子字符串操作)。

3. 哈希(Hash)

HGET key field:获取哈希中指定字段的值。

HGETALL key:返回哈希中所有字段和值(格式为交替的字段名和值)。

HKEYS key:获取哈希的所有字段名。

HVALS key:获取哈希的所有字段值。

HLEN key:返回哈希的字段数量。

HEXISTS key field:检查字段是否存在。

4. 列表(List)

LRANGE key start stop:获取列表指定索引范围内的元素(0 表示第一个元素,-1 表示最后一个)。

LINDEX key index:获取列表指定位置的元素。

LLEN key:返回列表长度。

LTRIM key start stop:修剪列表,仅保留指定范围内的元素。

5. 集合(Set)

SMEMBERS key:返回集合中所有成员。

SISMEMBER key member:检查成员是否存在于集合中。

SCARD key:返回集合的成员数量。

SRANDMEMBER key [count]:随机返回一个或多个成员(count 为正数时不重复,负数可能重复)。

6. 有序集合(Sorted Set)

ZRANGE key start stop [WITHSCORES]:按分数升序返回排名范围内的成员(加 WITHSCORES 显示分数)。

ZREVRANGE key start stop [WITHSCORES]:按分数降序返回。

ZRANGEBYSCORE key min max:返回分数在 min 和 max 之间的成员。

ZSCORE key member:获取成员的分数。

ZRANK key member:获取成员的升序排名(从 0 开始)。

ZREVRANK key member:获取成员的降序排名。

ZCARD key:返回有序集合的成员数量。

注意事项

避免使用 KEYS *:可能导致 Redis 阻塞,推荐用 SCAN 迭代遍历。

时间复杂度:部分命令如 HGETALL、SMEMBERS 的时间复杂度为 O(n),数据量大时需谨慎使用。