一、Redis 基础(你必须先懂的)
1️⃣ Redis 是什么(Java 开发者版)
Redis = 内存版的 NoSQL Key-Value 数据库
几个关键词你要刻在脑子里:
- 内存存储 → 快(微秒级)
- Key-Value
- 支持持久化
- 支持多种数据结构
介绍 Redis 基础原理及五大核心数据结构。涵盖 Redis 作为内存 Key-Value 数据库的特性(单线程、IO 多路复用等),详细解析 String、Hash、List、Set、ZSet 的定义、Java 类比、典型应用场景、常用命令及注意事项。提供结构选型速查表,并给出 Java 项目中 Key 设计规范与过期策略的最佳实践,帮助开发者合理选用 Redis 数据结构。
Redis = 内存版的 NoSQL Key-Value 数据库
几个关键词你要刻在脑子里:
👉 在 Java 项目里,Redis ≈
数据库前面的一层 高速缓冲区 + 工具箱
Java 面试/实战必问:
⚠️ 注意:
Redis 不是'多线程处理命令'
而是:
key -> value
但这个 value 不只是字符串,而是👇
下面每一个我都按 是什么 → 用来干啥 → Java 对应 → 命令 → 注意事项 讲。
最基础的数据类型,一个 key 对应一个 value。
String/Integer/Long/AtomicLong
SET key value GET key INCR key DECR key SETEX key 60 value
INCR 是原子操作
不用你加锁,非常适合:
⚠️ 坑
一个 key 对应一个 Map
key -> { field1:value1, field2:value2 }
HashMap<String,Object>
HSET user:1001 name "Tom"
HSET user:1001 age 18
HGET user:1001 name
| 对比 | Hash | String(JSON) |
|---|---|---|
| 更新单字段 | ✅ | ❌ |
| 内存利用 | 更优 | 较差 |
| 反序列化 | 不需要 | 需要 |
⚠️ 坑
双向链表
LinkedList
LPUSH list a RPUSH list b LPOP list RPOP list LRANGE list 0 9
List = 不可靠 MQ
⚠️ 坑
一个 去重集合
HashSet
SADD set a b c SREM set a SMEMBERS set SINTER set1 set2
共同好友 = SINTER
⚠️ 坑
member + score
TreeMap/PriorityQueue
ZADD rank 100 tom ZADD rank 200 jack ZRANGE rank 0 -1 WITHSCORES ZREVRANGE rank 0 9
ZSet = 排行榜神器
⚠️ 坑
| 场景 | 数据结构 |
|---|---|
| 简单缓存 | String |
| 对象缓存 | Hash |
| 消息队列 | List |
| 去重/关系 | Set |
| 排行榜 | ZSet |
业务:模块:对象:ID
示例:
user:info:1001 order:status:20260204:8899
EXPIRE key 60
✅ 能说清 5 种结构
✅ 知道每种适合什么场景
✅ 会基本命令
✅ 能在 Java 里选对结构

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online
JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online
使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online
Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online