redis中的数据结构与对应的设置命令
在Redis中,每种数据类型都有其特定的命令来设置(声明)和获取键值对。以下是每种基本数据类型的声明方法,以及对应的键(key)和值(value):
-
字符串(String):
- 命令:
SET key value
- 示例:
SET username "Kimi"
- 键:
username
- 值:
"Kimi"
- 命令:
-
列表(List):
- 命令:
LPUSH key value1 [value2] ...
- 示例:
LPUSH users "User1" "User2"
- 键:
users
- 值:列表中的
"User1"
和"User2"
(值可以有多个)
- 命令:
-
集合(Set):
- 命令:
SADD key member1 [member2] ...
- 示例:
SADD user_ids 1 2 3
- 键:
user_ids
- 值:集合中的
1
,2
,3
(集合中的值是唯一的)
- 命令:
-
哈希(Hash):
- 命令:
HSET key field1 value1 [field2 value2] ...
- 示例:
HSET user:1000 name "Kimi" email "kimi@example.com"
- 键:
user:1000
- 值:哈希中的字段和值对,如
name
对应"Kimi"
,email
对应"kimi@example.com"
- 命令:
-
有序集合(Sorted Set):
- 命令:
ZADD key score1 member1 [score2 member2] ...
- 示例:
ZADD user_scores 90 "Alice" 85 "Bob" 92 "Charlie"
- 键:
user_scores
- 值:有序集合中的元素和分数对,如
"Alice"
对应分数90
,"Bob"
对应分数85
- 命令:
-
位图(Bitmap):
- 位图是字符串类型的特殊用途,命令与字符串相同,但使用方式不同。
- 命令:
SETBIT key offset value
- 示例:
SETBIT user:flags 1 1
- 键:
user:flags
- 值:特定位的值(
0
或1
),其中1
是位的偏移量。
-
超日志(HyperLogLog):
- 超日志也是字符串类型的特殊用途,用于基数统计。
- 命令:
PFADD key element1 [element2] ...
- 示例:
PFADD unique_users "Alice" "Bob" "Charlie"
- 键:
unique_users
- 值:集合中的元素,如
"Alice"
,"Bob"
,"Charlie"
-
地理空间(Geospatial):
- 地理空间数据类型基于有序集合,用于存储地理位置信息。
- 命令:
GEOADD key longitude latitude member [longitude latitude member] ...
- 示例:
GEOADD user:locations 116.3883 39.9289 "Beijing" 121.4737 31.2304 "Shanghai"
- 键:
user:locations
- 值:地理位置信息,包括经纬度和对应的成员名称
以下是Redis五种基本数据类型以及位图、超日志和地理空间数据类型的命令示例,以及对应的键(key)和值(value)的表格:
数据类型 | 命令 | 示例命令 | 键 (Key) | 值 (Value)示例 |
---|---|---|---|---|
字符串 (String) | SET | SET username “Kimi” | username | “Kimi” |
列表 (List) | LPUSH | LPUSH users “User1” “User2” | users | “User1”, “User2” |
集合 (Set) | SADD | SADD user_ids 1 2 3 | user_ids | 1, 2, 3 |
哈希 (Hash) | HSET | HSET user:1000 name “Kimi” email “kimi@example.com” | user:1000 | name: “Kimi”, email: “kimi@example.com” |
有序集合 (Sorted Set) | ZADD | ZADD user_scores 90 “Alice” 85 “Bob” 92 “Charlie” | user_scores | “Alice”: 90, “Bob”: 85, “Charlie”: 92 |
位图 (Bitmap) | SETBIT | SETBIT user:flags 1 1 | user:flags | 1 (位值,0或1) |
超日志 (HyperLogLog) | PFADD | PFADD unique_users “Alice” “Bob” “Charlie” | unique_users | “Alice”, “Bob”, “Charlie” |
地理空间 (Geospatial) | GEOADD | GEOADD user:locations 116.3883 39.9289 “Beijing” 121.4737 31.2304 “Shanghai” | user:locations | 116.3883,39.9289: “Beijing”, 121.4737,31.2304: “Shanghai” |