字符串是最基本的 Redis 数据类型。它可以包含任何形式的数据,比如文本、数字或二进制数据。
基本用法:
示例:
# 设置一个键 "mykey" 对应字符串 "Hello" SET mykey "Hello" # 获取 "mykey" 的值 GET mykey # 输出: "Hello" # 将 "mykey" 自增(这将返回错误,因为值不是整数) INCR mykey # 追加字符串 " World" 到 "mykey" APPEND mykey " World" # 再次获取 "mykey" 的值 GET mykey # 输出: "Hello World"
列表是简单的字符串链表,按照插入顺序排序。
基本用法:
示例:
# 在 "mylist" 的左侧推入值 "world" LPUSH mylist "world" # 在 "mylist" 的左侧推入另一个值 "hello" LPUSH mylist "hello" # 获取 "mylist" 的所有元素 LRANGE mylist 0 -1 # 输出: 1) "hello" 2) "world" # 在 "mylist" 的右侧推入值 "!" RPUSH mylist "!" # 弹出 "mylist" 的右侧元素 RPOP mylist # 输出: "!"
集合是字符串的无序收集,并且每个元素都是唯一的。
基本用法:
示例:
# 向 "myset" 添加元素 "Hello" SADD myset "Hello" # 向 "myset" 添加元素 "World" SADD myset "World" # 获取 "myset" 的所有成员 SMEMBERS myset # 输出: 1) "Hello" 2) "World" # 检查 "myset" 是否包含 "Hello" SISMEMBER myset "Hello" # 输出: (integer) 1 # 移除 "myset" 中的 "World" SREM myset "World"
有序集合与集合类似,但是每个成员都会关联一个浮点数分数,Redis 正是通过分数来为集合中的成员进行从小到大的排序。
基本用法:
示例:
# 向 "mysortedset" 添加元素 "one" 与分数 1 ZADD mysortedset 1 "one" # 向 "mysortedset" 添加元素 "two" 与分数 2 ZADD mysortedset 2 "two" # 获取 "mysortedset" 所有元素(默认按分数升序) ZRANGE mysortedset 0 -1 WITHSCORES # 输出: 1) "one" 2) "1" 3) "two" 4) "2" # 获取元素 "one" 在 "mysortedset" 中的排名 ZRANK mysortedset "one" # 输出: (integer) 0 # 从 "mysortedset" 中删除元素 "one" ZREM mysortedset "one"
哈希是字符串字段和字符串值之间的映射表,是存储对象的理想方式。
基本用法:
示例:
# 向名为 "user:1000" 的哈希中添加字段 "name" 和 "age" HSET user:1000 name "Alice" HSET user:1000 age "30" # 获取 "user:1000" 中 "age" 字段的值 HGET user:1000 age # 输出: "30" # 获取 "user:1000" 的所有字段和值 HGETALL user:1000 # 输出: 1) "name" 2) "Alice" 3) "age" 4) "30" # 检查 "user:1000" 是否有 "name" 字段 HEXISTS user:1000 name # 输出: (integer) 1 # 删除 "user:1000" 中的 "age" 字段 HDEL user:1000 age
这些是 Redis 中最常用的五种数据类型。Redis 还支持其他一些复杂的数据结构,如位图(bitmaps)、地理空间索引(geospatial indexes)和流(streams),这些类型对于特定的应用场景非常有用。