Redis 数据类型与操作命令总结
通用命令(适用于所有类型)
命令 | 说明 |
---|---|
DEL key |
删除指定键 |
EXISTS key |
检查键是否存在(返回 1/0) |
TYPE key |
返回键对应值的数据类型 |
RENAME key new_key |
重命名键 |
EXPIRE key seconds |
为键设置过期时间(秒) |
TTL key |
获取键的剩余过期时间(-1 永不过期,-2 已过期) |
KEYS pattern |
查找符合模式的键(如 KEYS user* ) |
一、字符串(String)
字符串是 Redis 最基础的数据类型,可存储文本、数字等,最大长度 512MB。
操作 | 命令示例 | 说明 |
---|---|---|
增加 | SET key value [EX seconds] |
设置键值,可选过期时间(EX 秒,PX 毫秒) |
增加 | MSET key1 val1 key2 val2 ... |
批量设置键值 |
读取 | GET key |
获取键对应的值 |
读取 | MGET key1 key2 ... |
批量获取多个键的值 |
修改 | SET key new_value |
直接覆盖原 value 完成修改 |
修改 | INCR key |
对数值型 value 自增 1(若为字符串会尝试转换) |
修改 | DECR key |
对数值型 value 自减 1 |
删除 | DEL key |
删除指定键(通用命令,适用于所有类型) |
二、哈希(Hash)
哈希用于存储键值对集合(类似 JSON 对象),适合存储对象类数据(如用户信息)。
操作 | 命令示例 | 说明 |
---|---|---|
增加 | HSET hash_key field value |
为哈希表设置字段和值 |
增加 | HMSET hash_key f1 v1 f2 v2 ... |
批量设置哈希表的多个字段值 |
读取 | HGET hash_key field |
获取哈希表中指定字段的值 |
读取 | HMGET hash_key f1 f2 ... |
批量获取哈希表的多个字段值 |
读取 | HGETALL hash_key |
获取哈希表中所有字段和值 |
修改 | HSET hash_key field new_value |
覆盖原字段值完成修改 |
修改 | HINCRBY hash_key field num |
对字段的数值型 value 增减指定数值 |
删除 | HDEL hash_key field1 field2 ... |
删除哈希表中指定的字段 |
删除 | DEL hash_key |
删除整个哈希表 |
三、列表(List)
列表是有序的字符串集合(可重复),底层为双向链表,支持两端操作。
操作 | 命令示例 | 说明 |
---|---|---|
增加 | LPUSH list_key value1 value2 ... |
从列表左侧插入一个或多个值 |
增加 | RPUSH list_key value1 value2 ... |
从列表右侧插入一个或多个值 |
读取 | LRANGE list_key start end |
获取列表中指定范围的元素(0 为头,-1 为尾) |
读取 | LPOP list_key |
移除并返回列表左侧第一个元素 |
读取 | RPOP list_key |
移除并返回列表右侧第一个元素 |
读取 | LLEN list_key |
获取列表长度 |
修改 | LSET list_key index new_value |
修改列表中指定索引位置的元素(索引从 0 开始) |
删除 | LREM list_key count value |
从列表中删除 count 个值为 value 的元素(count>0 从左,<0 从右) |
删除 | DEL list_key |
删除整个列表 |
四、集合(Set)
集合是无序的字符串集合(不可重复),支持交集、并集等集合运算。
操作 | 命令示例 | 说明 |
---|---|---|
增加 | SADD set_key member1 member2 ... |
向集合中添加一个或多个元素 |
读取 | SMEMBERS set_key |
获取集合中所有元素(无序) |
读取 | SCARD set_key |
获取集合中元素的数量 |
读取 | SISMEMBER set_key member |
判断元素是否在集合中(返回 1/0) |
修改 | 无直接修改命令,需先删后加 | 如 SREM set_key old && SADD set_key new |
删除 | SREM set_key member1 member2 ... |
从集合中删除指定元素 |
删除 | SPOP set_key [count] |
随机删除并返回集合中的 count 个元素(默认 1 个) |
五、有序集合(Sorted Set)
有序集合是带分数(score)的字符串集合,按分数排序,元素不可重复。
操作 | 命令示例 | 说明 |
---|---|---|
增加 | ZADD zset_key score1 member1 ... |
向有序集合中添加元素和分数 |
读取 | ZRANGE zset_key start end [WITHSCORES] |
按分数升序获取指定范围的元素(带分数可选) |
读取 | ZREVRANGE zset_key start end [WITHSCORES] |
按分数降序获取指定范围的元素(带分数可选) |
读取 | ZRANGEBYSCORE zset_key min max [WITHSCORES] |
按分数范围获取元素(min/max 支持 -inf/+inf) |
修改 | ZADD zset_key new_score member |
通过更新分数修改元素顺序 |
删除 | ZREM zset_key member1 member2 ... |
从有序集合中删除指定元素 |
删除 | ZREMRANGEBYSCORE zset_key min max |
删除指定分数范围内的元素 |
常见应用场景
数据类型 | 典型场景 |
---|---|
字符串 | 缓存、计数器、分布式锁 |
哈希 | 用户信息、对象存储 |
列表 | 消息队列、最新动态列表 |
集合 | 标签系统、共同好友、去重统计 |
有序集合 | 排行榜、热门列表、时间线排序 |