最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

redis簡介:

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

引入依賴:

<!-- 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=端口號
spring.redis.database=0
spring.redis.password=密碼
spring.redis.lettuce.pool.max-active=20
spring.redis.lettuce.pool.max-wait=1
#最大阻塞等待時間(負數(shù)表示沒有限制)
spring.redis.lettuce.pool.max-idle=5
spring.redis.lettuce.pool.min-idle=0
# 關閉超時時間
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);
//解決查詢緩存轉換異常的問題
ObjectMapper om = new ObjectMapper();
om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
jackson2JsonRedisSerializer.setObjectMapper(om);
// 配置序列化(解決亂碼的問題),過期時間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ù)方法對其返回結果進行緩存,下次請求時,如果緩存存在,則直接讀取緩存數(shù)據(jù)返回;如果緩存不存在,則執(zhí)行方法,并把返回的結果存入緩存中。一般用在查詢方法上。

查看源碼,屬性值如下:

在這里插入圖片描述

(2)緩存@CachePut

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

查看源碼,屬性值如下

在這里插入圖片描述

(3)緩存@CacheEvict

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

在這里插入圖片描述

在這里插入圖片描述

不能連接redis:
(1)關閉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注解

總結

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

相關文章

  • Java實現(xiàn)快速生成詞云圖的示例代碼

    Java實現(xiàn)快速生成詞云圖的示例代碼

    詞云(Word?Cloud),又稱文字云、標簽云(Tag?Cloud)、關鍵詞云(Keyword?Cloud),是對文本信息中一定數(shù)量的關鍵詞出現(xiàn)的頻率高低情況的一種可視化展現(xiàn)方式。本文將用Java代碼實現(xiàn)快速生成詞云圖,需要的可以參考一下
    2023-02-02
  • SpringBoot應用自定義logback日志詳解

    SpringBoot應用自定義logback日志詳解

    默認情況下,SpringBoot內部使用logback作為系統(tǒng)日志實現(xiàn)的框架,將日志輸出到控制臺,不會寫到日志文件。本篇文章主要講解下如何自定義logabck.xml以及對logback文件中配置做一個詳解,需要的可以參考一下
    2022-10-10
  • 代碼分析JAVA中PCM人聲音頻變聲處理

    代碼分析JAVA中PCM人聲音頻變聲處理

    本篇文章通過代碼實例給大家分析了JAVA中PCM人聲音頻變聲處理的問題,有興趣的朋友跟著學習分考下吧。
    2018-01-01
  • Nacos?Discovery服務治理解決方案

    Nacos?Discovery服務治理解決方案

    DiscoveryClient是專門負責服務注冊和發(fā)現(xiàn)的,我們可以通過它獲取到注冊到注冊中心的所有服務,這篇文章主要介紹了Nacos?Discovery服務治理,需要的朋友可以參考下
    2022-11-11
  • Java實現(xiàn)常見的排序算法的示例代碼

    Java實現(xiàn)常見的排序算法的示例代碼

    這篇文章主要為大家詳細介紹了Java實現(xiàn)常見的排序算法(選擇排序、插入排序、希爾排序等)的相關資料,文中的示例代碼講解詳細,感興趣的可以了解一下
    2022-10-10
  • Mybatis邏輯分頁與物理分頁PageHelper使用解析

    Mybatis邏輯分頁與物理分頁PageHelper使用解析

    這篇文章主要為大家介紹了Mybatis邏輯分頁與物理分頁PageHelper使用解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-12-12
  • Java實現(xiàn)基于清除后分配規(guī)則的垃圾回收器詳解

    Java實現(xiàn)基于清除后分配規(guī)則的垃圾回收器詳解

    垃圾回收是 Java 語言的一項重要特性,自動管理對象內存,防止內存泄漏和野指針問題,下面我們就來看看如何利用Java實現(xiàn)基于清除后分配規(guī)則的垃圾回收器吧
    2025-03-03
  • java中關于內部類的使用詳解

    java中關于內部類的使用詳解

    本篇文章介紹了,在java中關于內部類的使用詳解。需要的朋友 參考下
    2013-04-04
  • IDEA 單元測試報錯:Class not found:xxxx springboot的解決

    IDEA 單元測試報錯:Class not found:xxxx springb

    這篇文章主要介紹了IDEA 單元測試報錯:Class not found:xxxx springboot的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • Java?InputStream實戰(zhàn)之輕松讀取操作文件流

    Java?InputStream實戰(zhàn)之輕松讀取操作文件流

    在Java中,輸入輸出是非常重要的基礎功能,其中,InputStream是Java中的一個重要輸入流類,用于從輸入源讀取數(shù)據(jù),下面我們就來學習一下InputStream類的相關知識吧
    2023-10-10

最新評論

镇赉县| 清丰县| 通辽市| 浑源县| 临颍县| 黄浦区| 渝北区| 青龙| 论坛| 绿春县| 喀喇沁旗| 德安县| 喀喇沁旗| 泾川县| 洱源县| 安岳县| 宜阳县| 农安县| 绵竹市| 田林县| 大方县| 宿迁市| 建德市| 防城港市| 通化县| 吉水县| 蓝田县| 海丰县| 玛多县| 迁安市| 陇南市| 积石山| 昭苏县| 长寿区| 汉寿县| 福建省| 康定县| 莲花县| 栖霞市| 诸暨市| 平塘县|