Redis 学习笔记

Redis 学习笔记

1. Redis 是什么

Redis 是一个基于内存的 NoSQL 数据库,特点是:

  • 读写快
  • 常用来做缓存
  • 也能做计数器、排行榜、登录状态存储等

2. 常见基础命令

查看/删除

  • DEL key:删除 key
  • DBSIZE:查看当前库 key 的数量
  • TTL key:查看 key 剩余过期时间
    • -1:存在,但没有过期时间
    • -2:key 不存在

清空/切库

  • SELECT 0:切换到 0 号库
  • FLUSHDB:清空当前库
  • FLUSHALL:清空所有库

FLUSHDBFLUSHALL 都是危险命令,线上慎用。


3. 什么叫“线上”

线上就是 生产环境,也就是项目真正给用户使用的环境。

比如:

  • 本地环境:自己电脑
  • 测试环境:测试人员使用
  • 线上环境:真实用户访问

所以像 KEYS * 这种会遍历大量 key 的命令,本地能随便试,线上不能乱用


4. String 类型常用命令

基础命令

  • SET key value:设置值
  • GET key:获取值
  • INCR key:数字加 1
  • DECR key:数字减 1

典型业务

  • SET / GET
    • 缓存短信验证码
    • 缓存 token / 登录状态
    • 缓存系统配置
  • INCR
    • 收藏数
    • 阅读量
    • 登录失败次数
  • DECR
    • 库存扣减
    • 剩余名额

INCR/DECR 只能操作“整数形式的字符串”。


5. 四种重要数据类型

List

特点:有序,可重复

常用命令:

  • LPUSH
  • RPUSH
  • LRANGE
  • LPOP
  • RPOP

适合场景:

  • 消息队列简单版
  • 待办列表
  • 聊天消息顺序存储

Set

特点:无序,不可重复

常用命令:

  • SADD
  • SMEMBERS
  • SISMEMBER
  • SREM

适合场景:

  • 点赞用户去重
  • 标签去重
  • 签到用户去重

Hash

特点:field-value 结构,像 Map

常用命令:

  • HSET
  • HGET
  • HGETALL
  • HDEL

适合场景:

  • 用户对象
  • 商品对象
  • 配置信息对象

ZSet

特点:元素唯一,带 score,可排序

常用命令:

  • ZADD
  • ZRANGE
  • ZREVRANGE
  • ZSCORE
  • ZREM

适合场景:

  • 排行榜
  • 积分榜
  • 热度榜

6. 怎么选数据类型

记一句话就行:

  • 顺序 → List
  • 去重 → Set
  • 对象 → Hash
  • 排行 → ZSet

7. RedisTemplate 和 StringRedisTemplate

默认 RedisTemplate

默认使用 JDK 序列化,存到 Redis 里常常不方便直接看懂。

StringRedisTemplate

默认 key、value、hashKey、hashValue 都用 字符串序列化,更适合直接存字符串数据。

所以项目里常见做法是:

  • key 用 String
  • value 用 JSON

这样好处是:

  • Redis 中数据更清晰
  • 方便排查问题
  • 更适合实际项目维护

8. InitializingBean / afterPropertiesSet()

afterPropertiesSet() 的作用:

  • Bean 属性注入完成后执行
  • 用来做最终初始化
  • 用来检查配置是否完整

在 Redis 配置里常见作用就是:
序列化器、连接工厂都设置好后,让模板真正进入可用状态。


9. 今日重点记忆

今天最重要的几句话:

  1. Redis 最常见用途是 缓存 + 计数 + 排行
  2. SET/GET 适合缓存
  3. INCR/DECR 适合计数和库存
  4. KEYS * 不适合线上乱用
  5. List、Set、Hash、ZSet 一定要会区分
  6. 项目里常见:key 用 String,value 用 JSON

10. 复习口诀

顺序用 List,去重用 Set,对象用 Hash,排行用 ZSet。
缓存用 SET/GET,计数用 INCR/DECR。

posted @ 2026-04-20 17:43  柳成荫y  阅读(9)  评论(0)    收藏  举报