国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術(shù)文章
文章詳情頁

Spring boot如何快速的配置多個(gè)Redis數(shù)據(jù)源

瀏覽:25日期:2023-05-12 08:56:14

簡介

redis 多數(shù)據(jù)源主要的運(yùn)用場(chǎng)景是在需要使用多個(gè)redis服務(wù)器或者使用多個(gè)redis庫,本文采用的是fastdep依賴集成框架,快速集成Redis多數(shù)據(jù)源并集成lettuce連接池,只需引入依賴后在yaml文件中配置多數(shù)據(jù)源連接信息即可。

源碼地址希望大家可以star支持一下,后續(xù)還會(huì)加入其它依賴的簡易整合。https://github.com/louislivi/fastdep

引入依賴

Maven

<dependency> <groupId>com.louislivi.fastdep</groupId> <artifactId>fastdep-redis</artifactId> <version>1.0.1</version></dependency>

Gradle

compile group: ’com.louislivi.fastdep’, name: ’fastdep-redis’, version: ’1.0.1’

配置文件

fastdep: redis: redis1: #連接名稱 database: 0 host: 192.168.12.88 port: 6379 lettuce: #下面為連接池的補(bǔ)充設(shè)置 shutdown-timeout: 100 # 關(guān)閉超時(shí)時(shí)間 pool: max-active: 18 # 連接池最大連接數(shù)(使用負(fù)值表示沒有限制) max-idle: 8 # 連接池中的最大空閑連接 max-wait: 30 # 連接池最大阻塞等待時(shí)間(使用負(fù)值表示沒有限制) min-idle: 0 # 連接池中的最小空閑連接 redis2: #連接名稱 database: 1 host: 192.168.12.88 port: 6379 lettuce: #下面為連接池的補(bǔ)充設(shè)置 shutdown-timeout: 100 # 關(guān)閉超時(shí)時(shí)間 pool: max-active: 18 # 連接池最大連接數(shù)(使用負(fù)值表示沒有限制) max-idle: 8 # 連接池中的最大空閑連接 max-wait: 30 # 連接池最大阻塞等待時(shí)間(使用負(fù)值表示沒有限制) min-idle: 0 # 連接池中的最小空閑連接

運(yùn)用

@Autowiredprivate StringRedisTemplate redis1StringRedisTemplate;// 注入時(shí) redis1 代表配置文件中的連接名稱 StringRedisTemplate 為固定注入redis對(duì)象類型,// 會(huì)自動(dòng)根據(jù)注入的變量名進(jìn)行匹配@Autowiredprivate StringRedisTemplate redis2StringRedisTemplate;@GetMapping('redis')public void redis() { System.out.println(redis1StringRedisTemplate.opsForValue().get('test')); System.out.println(redis2StringRedisTemplate.opsForValue().get('test'));}

擴(kuò)展

有時(shí)候需要自定義redisTemplate序列化和增加一些額外的配置,這時(shí)候我們可以封裝一個(gè)redis工具類來實(shí)現(xiàn)

package com.louislivi.fastdep.test.utils;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.data.redis.core.RedisTemplate;import org.springframework.data.redis.core.StringRedisTemplate;import org.springframework.data.redis.serializer.StringRedisSerializer;import org.springframework.stereotype.Component;/** * RedisUtil * * @author : louislivi */@Componentpublic class RedisUtil { @Autowired private StringRedisTemplate redis1StringRedisTemplate; @Autowired private StringRedisTemplate redis2StringRedisTemplate; @Autowired private RedisTemplate redis2RedisTemplate; @Autowired private RedisTemplate redis1RedisTemplate; public RedisTemplate redisTemplate(String name) { RedisTemplate redisTemplate; switch (name) { case 'redis2':redisTemplate = redis2RedisTemplate;break; default:redisTemplate = redis1RedisTemplate;break; } StringRedisSerializer stringRedisSerializer = new StringRedisSerializer(); redisTemplate.setKeySerializer(stringRedisSerializer); redisTemplate.setValueSerializer(stringRedisSerializer); redisTemplate.setHashKeySerializer(stringRedisSerializer); redisTemplate.setHashValueSerializer(stringRedisSerializer); return redisTemplate; } public StringRedisTemplate stringRedisTemplate(String name) { StringRedisTemplate stringRedisTemplate; switch (name) { case 'redis2':stringRedisTemplate = redis2StringRedisTemplate;break; default:stringRedisTemplate = redis1StringRedisTemplate;break; } stringRedisTemplate.setEnableTransactionSupport(true); return stringRedisTemplate; }}

@Autowiredprivate RedisUtil redisUtil;@GetMapping('redis')public void redis() { System.out.println(redisUtil.redisTemplate('redis1').opsForValue().get('test')); System.out.println(redisUtil.stringRedisTemplate('redis2').opsForValue().get('test'));}

原理

使用ImportBeanDefinitionRegistrar BeanDefinitionBuilder.genericBeanDefinition動(dòng)態(tài)注入Bean其實(shí)很簡單有興趣可以去看看源碼,這樣的依賴集成是不是簡單了很多呢?

希望大家能夠支持開源,給個(gè)小星星,后續(xù)還會(huì)繼續(xù)開發(fā)其他依賴的整合,甚至兼容其他框架使用。fastdep讓java整合依賴更簡單。在此也招募有志同道合的coder共同完善這個(gè)項(xiàng)目。

到此這篇關(guān)于Spring boot如何快速的配置多個(gè)Redis數(shù)據(jù)源的文章就介紹到這了,更多相關(guān)Spring boot多個(gè)Redis數(shù)據(jù)源內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Spring
相關(guān)文章:
主站蜘蛛池模板: 临安市| 建阳市| 中西区| 山西省| 无为县| 罗平县| 贵南县| 乐陵市| 固镇县| 新田县| 什邡市| 桃园市| 南开区| 额尔古纳市| 鄯善县| 城步| 河南省| 安陆市| 蛟河市| 东安县| 西乌| 富阳市| 昭通市| 桦南县| 浮山县| 阳谷县| 梨树县| 茌平县| 洛南县| 绥江县| 香港| 乐清市| 鸡东县| 赤峰市| 浑源县| 九江县| 涞水县| 遵义市| 大埔区| 连云港市| 钦州市|