SpringBoot整合Redis緩存入門(mén)教程,使用使用詳解依賴(lài)配置、緩存連接設置、入門(mén)緩存啟用及管理,教程助您快速上手?Redis緩存應用。使用使用 Spring Boot 整合?? Redis 實(shí)現緩存功能入門(mén)教??程 在當今互聯(lián)網(wǎng)時(shí)代,緩存系統的入門(mén)性能和用(yong)戶(hù)體驗至關(guān)重要,緩存技術(shù)作為一種優(yōu)化手段,教程能夠有效提高系統的使用使用訪(fǎng)問(wèn)速度和并發(fā)處理能力,Redis 是緩存一款高(′?ω?`)性能的鍵值對存儲系統,被廣泛應用于緩存、入門(mén)消息隊列等領(lǐng)域,教程Spring Boot 是使用使用一款基于 Spring 框架的微服務(wù)開(kāi)發(fā)框架,它簡(jiǎn)化了配置和部署過(guò)程,緩存讓開(kāi)發(fā)者能夠快速構建獨立的入門(mén)、生產(chǎn)級別的應用程序,本文將介紹如何使用 Sprin(??-)?g Boot 整合 Redis 實(shí)現緩存功能。概述
環(huán)境準(′?`)備
需??要在系(xi)統中安裝 Redis,可以從 Redis 官網(wǎng)下載相應版本的安裝包,???然后按照官方文檔進(jìn)行安裝,安裝完成后,啟動(dòng) Redis 服務(wù)。
2、創(chuàng )建 Spring Boot 項目
使用 Spring Initial??izr(https://start.spring.io/)創(chuàng )建一個(gè) Spring Boot 項目,選擇相應的依賴(lài):
– Spring Web
– Spring Data Redis
– Jedis
下載項目后,解壓并導入到開(kāi)發(fā)工具(如 IntelliJ IDEA、Eclipse 等)。
配置 Redis
在 Sprin??g Boot 項目中,需要在 application.properties 或 application.yml 文件中配置 Re??(′_`)dis 相關(guān)屬性。
1、application.properti??es
Redis 數據庫索引(默認為 0)spring.redis.database=0 Redis 服務(wù)器地址 spring.redis.host=localhost Redis 服務(wù)器連接端口 spring.redis.port=6379 Redis 服務(wù)器連接密碼(默認為空)spring.redis.passw(??-)?ord= 連接池最大連接數(使用負值表示沒(méi)有限制)spring.redis.jedis.pool.max-active=8 連接池最大阻塞等待時(shí)間(使用負值表示沒(méi)有限制)spring.redis.jedis.pool.max-wait=-1 連接池中的最大空閑連接spring.redis.jedis.pool.max-idle=8 連接(′?`)池中的最小空閑連接spring.redis.jedis.pool.min-idle=0 連接超時(shí)時(shí)間(毫秒)spring.redis.timeout=5000 2、application.yml
spring: redis: database??: 0 host: localhost port: 6379 password: jedis: pool: max-active: 8 max-wait: -1 max-idle: 8 min??-idle: 0 timeout: 5000使用(′?ω?`) RedisTemplate
Spring Boot 提供了 RedisTemplate 和 StringRedisTemplate 兩個(gè)模板類(lèi),用于簡(jiǎn)化 Redis 操作(′▽?zhuān)?,Red??isTemplate 是泛型模板,可以操作任意的 Java 對象;StringRedisTemplate 是 RedisTemplate 的子類(lèi),專(zhuān)門(mén)用于操作字符串。
在 Spring Boot 主配置類(lèi)中注入 RedisTemplate(′?ω?`):
import org.springframework.context.annotation.Bean;import org.spri??ngframework.c(′?_?`)ontext.annotat(′?_?`)ion.Configuration;import org??.s(???)pringframework.da(′_`)ta.redis( ?ω?).connection.RedisConnectionFactory;import org.springframework.data.redis.co??re.RedisTemplate;@Configurationpublic class RedisConfig { @Bean public RedisTempla?te<String, Ob(′?`)ject> redisTemplate(RedisConnectionFactory factory) { RedisTemplate<String, Object> template = new RedisTemplate<>(); tem(′?`*)plat(°ロ°) !e??.setConnectionFactory(factory); // 使用 Jackson2JsonRedisSerializer 來(lái)序列化和反序列化 redis 的 value 值(默認使用 JdkSerializationRed??is(??ヮ?)?*:???Serializer) Jackson2JsonRedi(╥_╥)sSerializer jacksonSeial = new Jackson2JsonRedisSerializer(Object.class); ObjectMapper om = new?? ObjectMapper(); //指定要序列化的域,field,get和set,以及修飾范圍,ANY是都有包括private和p(?_?;)ublic om.setVisibility(PropertyAccessor.ALL, JsonAutoDete(°ロ°) !ct.Visibility.ANY); //指定序列化輸入的類(lèi)型,類(lèi)必??須是非final修飾的 om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL??); jacksonSeial.setObjectMapper(om); // 值采用json序列??化 template.setValuヽ(′▽?zhuān)?ノeSerializer(jacksonSe( ?° ?? ?°)ial); //使??用StringRedisSerializer來(lái)序列化和反序列(???)化redis的key值 template.setKeySerializer(new StringRedisSerializer()); // 設置hash key 和value序列化模式 template.setHashKeySerializer(new StringRedisS?erializer()); template.setHashValueSerializer(jackso(′-ι_-`)nSeial); template.afterP??ropertiesSet(??); return template; }}2、使用 RedisTemplate
在業(yè)務(wù)類(lèi)中,注入 RedisTemplate,并使用它進(jìn)行(xing)緩存操作:
import org.springframework.beans.factory.annoヽ(′ー`)ノt(T_T)ation.Autowired;import org.ˉ\_(ツ)_/ˉspringframework.data.redis.core.RedisTemplate;import org.springframework.stereotype.Service;@??Servicepublic class CacheService { @Autowired private RedisTemplate<String, Object> redisTemplate; public void setCache(String key, Object value) { redisTemplate.opsForValue().s??et(key, value); } public Object getCache(String key) { return redisTemplate.opsForValue().get(key); }}使用緩存注解
Spring Boot 提供了 @Cacheable、@CachePut 和 @C(?⊿?)acheEvict 等注解,簡(jiǎn)化緩存操作。
1、@Cacheable
@Cacheabl??e 注解用于將方法的返回值緩存到 Redis。
import org.springframework.cache.annotation.Cacheable;import org.springframework.stereotype.Service;@Servicepublic class UserService { @Cacheable(value = "user", key = "#id") public User findById(Long id) { // 模擬數據庫查詢(xún)操作 return new User(id,?? "張三"); }}2(′ω`)、@CachePut
@CachePut 注解用于更新 Redis 中的緩存。
import org.springframework.cache.??annotation.CachePut;import org.springframewor(′▽?zhuān)?k.stereotype.Service;@Servicepubli??c?? class UserService { @CachePut(value = "user", key = "#user.id") public User updateUser(User user) { // 模擬數據庫更新操作 return user; }}3、@CacheEvict
@CacheEvi??ct 注解用于刪除 Re(╬ ò﹏ó)dis 中的緩存。
import(′_ゝ`) org.springframework.cache.annotation.CacheEvict;import org.springframework.stereotype.Service;@Servicepublic class UserS(′_ゝ`)ervice { @CacheEvict(value = "user", key = "#id") public void deleteUser(Long id) { // 模擬數據庫刪除操作 }}本文介紹了如何使用 Spring Boot 整合 Redis 實(shí)(shi)現緩存功能,配置了 Redis 相關(guān)屬性;通過(guò) RedisTemplate 和緩存??注解??簡(jiǎn)化了 Redis 操作,通過(guò)本文的學(xué)習,讀者可以快速上手 Spring Boot 與 Redis 的集成開(kāi)發(fā),提高系統的性能和并發(fā)處理能力。
關(guān)于高端網(wǎng)站設計公司的排名,不同來(lái)源和評價(jià)維度存在差異。以下綜合多個(gè)權威來(lái)源的信息,分領(lǐng)域整理出具有代表性的公司排名及特點(diǎn): 一、綜合類(lèi)高端網(wǎng)站設計公司排名互橙文化 服務(wù)范圍覆蓋國內外,提供定制化設計 ..
為了成長(cháng),企業(yè)必須首先樹(shù)立品牌意識。企業(yè)要發(fā)展,進(jìn)入更大的市場(chǎng),就要面對其它也有好產(chǎn)品的同行的競爭。此時(shí),如果沒(méi)有品牌支持,那是絕對不可能的,很難突破發(fā)展瓶頸。因此,要成長(cháng),企業(yè)必須首先改變這一觀(guān)念, ..
作為一家專(zhuān)業(yè)的網(wǎng)站SEO服務(wù)提供商,咸豐SEO公司致力于幫助客戶(hù)通過(guò)優(yōu)化網(wǎng)站,提高在搜索引擎中的排名,實(shí)現更多的曝光和流量,從而獲得更多的商機和用戶(hù)。我們擁有豐富的經(jīng)驗和專(zhuān)業(yè)的團隊,為您量身打造最適 ..





