1. String(字符串)
Redis 的 String 类型用来存储简单的字符串、数字、二进制数据等,每个 key 对应一个 value,最大可存储 512MB。
命令 | 作用 |
---|---|
SET key value |
设置 key 的值为 value |
GET key |
获取 key 的值 |
MSET key1 value1 key2 value2 ... |
批量设置多个键值对 |
MGET key1 key2 ... |
批量获取多个 key 的值 |
APPEND key value |
追加字符串 value 到 key 原值末尾 |
STRLEN key |
获取 key 存储字符串的长度 |
INCR key |
将 key 对应的数字值加 1(适用于整型字符串) |
DECR key |
将 key 对应的数字值减 1 |
INCRBY key increment |
将 key 的值增加指定的 increment |
INCRBYFLOAT key increment |
将 key 的值增加指定的浮点数 increment |
示例
sh
SET user:1001 "Alice"
GET user:1001 # 返回 "Alice"
MSET key1 "hello" key2 "world"
MGET key1 key2 # 返回 ["hello", "world"]
APPEND user:1001 " Smith"
GET user:1001 # 返回 "Alice Smith"
STRLEN user:1001 # 获取字符串长度,如返回 11
SET counter 10
INCR counter # counter 变为 11
DECR counter # counter 变为 10
INCRBY counter 5 # counter 变为 15
INCRBYFLOAT counter 2.5 # counter 变为 17.5
2. Hash(哈希)
Redis 的 Hash 类型是一种键值对集合,类似于一个小型的哈希表(字典),非常适合存储对象数据,如用户信息(id、name、age 等)。
命令 | 作用 |
---|---|
HSET key field value |
设置哈希表 key 中字段 field 的值,如果存在则覆盖 |
HGET key field |
获取哈希表 key 中字段 field 的值 |
HMSET key field1 value1 field2 value2 ... |
批量设置多个字段(已废弃,推荐多次调用 HSET) |
HMGET key field1 field2 ... |
批量获取多个字段的值 |
HDEL key field1 field2 ... |
删除哈希表 key 中的一个或多个字段 |
HEXISTS key field |
检查 key 中是否存在 field 字段,存在返回 1,否则返回 0 |
HKEYS key |
获取哈希表 key 中的所有字段名(keys) |
HVALS key |
获取哈希表 key 中的所有值(values) |
HGETALL key |
获取哈希表 key 中的所有字段及其值 |
HLEN key |
获取哈希表 key 中的字段数量 |
HINCRBY key field increment |
将 key 的 field 值增加 increment(可为负数) |
HINCRBYFLOAT key field increment |
对 key 的 field 进行浮点数递增 |
示例
sh
# 设置和获取哈希字段
HSET user:1001 name "Alice" age 25
HGET user:1001 name # 返回 "Alice"
# 计数增量
HINCRBY user:1001 age 1 # 将 age 加 1,变为 26
# 获取整个哈希表
HGETALL user:1001 # 返回所有字段及值,如 {name: "Alice", age: 26}
# 删除字段
HDEL user:1001 age # 删除 age 字段
# 判断字段是否存在
HEXISTS user:1001 name # 存在返回 1
3. Set(集合)
Redis 的 Set 类型用于存储无序且不重复的元素集合,常用于去重或关系交集、并集等操作。
命令 | 作用 |
---|---|
SADD key value |
向集合 key 中添加一个或多个元素 |
SREM key value |
从集合 key 中移除指定元素 |
SMEMBERS key |
获取集合 key 中的所有成员 |
SISMEMBER key value |
判断 value 是否是集合 key 的成员,存在返回 1 |
SCARD key |
获取集合 key 中的成员数量 |
示例
sh
SADD myset "apple" "banana" "cherry"
SISMEMBER myset "apple" # 返回 1
SMEMBERS myset # 返回 ["apple", "banana", "cherry"]
SREM myset "banana"
SCARD myset # 返回集合成员数量,如 2
4. ZSet(有序集合)
Redis 的 ZSet 类型存储有序的集合,每个元素关联一个分数,常用于排行榜、权重排序等场景。
命令 | 作用 |
---|---|
ZADD key score value |
添加元素 value 并赋予分数 score |
ZREM key value |
从有序集合中移除指定元素 |
ZRANGE key start stop [WITHSCORES] |
获取指定排名区间内的元素,可选返回分数 |
ZRANK key value |
获取 value 在有序集合中的排名(从 0 开始) |
ZINCRBY key increment value |
将元素 value 的分数增加 increment |
示例
sh
ZADD leaderboard 100 "Alice"
ZADD leaderboard 200 "Bob"
ZRANK leaderboard "Alice" # 返回 0(表示第一名)
ZRANGE leaderboard 0 -1 WITHSCORES # 返回所有成员及分数,如 [("Alice", 100), ("Bob", 200)]
ZINCRBY leaderboard 50 "Alice" # Alice 的分数变为 150
ZREM leaderboard "Bob" # 移除 Bob
5. List(列表)
Redis 的 List 类型是按插入顺序排序的字符串列表,常用于实现消息队列、任务队列等。
命令 | 作用 |
---|---|
LPUSH key value |
从列表左侧(头部)插入元素 |
RPUSH key value |
从列表右侧(尾部)插入元素 |
LPOP key |
从列表左侧弹出(并返回)一个元素 |
RPOP key |
从列表右侧弹出(并返回)一个元素 |
LRANGE key start stop |
获取列表中指定区间的元素 |
LLEN key |
获取列表的长度 |
示例
sh
LPUSH mylist "apple" "banana" # 列表顺序为 ["banana", "apple"]
RPUSH mylist "cherry" # 列表顺序为 ["banana", "apple", "cherry"]
LRANGE mylist 0 -1 # 返回整个列表 ["banana", "apple", "cherry"]
LPOP mylist # 移除并返回 "banana"
LLEN mylist # 返回列表长度,如 2
6. Key 相关命令
管理 key 的存在、过期、重命名等操作,可以有效控制数据生命周期。
命令 | 作用 |
---|---|
EXISTS key |
检查 key 是否存在,存在返回 1,否则返回 0 |
DEL key |
删除指定 key |
EXPIRE key seconds |
设置 key 的过期时间(单位:秒) |
TTL key |
获取 key 剩余生存时间(单位:秒) |
KEYS pattern |
获取匹配 pattern 的所有 key(慎用,生产环境不推荐) |
RENAME key newkey |
将 key 重命名为 newkey |
示例
sh
SET session "abc123"
EXISTS session # 返回 1 表示 session 存在
EXPIRE session 60 # 设置 session 60 秒后过期
TTL session # 返回 session 剩余生存时间
DEL session # 删除 session
7. 客户端连接相关命令
用于管理客户端连接、认证、选择数据库以及断开连接。
命令 | 作用 |
---|---|
AUTH password |
认证连接所需的密码 |
SELECT db |
选择数据库(0 ~ 15 默认数据库) |
CLIENT LIST |
列出当前所有客户端连接 |
CLIENT KILL ip:port |
断开指定客户端连接 |
QUIT |
关闭当前客户端连接 |
示例
sh
AUTH mypassword # 使用密码认证
SELECT 1 # 选择数据库 1
CLIENT LIST # 列出所有客户端连接
CLIENT KILL 127.0.0.1:6379 # 断开指定客户端连接
QUIT # 关闭连接
8. Redis 状态及监控命令
用于查看 Redis 服务器状态、信息、以及执行监控操作。
命令 | 作用 |
---|---|
INFO |
获取 Redis 服务器的详细信息(包括内存、连接、统计等) |
PING |
测试服务器连接是否正常,返回 PONG |
DBSIZE |
获取当前数据库中 key 的数量 |
FLUSHDB |
清空当前数据库中的所有 key |
FLUSHALL |
清空所有数据库中的所有 key |
MONITOR |
实时监控 Redis 接收到的所有命令 |
示例
sh
PING # 返回 PONG
INFO # 返回服务器详细信息
DBSIZE # 返回当前数据库 key 数量,如 10
FLUSHDB # 清空当前数据库
# 注意:FLUSHALL 会清空所有数据库,请谨慎使用
|