在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),数据量大时需谨慎使用。