婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Spring Boot 項目集成Redis的方式詳解

Spring Boot 項目集成Redis的方式詳解

熱門標簽:日本中國地圖標注 魔獸2青云地圖標注 貴州電銷卡外呼系統(tǒng) 北京400電話辦理收費標準 鄭州人工智能電銷機器人系統(tǒng) 超呼電話機器人 山東外呼銷售系統(tǒng)招商 宿遷便宜外呼系統(tǒng)平臺 十堰營銷電銷機器人哪家便宜

集成方式

使用Jedis

Jedis是Redis官方推薦的面向Java的操作Redis的客戶端,是對服務端直連后進行操作。如果直接使用Jedis進行連接,多線程環(huán)境下是非線程安全的,正式生產(chǎn)環(huán)境一般使用連接池進行連接。

dependency>
    groupId>redis.clients/groupId>
    artifactId>jedis/artifactId>
    version>2.9.0/version>
/dependency>

使用spring-data-redis

由Spring 框架提供,是對Redis客戶端的進一步封裝,屏蔽了不同客戶端的不同實現(xiàn)方式,讓服務端和客戶端進一步解耦;也就是你可以切換不同的客戶端實現(xiàn),比如Jedis或Lettuce(Redis客戶端實現(xiàn)之一),而不影響你的業(yè)務邏輯。

類似于的SpringCloud的服務治理框架對不同服務治理組件的適配,或是AMQP

它利用RedisTemplate對JedisApi進行高度封裝。使用的依賴如下:

 dependency>
 	groupId>org.springframework.boot/groupId>
 	artifactId>spring-boot-starter-data-redis/artifactId>
 /dependency>

Redis的安裝

​收先要安裝Redis服務端,Redis官方提供的是Linux安裝包。網(wǎng)上有很多詳細的安裝教程,這里不做展開。關于Windows下的安裝,可參考我的另一篇博文windows下Redis的安裝和使用

綁定配置

​完成Redis服務端的安裝之后,我們開始在項目中進行集成。這里我們先介紹使用Jedis的方式進行的集成。先按上面的提及的方式進行依賴的引入。然后將Redis的相關信息配置到配置文件中去。我們可以的新建一個配置文件redis.properties,內(nèi)容如下:

# Redis數(shù)據(jù)庫索引(默認為0)
spring.redis.database=0
# Redis服務器地址
spring.redis.host=127.0.0.1
# Redis服務器連接端口
spring.redis.port=6379
# Redis服務器連接密碼(默認為空)
spring.redis.password=
# 連接超時時間(毫秒)
spring.redis.timeout=0

​接下來我們要為Redis客戶端連接綁定上面的配置,創(chuàng)建出來的客戶端實例才能夠連接到我們的想連的Redis服務端。你可以使用@Value注解或@ConfigurationProperties注解的方式,本文采用的是后者,如果還不清楚的該注解的用法,可以移步我的另一篇博文@ConfigurationProperties實現(xiàn)自定義配置綁定查看,這里不做展開。

​以下是Redis服務端信息配置的接收類:MyRedisProperties.java

@ConfigurationProperties(
        prefix = "spring.redis"
)
@Component
@Data
@PropertySource("classpath:/redis.properties")
public class MyRedisProperties {
    private String database;
    private String host;
    private Integer port;
    private String password;
    private Integer timeOut;
}

由于我們正式生產(chǎn)環(huán)境一般都是采用連接池方式實現(xiàn),所以我們還需要關于連接池的配置如下:

# 連接池最大連接數(shù)(使用負值表示沒有限制)
spring.redis.pool.max-active=8
# 連接池最大阻塞等待時間(使用負值表示沒有限制)
spring.redis.pool.max-wait=-1
# 連接池中的最大空閑連接
spring.redis.pool.max-idle=8
# 連接池中的最小空閑連接
spring.redis.pool.min-idle=0

對應的接收類如下:

@ConfigurationProperties(
        prefix = "spring.redis.pool"
)
@Data
@Component
@PropertySource("classpath:/redis.properties")
public class RedisPoolProperties {

    private Integer maxActive;
    private Integer maxWait;
    private Integer maxIdle;
    private Integer minIdle;
}

然后向Spring容器裝配客戶端實例,分為單個客戶端和連接池兩種實現(xiàn),如下代碼:

@Configuration
public class RedisConfig {

    @Autowired
    private RedisPoolProperties redisPoolProperties;
    @Autowired
    private MyRedisProperties myRedisProperties;

    @Bean
    public Jedis singleJedis(){
        return new Jedis(myRedisProperties.getHost(),myRedisProperties.getPort());
    }

    @Bean
    public JedisPool jedisPool(){ 
        JedisPoolConfig poolConfig = new JedisPoolConfig();
        poolConfig.setMaxIdle(redisPoolProperties.getMaxIdle());
        poolConfig.setMaxTotal(redisPoolProperties.getMaxActive());
        poolConfig.setMaxWaitMillis(redisPoolProperties.getMaxWait() * 1000);
        JedisPool jp = new JedisPool(poolConfig, myRedisProperties.getHost(), myRedisProperties.getPort(),
                myRedisProperties.getTimeOut()*1000, myRedisProperties.getPassword(), 0);
        return jp;

    }
}

獲取Redis客戶端

進行相關配置的綁定之后,意味著我們程序可以拿到Redis和連接池的相關信息,然后進行客戶端的創(chuàng)建和連接了。所以我們要向Spring容器裝配客戶端實例,分為單個客戶端和連接池兩種實現(xiàn),如下代碼:

@Configuration
public class RedisConfig {

    @Autowired
    private RedisPoolProperties redisPoolProperties;
    @Autowired
    private MyRedisProperties myRedisProperties;

    @Bean
    public Jedis singleJedis(){
        return new Jedis(myRedisProperties.getHost(),myRedisProperties.getPort());
    }

    @Bean
    public JedisPool jedisPool(){ 
        JedisPoolConfig poolConfig = new JedisPoolConfig();
        poolConfig.setMaxIdle(redisPoolProperties.getMaxIdle());
        poolConfig.setMaxTotal(redisPoolProperties.getMaxActive());
        poolConfig.setMaxWaitMillis(redisPoolProperties.getMaxWait() * 1000);
        JedisPool jp = new JedisPool(poolConfig, myRedisProperties.getHost(), myRedisProperties.getPort(),
                myRedisProperties.getTimeOut()*1000, myRedisProperties.getPassword(), 0);
        return jp;

    }
}

Redis工具的編寫

裝配好客戶端實例后,我們就可以通過@Autowired的方式進行注入使用了。我們都知道,Redis有5中數(shù)據(jù)類型,分別是:

  • string(字符串)
  • hash(哈希)
  • list(列表)
  • set(集合)
  • zset(sorted set:有序集合)

所以的有必要的封裝一個操作者5種數(shù)據(jù)列表的工具類,由于篇幅的關系,我們以Redis最基本的數(shù)據(jù)類型String為例,簡單封裝幾個操作方法作為示例如下,更詳細的封裝,可參考java操作Redis數(shù)據(jù)庫的redis工具,RedisUtil,jedis工具JedisUtil,JedisPoolUtil這一博文

@Service
public class RedisService {

    @Autowired
    private JedisPool jedisPool; // 連接池方式
    @Autowired
    private Jedis myJedis; // 單個客戶端

    public T> T get(String key, ClassT> clazz) {
        Jedis jedis = null;
        try {
            jedis = jedisPool.getResource();
            String str = jedis.get(key);
            return stringToBean(str,clazz);
        } finally {
            close(jedis);
        }
    }

    public T> void set(String key, T value) {
        try {
            String str = value.toString();
            if (str == null || str.length() = 0) {
                return;
            }
            myJedis.set(key, str);
        } finally {
            close(myJedis);
        }
    }

    private void close(Jedis jedis) {
        if (jedis != null) {
            jedis.close();
        }
    }

    /**
     * 把一個字符串轉(zhuǎn)換成bean對象
     * @param str
     * @param T>
     * @return
     */
    public static T> T stringToBean(String str, ClassT> clazz) {

        if(str == null || str.length() = 0 || clazz == null) {
            return null;
        }

        if(clazz == int.class || clazz == Integer.class) {
            return (T)Integer.valueOf(str);
        }else if(clazz == String.class) {
            return (T)str;
        }else if(clazz == long.class || clazz == Long.class) {
            return  (T)Long.valueOf(str);
        }else {
            return JSON.toJavaObject(JSON.parseObject(str), clazz);
        }
    }
}

其中get方法使用連接池中的客戶端實例,set方法用到的是非連接池的實例,以區(qū)分兩種不同的使用方式

使用

封裝好的Redis的操作工具類后,我們就可以直接使用該工具類來進行對Redis的各種操作 。如下,直接注入即可。

@RestController
public class TestController {

    @Autowired
    private RedisService redisService;
    
    ......
}

到此這篇關于Spring Boot 項目集成Redis的文章就介紹到這了,更多相關Spring Boot 項目集成Redis內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • 使用SpringBoot集成redis的方法
  • SpringBoot集成Redis實現(xiàn)消息隊列的方法
  • Spring boot集成redis lettuce代碼實例
  • 基于SpringBoot集成測試遠程連接Redis服務的教程詳解
  • springboot集成redis實現(xiàn)簡單秒殺系統(tǒng)
  • SpringBoot集成Redisson實現(xiàn)分布式鎖的方法示例
  • springBoot集成redis的key,value序列化的相關問題

標簽:楊凌 果洛 朝陽 臺州 北京 吉安 江蘇 大慶

巨人網(wǎng)絡通訊聲明:本文標題《Spring Boot 項目集成Redis的方式詳解》,本文關鍵詞  Spring,Boot,項目,集成,Redis,;如發(fā)現(xiàn)本文內(nèi)容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Spring Boot 項目集成Redis的方式詳解》相關的同類信息!
  • 本頁收集關于Spring Boot 項目集成Redis的方式詳解的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    色悠悠亚洲一区二区| 亚洲精品国产成人久久av盗摄 | 欧美自拍丝袜亚洲| 国产精品的网站| 欧美日韩国产大片| 色播五月激情综合网| eeuss鲁片一区二区三区| 国产一区二区三区在线观看精品| 水蜜桃久久夜色精品一区的特点| 一区二区三区中文在线观看| 欧美国产日产图区| 国产日韩一级二级三级| 久久这里只有精品视频网| 欧美疯狂做受xxxx富婆| 欧美日韩激情一区二区三区| 在线观看91精品国产入口| 色婷婷国产精品久久包臀| 91老师国产黑色丝袜在线| 成人黄色国产精品网站大全在线免费观看| 美女视频黄免费的久久| 人人精品人人爱| 久国产精品韩国三级视频| 青青草97国产精品免费观看| 日本va欧美va精品| 久久狠狠亚洲综合| 亚洲成av人**亚洲成av**| 一区二区三区高清| 亚洲第一在线综合网站| 视频一区二区中文字幕| 日韩中文字幕区一区有砖一区| 男男gaygay亚洲| 国产传媒一区在线| 91丨九色丨黑人外教| 在线免费不卡视频| 久久精品国产99国产| 经典一区二区三区| 成人精品小蝌蚪| 99久久伊人网影院| 色婷婷精品大在线视频| 欧美午夜宅男影院| 欧美一区二区久久久| 日韩视频在线你懂得| 久久久午夜精品| 亚洲三级理论片| 天堂va蜜桃一区二区三区| 久久99精品国产麻豆婷婷 | 久久久久久一二三区| 中文欧美字幕免费| 一区二区三区四区激情| 日本系列欧美系列| 久久精品国产在热久久| eeuss鲁片一区二区三区| 欧美日韩精品是欧美日韩精品| 欧美成人在线直播| 亚洲精品一二三| 视频一区二区三区在线| 成人黄色综合网站| 日韩三级av在线播放| 日韩女优制服丝袜电影| 亚洲男人电影天堂| 国产精品一区在线观看你懂的| 91行情网站电视在线观看高清版| 精品久久久久一区二区国产| 成人免费在线视频| 久久99精品久久久久久动态图| www.综合网.com| 欧美一级xxx| 亚洲欧洲美洲综合色网| 国产在线精品视频| 欧美日韩成人一区二区| 欧美日韩国产小视频| 欧美日韩国产大片| 亚洲老妇xxxxxx| 国产**成人网毛片九色 | 欧美自拍丝袜亚洲| 成人网在线播放| 日韩美女主播在线视频一区二区三区| 成人免费一区二区三区在线观看| 精品一区二区日韩| 欧美一卡2卡三卡4卡5免费| 亚洲一区二区三区四区在线观看 | 成人综合婷婷国产精品久久蜜臀 | 欧美一区二区在线不卡| 国产精品免费网站在线观看| 六月婷婷色综合| 欧美电影影音先锋| 午夜成人在线视频| 在线观看一区二区视频| 国产精品理论在线观看| 福利一区二区在线观看| 久久精品人人爽人人爽| 国产一区二区三区四区五区美女| 欧美一区二区三区免费在线看| 亚洲香肠在线观看| 色拍拍在线精品视频8848| 亚洲欧美综合另类在线卡通| 国产a久久麻豆| 久久久久国产精品麻豆ai换脸| 美国欧美日韩国产在线播放| 538prom精品视频线放| 午夜精品久久久久久久| 欧美日韩精品专区| 日韩av一区二区在线影视| 欧美电影影音先锋| 日韩 欧美一区二区三区| 制服丝袜亚洲播放| 蜜桃视频在线一区| 久久久久久久久久久久久久久99| 国产毛片精品视频| 国产精品日日摸夜夜摸av| 9l国产精品久久久久麻豆| 亚洲日本在线观看| 欧美日韩国产美女| 精品综合久久久久久8888| 欧美va日韩va| 国产很黄免费观看久久| 亚洲四区在线观看| 在线成人av影院| 久久精品久久综合| 中文字幕+乱码+中文字幕一区| 99综合电影在线视频| 五月天亚洲婷婷| 久久中文字幕电影| 在线视频一区二区三| 免费成人av在线| 国产精品成人网| 欧美一区二区视频免费观看| 国产综合一区二区| 亚洲欧美欧美一区二区三区| 欧美一区国产二区| 不卡一卡二卡三乱码免费网站| 亚洲午夜日本在线观看| 欧美tk—视频vk| 一本在线高清不卡dvd| 久久99国产精品麻豆| 亚洲免费观看高清完整版在线观看熊 | 亚洲最大的成人av| 日韩欧美国产综合| 色一情一乱一乱一91av| 久久91精品久久久久久秒播| 亚洲激情网站免费观看| 2023国产一二三区日本精品2022| 99久久精品免费精品国产| 麻豆国产91在线播放| 亚洲福利视频一区| 成人欧美一区二区三区视频网页| 日韩三级在线免费观看| 91黄色免费网站| 成人av在线影院| 国模无码大尺度一区二区三区| 午夜精品久久久久久| 亚洲激情校园春色| 1区2区3区欧美| 亚洲国产精品激情在线观看| 日韩欧美久久一区| 欧美中文字幕不卡| 99久久精品免费| 国产成人在线免费观看| 麻豆精品一区二区三区| 日韩中文字幕区一区有砖一区 | 免费成人性网站| 亚洲国产精品久久不卡毛片| 中文字幕一区二区不卡| 久久久久久久久久久久久夜| 日韩欧美综合一区| 日韩欧美亚洲国产另类| 91精品蜜臀在线一区尤物| 欧美视频中文一区二区三区在线观看| av电影天堂一区二区在线观看| 国产99久久久国产精品潘金网站| 精品系列免费在线观看| 国产在线国偷精品产拍免费yy| 国产综合色在线| 国产福利精品导航| 国产91丝袜在线播放| 成人av片在线观看| 91丨九色丨黑人外教| 色嗨嗨av一区二区三区| 欧美亚洲一区三区| 欧美三级一区二区| 欧美精品久久99久久在免费线 | 日韩欧美www| 日韩欧美国产电影| 久久久久综合网| 国产精品乱人伦| 亚洲乱码中文字幕| 国产91丝袜在线观看| 成人午夜大片免费观看| 99re这里只有精品首页| 欧美在线视频全部完| 91精品久久久久久久91蜜桃| 欧美一级在线观看| 国产亚洲欧洲997久久综合 | 青青草91视频| 国产一区二区三区香蕉| 波多野结衣在线aⅴ中文字幕不卡| 91精彩视频在线观看| 欧美成人精品福利| 国产精品第四页| 日韩激情视频在线观看|