Java 使用Redis做数据缓存

本文介绍了如何在Java后端服务中使用Redis进行数据缓存,以提高性能和减少不必要的数据库查询。通过将接口返回内容序列化并存储到Redis,接口访问时优先从缓存获取数据,减少了数据库负载。同时,当数据更新时,通过@CacheEvict和@CachePut注解管理缓存的刷新和更新。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我们在做后端服务的时候,要非常注重性能,比如我们一个项目,大家回频繁地打开某一个页面的时候,回频繁地去后台请求数据库访问数据,重复地查询一样的数据,这样一想,在数据库里那部分数据没有被更新的情况下还重复地去查询,是不是觉得有点浪费资源了呢?是的,那么我们就要想办法把那些不必要每次都从数据库里拿的数据(更新频率低)做缓存,不要每次访问页面都去查询一次。

我们使用 Redis 来实现缓存

1.引入需要的依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-cache</artifactId>
</dependency>

关于Redis的配置这里就不重复啰嗦了

2.往Redis里做的缓存的单位并不是单纯的一个对象,或者一个字符串这么简单,而是缓存了某个接口的全部返回内容

例如我有一个获取商品列表的接口,那么我的 Redis 缓存的就是这个接口返回的数据,所以我们是对接口进行操作的

但是我们要先把返回的内容进行序列化,必须是可以序列化的对象才能被缓存到 Redis 里

/**
 * http请求返回的最外层对象
 * @author: 林之谦
 * @date: 2018/7/27
 * @description:
 */
@Data
//@JsonInclude(JsonInclude.Include.NON_NULL)
public class ResultVO<T> implements Serializable {


    private static final long serialVersionUID = 1451589387303987463L;

    /** 错误码 */
    private Integer code;

    /** 提示信息 */
    private String msg;

    /** 返回的具体内容 */
    private T data;
}

所以我这里举例的返回对象是 ResultVO 这个类,那么我们要让它实现 Serializable接口&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值