redis基本使用


1. 字符串(String)

存储文本、数字或二进制数据,最大支持 512MB。

常用命令

命令 说明 示例
SET key value 设置键值 SET name "Alice"
GET key 获取值 GET name"Alice"
DEL key 删除键 DEL name
INCR key 值自增1(整数) INCR counter
DECR key 值自减1 DECR counter
INCRBY key n 值增加n INCRBY counter 5
APPEND key str 追加字符串 APPEND name " Smith""Alice Smith"
STRLEN key 获取字符串长度 STRLEN name11
SETEX key seconds value 设置值并指定过期时间 SETEX token 3600 "abc123"
MSET key1 val1 key2 val2 批量设置键值 MSET k1 "v1" k2 "v2"
MGET key1 key2 批量获取值 MGET k1 k2["v1", "v2"]

2. 哈希(Hash)

存储字段-值对(类似 JSON 对象),适合存储对象。

常用命令

命令 说明 示例
HSET key field value 设置字段值 HSET user:1 name "Alice"
HGET key field 获取字段值 HGET user:1 name"Alice"
HDEL key field 删除字段 HDEL user:1 name
HGETALL key 获取所有字段和值 HGETALL user:1{"name":"Alice", "age":"30"}
HKEYS key 获取所有字段名 HKEYS user:1["name", "age"]
HVALS key 获取所有字段值 HVALS user:1["Alice", "30"]
HINCRBY key field n 字段值增加n HINCRBY user:1 age 1
HEXISTS key field 检查字段是否存在 HEXISTS user:1 name1(存在)

3. 列表(List)

双向链表,支持队列(FIFO)和栈(LIFO)操作。

常用命令

命令 说明 示例
LPUSH key value 左侧插入元素 LPUSH tasks "task1"
RPUSH key value 右侧插入元素 RPUSH tasks "task2"
LPOP key 左侧弹出元素 LPOP tasks"task1"
RPOP key 右侧弹出元素 RPOP tasks"task2"
LRANGE key start end 获取范围内元素 LRANGE tasks 0 -1(获取全部)
LLEN key 获取列表长度 LLEN tasks2
LINDEX key index 获取指定位置元素 LINDEX tasks 0"task1"
LREM key count value 删除指定值的元素 LREM tasks 1 "task1"

4. 集合(Set)

无序且唯一的元素集合,适合去重和集合运算。

常用命令

命令 说明 示例
SADD key member 添加元素 SADD tags "redis" "db"
SMEMBERS key 获取所有成员 SMEMBERS tags["redis", "db"]
SREM key member 删除元素 SREM tags "db"
SISMEMBER key member 检查是否存在于集合 SISMEMBER tags "redis"1(存在)
SCARD key 获取集合大小 SCARD tags1
SINTER key1 key2 返回多个集合的交集 SINTER tags1 tags2
SUNION key1 key2 返回并集 SUNION tags1 tags2
SDIFF key1 key2 返回差集(key1有但key2没有) SDIFF tags1 tags2

5. 有序集合(Sorted Set / ZSet)

带权重的集合,按分数(score)排序,适合排行榜。

常用命令

命令 说明 示例
ZADD key score member 添加成员(带分数) ZADD leaderboard 100 "Alice"
ZRANGE key start end 按分数升序返回成员 ZRANGE leaderboard 0 -1
ZREVRANGE key start end 按分数降序返回成员 ZREVRANGE leaderboard 0 -1
ZSCORE key member 获取成员的分数 ZSCORE leaderboard "Alice"100
ZRANK key member 获取升序排名(从0开始) ZRANK leaderboard "Alice"
ZREVRANK key member 获取降序排名 ZREVRANK leaderboard "Alice"
ZINCRBY key increment member 增加成员分数 ZINCRBY leaderboard 50 "Alice"

6. 位图(Bitmap)

通过二进制位操作存储布尔值(如用户签到记录)。

常用命令

命令 说明 示例
SETBIT key offset value 设置位的值(0/1) SETBIT signin:user1 0 1(第0天签到)
GETBIT key offset 获取位的值 GETBIT signin:user1 01
BITCOUNT key 统计值为1的位数 BITCOUNT signin:user11
BITOP operation destkey key1 key2 位运算(AND/OR/XOR/NOT) BITOP AND result signin:user1 signin:user2

7. HyperLogLog(基数统计)

用于高效统计不重复元素数量(如 UV 统计)。

常用命令

命令 说明 示例
PFADD key element 添加元素 PFADD visitors "user1" "user2"
PFCOUNT key 统计基数 PFCOUNT visitors2
PFMERGE destkey sourcekey1 sourcekey2 合并多个 HyperLogLog PFMERGE total visitors1 visitors2

总结

数据结构 特点 典型场景
String 简单键值 缓存、计数器
Hash 字段-值映射 存储对象(用户信息)
List 有序可重复 消息队列、最新动态
Set 无序唯一 标签、好友关系
Sorted Set 有序唯一 排行榜、优先级队列
Bitmap 位操作 签到、布尔统计
HyperLogLog 基数估算 UV 统计

掌握这些命令后,可以灵活应对大部分 Redis 使用场景!官方文档(redis.io/commands)是更全面的参考。

posted @ 2025-04-25 16:07  蜗牛般庄  阅读(14)  评论(0)    收藏  举报
Title
页脚 HTML 代码