redis是干嘛的,spring boot 集成 redis 詳細介紹

 2023-10-08 阅读 34 评论 0

摘要:Spring Cache是一個框架,實現了基于注解的緩存功能,只需要簡單地加一個注解,就能實現緩存功能,大大簡化我們在業務中操作緩存的代碼。 Spring Cache只是提供了一層抽象,底層可以切換不同的cache實現。具體就是通過CacheManager接口來統一不

Spring Cache是一個框架,實現了基于注解的緩存功能,只需要簡單地加一個注解,就能實現緩存功能,大大簡化我們在業務中操作緩存的代碼。

Spring Cache只是提供了一層抽象,底層可以切換不同的cache實現。具體就是通過CacheManager接口來統一不同的緩存技術。CacheManager是Spring提供的各種緩存技術抽象接口。

配置環境

Spring boot 使用Spring Cache時需要添加Cache依賴以及redis依賴

redis默認的Key序列化器為:JdkSerializationRedisSerializer ,需要進行修改避免出現亂碼

在引導類上加? @EnableCaching,就代表當前項目開啟緩存注解功能。

在配置文件中設置redis與cache 的配置

?注解的詳細介紹及使用方式

注解說明
@EnableCaching開啟緩存注解功能? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

@Cacheable

在執行方法前Spring先查看緩存中是否有數據,如有數據則直接返回緩存的數據,若無數據正常執行方法并將方法的返回值存入緩存.

@CachePut將返回值方法存入緩存
@CacheEvict將一條或多條數據從緩存中刪除

@CachePut

/**
* CachePut:將方法返回值放入緩存
* value:緩存的名稱,每個緩存名稱下面可以有多個key
* key:緩存的key
*/
@CachePut(value = "userCache", key = "#result.id")
/*
#result.id 表示返回值中的id元素
key可以設許多值,例:#user.id 表示方法參數user對象的id元素//@CachePut(value = "userCache",key = "#p0")  //#p0 代表第一個參數
//@CachePut(value = "userCache",key = "#root.args[0]") //#root.args[0] 代表第一個參數
@CachePut(value = "userCache",key = "#id") //#id 代表變量名為id的參數
@GetMapping
public User save("/{id}"){return id;
}
*/
@PostMapping
public User save(User user){userService.save(user);return user;
}

@CacheEvict

/**
* CacheEvict:清理指定緩存
* value:緩存的名稱,每個緩存名稱下面可以有多個key
* key:緩存的key
*/
@CacheEvict(value = "userCache",key = "#id") //#id 代表變量名為id的參數
@DeleteMapping("/{id}")
public void delete(@PathVariable Long id){userService.removeById(id);
}

@Cacheable

/**
* Cacheable:在方法執行前spring先查看緩存中是否有數據,如果有數據,則直接返回緩存數據;若沒有數據,調用方法并將方法返回值放到緩存中
* value:緩存的名稱,每個緩存名稱下面可以有多個key
* key:緩存的key
*/
@Cacheable(value = "userCache",key = "#id")
@GetMapping("/{id}")
public User getById(@PathVariable Long id){User user = userService.getById(id);return user;
}

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://808629.com/140262.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 86后生记录生活 Inc. 保留所有权利。

底部版权信息