亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

一起來看看springboot集成redis的使用注解

 更新時(shí)間:2022年03月04日 11:48:04   作者:sjgeng111  
這篇文章主要為大家詳細(xì)介紹了springboot集成redis的使用注解,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助

redis簡介:

Redis是當(dāng)前比較熱門的NOSQL系統(tǒng)之一,它是一個(gè)開源的使用ANSI c語言編寫的key-value存儲(chǔ)系統(tǒng)
(區(qū)別于MySQL的二維表格的形式存儲(chǔ)。)。和Memcache類似,但很大程度補(bǔ)償了Memcache的不
足。和Memcache一樣,Redis數(shù)據(jù)都是緩存在計(jì)算機(jī)內(nèi)存中,不同的是,Memcache只能將數(shù)據(jù)緩存到
內(nèi)存中,無法自動(dòng)定期寫入硬盤,這就表示,一斷電或重啟,內(nèi)存清空,數(shù)據(jù)丟失。所以Memcache的
應(yīng)用場景適用于緩存無需持久化的數(shù)據(jù)。而Redis不同的是它會(huì)周期性的把更新的數(shù)據(jù)寫入磁盤或者把修
改操作寫入追加的記錄文件,實(shí)現(xiàn)數(shù)據(jù)的持久化。
Redis的特點(diǎn):
1,Redis讀取的速度是110000次/s,寫的速度是81000次/s;
2,原子 。Redis的所有操作都是原子性的,同時(shí)Redis還支持對(duì)幾個(gè)操作全并后的原子性執(zhí)行。
3,支持多種數(shù)據(jù)結(jié)構(gòu):string(字符串);list(列表);hash(哈希),set(集合);zset(有序集合)
4,持久化,集群部署
5,支持過期時(shí)間,支持事務(wù),消息訂閱

引入依賴:

<!-- redis -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<!-- spring2.X集成redis所需common-pool2-->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
<version>2.6.0</version>
</dependency>

編寫application.properties文件

#redi配置
spring.redis.host=ip地址
spring.redis.port=端口號(hào)
spring.redis.database=0
spring.redis.password=密碼
spring.redis.lettuce.pool.max-active=20
spring.redis.lettuce.pool.max-wait=1
#最大阻塞等待時(shí)間(負(fù)數(shù)表示沒有限制)
spring.redis.lettuce.pool.max-idle=5
spring.redis.lettuce.pool.min-idle=0
# 關(guān)閉超時(shí)時(shí)間
spring.redis.lettuce.shutdown-timeout=100

編寫配置類:

@EnableCaching
@Configuration
public class RedisConfig extends CachingConfigurerSupport {
@Bean
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory
factory) {
RedisTemplate<String, Object> template = new RedisTemplate<>();
RedisSerializer<String> redisSerializer = new StringRedisSerializer();
Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new
Jackson2JsonRedisSerializer(Object.class);
ObjectMapper om = new ObjectMapper();
om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
jackson2JsonRedisSerializer.setObjectMapper(om);
template.setConnectionFactory(factory);
//key序列化方式
template.setKeySerializer(redisSerializer);
//value序列化
template.setValueSerializer(jackson2JsonRedisSerializer);
//value hashmap序列化
template.setHashValueSerializer(jackson2JsonRedisSerializer);
return template;
 }
@Bean
public CacheManager cacheManager(RedisConnectionFactory factory) {
RedisSerializer<String> redisSerializer = new StringRedisSerializer();
Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new
Jackson2JsonRedisSerializer(Object.class);
//解決查詢緩存轉(zhuǎn)換異常的問題
ObjectMapper om = new ObjectMapper();
om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
jackson2JsonRedisSerializer.setObjectMapper(om);
// 配置序列化(解決亂碼的問題),過期時(shí)間600秒
RedisCacheConfiguration config =
RedisCacheConfiguration.defaultCacheConfig()
 .entryTtl(Duration.ofSeconds(600))
 
.serializeKeysWith(RedisSerializationContext.SerializationPair.fromSerializer(redi
sSerializer))
 
.serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(ja
ckson2JsonRedisSerializer))
 .disableCachingNullValues();
RedisCacheManager cacheManager = RedisCacheManager.builder(factory)
 .cacheDefaults(config)
 .build();
return cacheManager;
 }
}

springboot的redis注解介紹

(1)緩存@Cacheable

根據(jù)方法對(duì)其返回結(jié)果進(jìn)行緩存,下次請(qǐng)求時(shí),如果緩存存在,則直接讀取緩存數(shù)據(jù)返回;如果緩存不存在,則執(zhí)行方法,并把返回的結(jié)果存入緩存中。一般用在查詢方法上。

查看源碼,屬性值如下:

在這里插入圖片描述

(2)緩存@CachePut

使用該注解標(biāo)志的方法,每次都會(huì)執(zhí)行,并將結(jié)果存入指定的緩存中。其他方法可以直接從響應(yīng)的緩存中讀取緩存數(shù)據(jù),而不需要再去查詢數(shù)據(jù)庫。一般用在新增方法上。

查看源碼,屬性值如下

在這里插入圖片描述

(3)緩存@CacheEvict

使用該注解標(biāo)志的方法,會(huì)清空指定的緩存。一般用在更新或者刪除方法上查看源碼,屬性值如下

在這里插入圖片描述

在這里插入圖片描述

不能連接redis:
(1)關(guān)閉liunx防火墻
(2)找到redis配置文件:
修改 protected-mode yes  改為  protected-mode no
注釋掉: bind 127.0.0.1

測試

@Cacheable(value = "banner", key = "'selectIndexList'")
@Override
public List<CrmBanner> selectIndexList() {
List<CrmBanner> list = baseMapper.selectList(new
QueryWrapper<CrmBanner>().orderByDesc("sort"));
return list;
 }

@CacheEvict(value = "banner", allEntries=true)
@Override
public void removeBannerById(String id) {
baseMapper.deleteById(id);
 }

redis中:

在這里插入圖片描述

基本的功能:

查詢使用:@Cacheable注解

修改刪除:使用@CacheEvict注解

增加:使用@CachePut注解

總結(jié)

本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!  

相關(guān)文章

  • 偵聽消息隊(duì)列的Message Listener類示例詳解

    偵聽消息隊(duì)列的Message Listener類示例詳解

    Spring AMQP 是基于 Spring 框架的AMQP消息解決方案,提供模板化的發(fā)送和接收消息的抽象層,提供基于消息驅(qū)動(dòng)的 POJO的消息監(jiān)聽等,簡化了我們對(duì)于RabbitMQ相關(guān)程序的開發(fā),本文給大家介紹偵聽消息隊(duì)列的Message Listener類,感興趣的朋友一起看看吧
    2023-12-12
  • 單點(diǎn)登錄的三種方式和JWT的介紹與使用

    單點(diǎn)登錄的三種方式和JWT的介紹與使用

    這篇文章主要說明了單點(diǎn)登錄的三種方式和JWT的介紹與使用,加深自己的印象以及幫助的諸位小伙伴兒們,需要的朋友可以參考下
    2023-03-03
  • Java那點(diǎn)兒事之Map集合不為人知的秘密有哪些

    Java那點(diǎn)兒事之Map集合不為人知的秘密有哪些

    Map用于保存具有映射關(guān)系的數(shù)據(jù),Map集合里保存著兩組值,一組用于保存Map的key,另一組保存著Map的value,和查字典類似,通過key找到對(duì)應(yīng)的value,通過頁數(shù)找到對(duì)應(yīng)的信息。用學(xué)生類來說,key相當(dāng)于學(xué)號(hào),value對(duì)應(yīng)name,age,sex等信息。用這種對(duì)應(yīng)關(guān)系方便查找
    2021-10-10
  • Java網(wǎng)絡(luò)編程基礎(chǔ)篇之單向通信

    Java網(wǎng)絡(luò)編程基礎(chǔ)篇之單向通信

    這篇文章主要介紹了Java網(wǎng)絡(luò)編程里通過套接字實(shí)現(xiàn)單向通信的方法及相關(guān)實(shí)例,屬于網(wǎng)絡(luò)編程入門程序,雖然簡單,但具有一定參考價(jià)值,需要的朋友可以參考下。
    2017-09-09
  • 詳解Java中Array和ArrayList的比較和轉(zhuǎn)換

    詳解Java中Array和ArrayList的比較和轉(zhuǎn)換

    在 Java 編程中,arrays 和 arraylists 都是基本的數(shù)據(jù)結(jié)構(gòu),用來存放數(shù)據(jù)集合,雖然兩者的用途一樣,但是它們的特點(diǎn)極大地影響應(yīng)用的性能和靈活性,本文探討 arrays 和 arraylists 的重要特性,它們各自的強(qiáng)項(xiàng)和弱點(diǎn),,需要的朋友可以參考下
    2023-08-08
  • 史上最佳springboot Locale 國際化方案

    史上最佳springboot Locale 國際化方案

    今天給大家分享史上最佳springboot Locale 國際化方案,本文通過實(shí)例圖文相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2021-08-08
  • Maven項(xiàng)目繼承實(shí)現(xiàn)過程圖解

    Maven項(xiàng)目繼承實(shí)現(xiàn)過程圖解

    這篇文章主要介紹了Maven項(xiàng)目繼承實(shí)現(xiàn)過程圖解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08
  • Mybatis延遲加載和緩存深入講解

    Mybatis延遲加載和緩存深入講解

    這篇文章主要給大家介紹了關(guān)于Mybatis延遲加載和緩存的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-02-02
  • springcloud使用feign調(diào)用服務(wù)時(shí)參數(shù)內(nèi)容過大問題

    springcloud使用feign調(diào)用服務(wù)時(shí)參數(shù)內(nèi)容過大問題

    這篇文章主要介紹了springcloud使用feign調(diào)用服務(wù)時(shí)參數(shù)內(nèi)容過大問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • 基于SpringBoot整合SSMP案例(開啟日志與分頁查詢條件查詢功能實(shí)現(xiàn))

    基于SpringBoot整合SSMP案例(開啟日志與分頁查詢條件查詢功能實(shí)現(xiàn))

    這篇文章主要介紹了基于SpringBoot整合SSMP案例(開啟日志與分頁查詢條件查詢功能實(shí)現(xiàn)),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋參考下吧
    2023-11-11

最新評(píng)論