国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - 在SpringBoot中添加Redis及配置方法

在SpringBoot中添加Redis及配置方法

2021-06-04 13:42detectiveHLH Java教程

這篇文章主要介紹了在SpringBoot中添加Redis及配置redis的代碼,需要的朋友可以參考下

在實際的開發中,會有這樣的場景。有一個微服務需要提供一個查詢的服務,但是需要查詢的數據庫表的數據量十分龐大,查詢所需要的時間很長。 此時就可以考慮在項目中加入緩存。

引入依賴

在maven項目中引入如下依賴。并且需要在本地安裝redis。

?
1
2
3
4
5
<dependency>
  <groupid>org.springframework.boot</groupid>
  <artifactid>spring-boot-starter-data-redis</artifactid>
  <version>2.0.5.release</version>
</dependency>

配置redis

在springboot的配置文件中添加如下代碼。

?
1
2
3
4
5
6
7
8
9
10
redis:
  host: 127.0.0.1
  port: 6379
  timeout: 5000
  database: 0
  jedis:
   pool:
    max-idle: 8
    max-wait:
    min-idle: 0

添加redis配置文件

新建名為redisconfig的配置類。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
import com.fasterxml.jackson.annotation.jsonautodetect;
import com.fasterxml.jackson.annotation.propertyaccessor;
import com.fasterxml.jackson.databind.objectmapper;
import org.springframework.cache.cachemanager;
import org.springframework.cache.annotation.cachingconfigurersupport;
import org.springframework.cache.annotation.enablecaching;
import org.springframework.cache.interceptor.keygenerator;
import org.springframework.context.annotation.bean;
import org.springframework.context.annotation.configuration;
import org.springframework.data.redis.cache.rediscacheconfiguration;
import org.springframework.data.redis.cache.rediscachemanager;
import org.springframework.data.redis.cache.rediscachewriter;
import org.springframework.data.redis.connection.redisconnectionfactory;
import org.springframework.data.redis.core.redistemplate;
import org.springframework.data.redis.core.stringredistemplate;
import org.springframework.data.redis.serializer.jackson2jsonredisserializer;
 
import java.time.duration;
 
/**
 * redisconfig
 *
 * @author detectivehlh
 * @date 2018-10-11 14:39
 **/
@configuration
@enablecaching
public class redisconfig extends cachingconfigurersupport {
  @bean
  @override
  public keygenerator keygenerator() {
    return (target, method, params) -> {
      stringbuilder sb = new stringbuilder();
      sb.append(target.getclass().getname());
      sb.append(method.getname());
      for (object obj : params) {
        sb.append(obj.tostring());
      }
      return sb.tostring();
    };
  }
 
  @bean
  public redistemplate<string, string> redistemplate(redisconnectionfactory factory) {
    objectmapper om = new objectmapper();
    om.setvisibility(propertyaccessor.all, jsonautodetect.visibility.any);
    om.enabledefaulttyping(objectmapper.defaulttyping.non_final);
    //redis序列化
    jackson2jsonredisserializer jackson2jsonredisserializer = new jackson2jsonredisserializer(object.class);
    jackson2jsonredisserializer.setobjectmapper(om);
 
    stringredistemplate template = new stringredistemplate(factory);
    template.setvalueserializer(jackson2jsonredisserializer);
    template.afterpropertiesset();
    return template;
  }
 
  /**
   * 自定義cachemanager
   */
  @bean
  public cachemanager cachemanager(redistemplate redistemplate) {
    //全局redis緩存過期時間
    rediscacheconfiguration rediscacheconfiguration = rediscacheconfiguration.defaultcacheconfig().entryttl(duration.ofdays(1));
    rediscachewriter rediscachewriter = rediscachewriter.nonlockingrediscachewriter(redistemplate.getconnectionfactory());
    return new rediscachemanager(rediscachewriter, rediscacheconfiguration);
  }
}

添加緩存配置

在項目的service層中的實現類中,添加@cacheable注解。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import java.util.hashmap;
 
/**
 * userloginserviceimpl
 *
 * @author detectivehlh
 * @date 2018-10-10 17:20
 **/
@service
public class userloginserviceimpl implements userloginservice {
  @autowired
  private userloginmapper userloginmapper;
 
  @override
  @cacheable(value = "usercache")
  public hashmap getbyusername(string username) {
    system.out.println("此時沒有走緩存");
    return userloginmapper.getbyusername(username);
  }
}

然后調用一次該接口。就可以在redis中看到如下的key。

"usercache::com.detectivehlh.api.service.impl.userloginserviceimplgetbyusernamesolarfarm"

同時,可以在控制臺中看到有"此時沒有走緩存"的輸出。然后再次調用該接口,就可以看到返回的速度明顯變快,并且沒有"此時沒有走緩存"輸出。說明 此時的接口走的是緩存。

總結

以上所述是小編給大家介紹的在springboot中添加redis及配置方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對服務器之家網站的支持!

原文鏈接:https://juejin.im/post/5bbf077d5188255c393f8c90

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲视频二区 | 久久久久国产精品免费免费搜索 | 中文字幕一区在线 | 福利精品视频 | 欧美成人激情 | 久久精品国产免费 | 婷婷久| 男女啪啪无遮挡 | 亚洲免费久久久 | 亚洲国产精品一区二区第一页 | 国产成人免费视频网站高清观看视频 | 在线观看一区二区三区四区 | 久久香蕉综合 | 国产精品一区一区三区 | 久久精品二 | 荷兰欧美一级毛片 | 成人av小说 | 伦一区二区三区中文字幕v亚洲 | 欧美视频二区 | 黄网在线观看 | av一区二区三区四区 | 国产一区二区视频在线观看 | 日本久久网| 久久久久久久久久久国产 | 国产一区视频在线 | 在线一区二区三区 | www.天天操 | 在线观看a毛片 | 午夜视频免费在线观看 | 久久精品噜噜噜成人av农村 | 久久精品亚洲一区二区 | 日韩精品在线一区 | 在线视频自拍 | 2018天天操 | 欧美精品一区二区三区四区在线 | 日本中文字幕一区 | 免费久久99精品国产婷婷六月 | 亚洲精品一区二区三区在线 | 黄色美女网站免费 | 成av在线 | 蜜桃视频一区二区三区 |