当前位置:
凯发k8官方网 >
前端技术
> javascript
>内容正文
javascript
spring boot连接多个redis库配置方案及代码示例 -凯发k8官方网
凯发k8官方网
收集整理的这篇文章主要介绍了
spring boot连接多个redis库配置方案及代码示例
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
import com.zxl.common.utils.json.fastjsonredisserializer;
import org.springframework.beans.factory.annotation.value;
import org.springframework.context.annotation.bean;
import org.springframework.context.annotation.configuration;
import org.springframework.data.redis.connection.redisconnectionfactory;
import org.springframework.data.redis.connection.redispassword;
import org.springframework.data.redis.connection.redisstandaloneconfiguration;
import org.springframework.data.redis.connection.jedis.jedisclientconfiguration;
import org.springframework.data.redis.connection.jedis.jedisconnectionfactory;
import org.springframework.data.redis.core.redistemplate;
import org.springframework.data.redis.serializer.stringredisserializer;
import redis.clients.jedis.jedispoolconfig;import java.time.duration;@configuration
public class dictredisconfiglocal {@value("${spring.dictredis.host}")private string host;@value("${spring.dictredis.port}")private int port;@value("${spring.dictredis.password}")private string password;@value("${spring.dictredis.maxtotal}")private integer maxtotal;@value("${spring.dictredis.maxidle}")private integer maxidle;@value("${spring.dictredis.maxwaitmillis}")private integer maxwaitmillis;@value("${spring.dictredis.timeout}")private int timeout;@value("${spring.dictredis.database}")private int database;@bean(name = "dictredis")public redisconnectionfactory cacheredisconnectionfactory() {jedispoolconfig poolconfig = new jedispoolconfig();poolconfig.setmaxtotal(maxtotal);poolconfig.setmaxidle(maxidle);poolconfig.setmaxwaitmillis(maxwaitmillis);poolconfig.settestonborrow(true);poolconfig.settestonreturn(false);poolconfig.settestwhileidle(true);jedisclientconfiguration clientconfig = jedisclientconfiguration.builder().usepooling().poolconfig(poolconfig).and().readtimeout(duration.ofmillis(timeout)).build();// 单点redisredisstandaloneconfiguration redisconfig = new redisstandaloneconfiguration();// 哨兵redis// redissentinelconfiguration redisconfig = new redissentinelconfiguration();// 集群redis// redisclusterconfiguration redisconfig = new redisclusterconfiguration();redisconfig.sethostname(host);redisconfig.setpassword(redispassword.of(password));redisconfig.setport(port);redisconfig.setdatabase(database);return new jedisconnectionfactory(redisconfig, clientconfig);}/*** 配置redistemplate 注入方式使用@resource(name="") 方式注入** @return*/@bean(name = "dictredislocaltemplate")public redistemplate cacheredistemplate() {redistemplate template = new redistemplate<>();/* //使用fastjson序列化fastjsonredisserializer fastjsonredisserializer = new fastjsonredisserializer(object.class);// value值的序列化采用fastjsonredisserializertemplate.setvalueserializer(fastjsonredisserializer);template.sethashvalueserializer(fastjsonredisserializer);// key的序列化采用stringredisserializertemplate.setkeyserializer(new stringredisserializer());template.sethashkeyserializer(new stringredisserializer());*/
//template.setconnectionfactory(cacheredisconnectionfactory());return template;}
//
// /**
// * 对hash类型的数据操作
// *
// * @param redistemplate
// * @return
// */
// @bean(name = "dictredishashoperations")
// public hashoperations hashoperations(redistemplate redistemplate) {
// return redistemplate.opsforhash();
// }
//
// /**
// * 对redis字符串类型数据操作
// *
// * @param redistemplate
// * @return
// */
// @bean(name = "dictredisvalueoperations")
// public valueoperations valueoperations(redistemplate redistemplate) {
// return redistemplate.opsforvalue();
// }
//
// /**
// * 对链表类型的数据操作
// *
// * @param redistemplate
// * @return
// */
// @bean(name = "dictredislistoperations")
// public listoperations listoperations(redistemplate redistemplate) {
// return redistemplate.opsforlist();
// }
//
// /**
// * 对无序集合类型的数据操作
// *
// * @param redistemplate
// * @return
// */
// @bean(name = "dictredissetoperations")
// public setoperations setoperations(redistemplate redistemplate) {
// return redistemplate.opsforset();
// }
//
// /**
// * 对有序集合类型的数据操作
// *
// * @param redistemplate
// * @return
// */
// @bean(name = "dictrediszsetoperations")
// public zsetoperations zsetoperations(redistemplate redistemplate) {
// return redistemplate.opsforzset();
// }
}
import com.zxl.common.utils.json.fastjsonredisserializer;
import org.springframework.beans.factory.annotation.value;
import org.springframework.boot.autoconfigure.condition.conditionalonclass;
import org.springframework.boot.autoconfigure.data.redis.redisproperties;
import org.springframework.boot.context.properties.enableconfigurationproperties;
import org.springframework.cache.annotation.enablecaching;
import org.springframework.context.annotation.bean;
import org.springframework.context.annotation.configuration;
import org.springframework.context.annotation.primary;
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.connection.redispassword;
import org.springframework.data.redis.connection.redisstandaloneconfiguration;
import org.springframework.data.redis.connection.jedis.jedisclientconfiguration;
import org.springframework.data.redis.connection.jedis.jedisconnectionfactory;
import org.springframework.data.redis.core.*;
import org.springframework.data.redis.serializer.redisserializationcontext;
import org.springframework.data.redis.serializer.stringredisserializer;
import redis.clients.jedis.jedispoolconfig;import java.time.duration;@configuration
@enablecaching
@conditionalonclass(redisoperations.class)
@enableconfigurationproperties(redisproperties.class)
public class redisconfig {@value("${spring.setredis.host}")private string host;@value("${spring.setredis.port}")private int port;@value("${spring.setredis.password}")private string password;@value("${spring.setredis.maxtotal}")private integer maxtotal;@value("${spring.setredis.maxidle}")private integer maxidle;@value("${spring.setredis.maxwaitmillis}")private integer maxwaitmillis;@value("${spring.setredis.timeout}")private int timeout;@value("${spring.setredis.database}")private int database;@primary@beanpublic redisconnectionfactory cachebusinessredisconnectionfactory() {jedispoolconfig poolconfig = new jedispoolconfig();poolconfig.setmaxtotal(maxtotal);poolconfig.setmaxidle(maxidle);poolconfig.setmaxwaitmillis(maxwaitmillis);poolconfig.settestonborrow(true);poolconfig.settestonreturn(false);poolconfig.settestwhileidle(true);jedisclientconfiguration clientconfig = jedisclientconfiguration.builder().usepooling().poolconfig(poolconfig).and().readtimeout(duration.ofmillis(timeout)).build();// 单点redisredisstandaloneconfiguration redisconfig = new redisstandaloneconfiguration();// 哨兵redis// redissentinelconfiguration redisconfig = new redissentinelconfiguration();// 集群redis// redisclusterconfiguration redisconfig = new redisclusterconfiguration();redisconfig.sethostname(host);redisconfig.setpassword(redispassword.of(password));redisconfig.setport(port);redisconfig.setdatabase(database);return new jedisconnectionfactory(redisconfig, clientconfig);}/*** 管理缓存 springboot2** @param redistemplate* @return*/@beanpublic rediscachemanager rediscachemanager(redistemplate redistemplate) {//初始化一个rediscachewriterrediscachewriter rediscachewriter = rediscachewriter.nonlockingrediscachewriter(redistemplate.getconnectionfactory());rediscacheconfiguration rediscacheconfiguration = rediscacheconfiguration.defaultcacheconfig().serializevalueswith(redisserializationcontext.serializationpair.fromserializer(redistemplate.getvalueserializer()));//设置序列化//设置默认超过期时间是30秒rediscacheconfiguration.entryttl(duration.ofseconds(30));//初始化rediscachemanagerrediscachemanager cachemanager = new rediscachemanager(rediscachewriter, rediscacheconfiguration);return cachemanager;}@beanpublic redistemplate redistemplate() {redistemplate template = new redistemplate<>();// jackson2jsonredisserializer