跳转至

第二章:数据类型

String 字符串

基本操作

SET name "张三"
GET name
MSET k1 "v1" k2 "v2"    # 批量设置
MGET k1 k2               # 批量获取

数值操作

SET counter 0
INCR counter             # 自增1
INCRBY counter 10        # 自增10
DECR counter             # 自减1
DECRBY counter 5         # 自减5

过期时间

SETEX session 3600 "data"  # 设置并指定过期时间
SET key value EX 60        # 设置60秒过期

Hash 哈希

基本操作

HSET user:1 name "张三" age 25
HGET user:1 name
HMGET user:1 name age
HGETALL user:1
HDEL user:1 age

数值操作

HINCRBY user:1 age 1

应用场景

# 存储用户信息
r.hset('user:1', mapping={
    'name': '张三',
    'email': 'zhangsan@example.com',
    'age': 25
})

List 列表

基本操作

LPUSH list "a" "b"       # 左侧插入
RPUSH list "c" "d"       # 右侧插入
LPOP list                # 左侧弹出
RPOP list                # 右侧弹出
LRANGE list 0 -1         # 获取所有元素
LLEN list                # 列表长度

阻塞操作

BLPOP list 5             # 阻塞弹出(5秒超时)
BRPOP list 5

应用场景

# 消息队列
r.rpush('queue', 'task1')
task = r.lpop('queue')

# 最新列表
r.lpush('latest', 'item1')
r.ltrim('latest', 0, 99)  # 只保留最新100条

Set 集合

基本操作

SADD set "a" "b" "c"
SREM set "a"
SMEMBERS set             # 获取所有成员
SISMEMBER set "b"        # 判断是否存在
SCARD set                # 集合大小

集合运算

SADD set1 "a" "b" "c"
SADD set2 "b" "c" "d"

SINTER set1 set2         # 交集
SUNION set1 set2         # 并集
SDIFF set1 set2          # 差集

应用场景

# 标签系统
r.sadd('user:1:tags', 'python', 'redis', 'mysql')
r.sadd('user:2:tags', 'python', 'vue')

# 共同标签
common = r.sinter('user:1:tags', 'user:2:tags')

ZSet 有序集合

基本操作

ZADD rank 100 "张三" 90 "李四" 80 "王五"
ZSCORE rank "张三"       # 获取分数
ZRANK rank "张三"        # 获取排名(升序)
ZREVRANK rank "张三"     # 获取排名(降序)
ZRANGE rank 0 -1         # 获取范围(升序)
ZREVRANGE rank 0 9       # 获取前10名(降序)
ZREM rank "张三"

范围操作

ZRANGEBYSCORE rank 80 100          # 分数范围
ZINCRBY rank 10 "张三"              # 增加分数
ZCOUNT rank 80 100                  # 统计数量

应用场景

# 排行榜
r.zadd('leaderboard', {'user1': 100, 'user2': 200, 'user3': 150})
top10 = r.zrevrange('leaderboard', 0, 9, withscores=True)

小结

本章学习了:

  • ✅ String 字符串
  • ✅ Hash 哈希
  • ✅ List 列表
  • ✅ Set 集合
  • ✅ ZSet 有序集合

下一章

第三章:缓存策略 - 学习缓存策略。