Spring Boot + Redis 实战:8 个企业项目最常用代码模板

上一篇文章讲了 Redis 的应用场景

这一篇直接给大家 Spring Boot 项目最常用的 Redis 代码模板,可以直接复制到项目中使用。


一、缓存模板

ini 复制代码
public User getUser(Long userId){

    String key = "user:info:"+userId;

    Object cache = redisTemplate.opsForValue().get(key);

    if(cache != null){
        return (User) cache;
    }

    User user = userMapper.selectById(userId);

    redisTemplate.opsForValue().set(key,user,30,TimeUnit.MINUTES);

    return user;
}

二、验证码模板

typescript 复制代码
public void saveCode(String phone,String code){

    String key = "sms:code:"+phone;

    redisTemplate.opsForValue()
            .set(key,code,5,TimeUnit.MINUTES);
}

校验:

vbnet 复制代码
public boolean checkCode(String phone,String code){

    String key = "sms:code:"+phone;

    String cache = (String) redisTemplate.opsForValue().get(key);

    return code.equals(cache);
}

三、限流模板

arduino 复制代码
public boolean limit(String key,int max){

    Long count = redisTemplate.opsForValue().increment(key);

    if(count == 1){
        redisTemplate.expire(key,1,TimeUnit.MINUTES);
    }

    return count <= max;
}

四、分布式锁模板(RedisTemplate)

vbnet 复制代码
public boolean tryLock(String key){

    return Boolean.TRUE.equals(
            redisTemplate.opsForValue()
                    .setIfAbsent(key,"1",30,TimeUnit.SECONDS)
    );
}

释放锁:

go 复制代码
redisTemplate.delete(key);

五、Redisson 分布式锁模板

推荐生产使用。

csharp 复制代码
RLock lock = redissonClient.getLock("lock:order:"+orderId);

lock.lock();

try{

    //业务逻辑

}finally{

    lock.unlock();

}

六、排行榜模板

arduino 复制代码
public void addScore(String user,int score){

    redisTemplate.opsForZSet()
            .incrementScore("rank:user",user,score);

}

获取前10名:

ini 复制代码
Set<ZSetOperations.TypedTuple<Object>> rank =
        redisTemplate.opsForZSet()
                .reverseRangeWithScores("rank:user",0,9);

七、延迟队列模板

添加任务:

csharp 复制代码
redisTemplate.opsForZSet()
        .add("delay:task",taskId,System.currentTimeMillis()+60000);

获取任务:

ini 复制代码
Set<Object> tasks =
        redisTemplate.opsForZSet()
                .rangeByScore("delay:task",0,System.currentTimeMillis());

八、Set 去重模板

csharp 复制代码
redisTemplate.opsForSet()
        .add("sign:20260318",userId);

判断是否存在:

scss 复制代码
redisTemplate.opsForSet()
        .isMember("sign:20260318",userId);

最后

Redis 真正需要掌握的其实只有:

  • 5种数据结构
  • 10种应用场景

然后配合 Spring Boot 使用,就已经可以应对绝大多数企业项目。

相关推荐
candyTong9 分钟前
Claude Code 的 Edit 工具是怎么工作的
javascript·后端·架构
GetcharZp1 小时前
GitHub 2.4 万 Star!D2 正在重新定义程序员画图方式
后端
zhangxingchao3 小时前
多 Agent 架构到底怎么选?从 Claude Agent Teams、Cognition/Devin 到工程落地原则
前端·人工智能·后端
IT_陈寒3 小时前
SpringBoot那个自动配置的坑,害我排查到凌晨三点
前端·人工智能·后端
ServBay3 小时前
OpenCode 和它的7款必备插件
后端·github·ai编程
ping某3 小时前
逐字节拆解 tcpdump
后端
阿凡9807303 小时前
花 100 dollar,用 Claude 打通 EasyEDA&Fusion 双向同步
后端·程序员
irving同学462383 小时前
从零搭建生产级 RAG:Embedding、Chunking、Hybrid Search 与 Reranker
前端·后端
她的男孩3 小时前
从零搭一个企业后台,为什么我把能力拆成 Starter 和 Plugin
java·后端·架构
胡志辉3 小时前
本地 AI 编码助手从 0 配起来:先选模型,再接 Ollama、VS Code、Claude Code 和 Codex
前端·后端