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

解決spring集成redisson踩過(guò)的坑

 更新時(shí)間:2021年09月13日 09:45:08   作者:丶諸子百家  
這篇文章主要介紹了spring集成redisson踩過(guò)的坑,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

spring集成redisson踩過(guò)的坑

我用spring的xml集成一直報(bào)錯(cuò),所以只能選擇注解方式:

  
@Configuration
public class RedissionConfig { 
    Logger log = LoggerFactory.getLogger(RedissionConfig.class);
 
    @Value("${redis_ip}")
    String redis_ip;
 
    @Value("${redis_port}")
    String redis_port;
 
    @Value("${redis_password}")
    String redis_password;
 
    @Bean(name="redissonClient")
   public RedissonClient init(){
        log.info("redis_ip:"+redis_ip);
        log.info("redis_port:" +redis_port);
        log.info("redis_password:"+redis_password);
        Config config = new Config();
        String url = "redis://"+redis_ip+":"+redis_port;
        log.info(url);
        config.useSingleServer().setAddress(url).setPassword(redis_password);
        RedissonClient redissonClient = Redisson.create(config);
        log.info("初始化RedissonClient");
        return redissonClient;
    } 
}

第一坑就是版本兼容問(wèn)題

我用的Spring是4.2.7,第一次集成的是3.12.0,會(huì)報(bào)以下錯(cuò)誤:

嚴(yán)重: Unable to process Jar entry [module-info.class] from Jar [jar:file:/C:/Users/Administrator/.m2/repository/com/fasterxml/jackson/dataformat/jackson-dataformat-yaml/2.10.1/jackson-dataformat-yaml-2.10.1.jar!/] for annotations org.apache.tomcat.util.bcel.classfile.ClassFormatException: Invalid byte tag in constant pool: 19 at org.apache.tomcat.util.bcel.classfile.Constant.readConstant(Constant.java:133) at org.apache.tomcat.util.bcel.classfile.ConstantPool.<init>(ConstantPool.java:60) at org.apache.tomcat.util.bcel.classfile.ClassParser.readConstantPool(ClassParser.java:209) at org.apache.tomcat.util.bcel.classfile.ClassParser.parse(ClassParser.java:119) at org.apache.catalina.startup.ContextConfig.processAnnotationsStream(ContextConfig.java:2134) at org.apache.catalina.startup.ContextConfig.processAnnotationsJar(ContextConfig.java:2010) at org.apache.catalina.startup.ContextConfig.processAnnotationsUrl(ContextConfig.java:1976) at org.apache.catalina.startup.ContextConfig.processAnnotations(ContextConfig.java:1961) at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1319) at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:878) at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:376) at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119) at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5322) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549) at java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:266) at java.util.concurrent.FutureTask.run(FutureTask.java) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:748)

所以把版本降低到3.10.0,就不會(huì)報(bào)錯(cuò)了。

第二個(gè)坑是設(shè)置密碼問(wèn)題

因?yàn)橐獏^(qū)分多環(huán)境,所以把redis的信息寫(xiě)到配置文件中,如果按照上面的配置,會(huì)報(bào)以下錯(cuò)誤:

Caused by: org.redisson.client.RedisException: ERR Client sent AUTH, but no password is set. channel: [id: 0xe37c85e0, L:/192.168.0.128:54867 - R:192.168.0.128/192.168.0.128:5802] command: (AUTH), params: [] at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:314) at org.redisson.client.handler.CommandDecoder.decodeCommand(CommandDecoder.java:130) at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:110) at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:502) at io.netty.handler.codec.ReplayingDecoder.callDecode(ReplayingDecoder.java:366) at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:278) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:86) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:86) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:86) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1434) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:965) at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:163) at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:656) at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:591) at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:508) at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:470) ... 3 more

所以要判斷密碼是否為空,如果是空不做參數(shù)即可,下面是改正過(guò)的代碼:

public RedissonClient init(){
        log.info("redis_ip:"+redis_ip);
        log.info("redis_port:" +redis_port);
        log.info("redis_password:"+redis_password);
        Config config = new Config();
        String url = "redis://"+redis_ip+":"+redis_port;
        log.info(url);
        SingleServerConfig singleServerConfig = config.useSingleServer().setAddress(url);
        if(!StringUtils.isEmpty(redis_password)){
            singleServerConfig.setPassword(redis_password);
        }
        RedissonClient redissonClient = Redisson.create(config);
        log.info("初始化RedissonClient");
        return redissonClient;
    }

另外,網(wǎng)上的帖子好多直接放的ip+端口號(hào),但是我本地會(huì)報(bào)錯(cuò),一定在加redis://192.168.2.128:6379這種格式的,可能是因?yàn)榘姹締?wèn)題,也有可能就是誤導(dǎo)人的。

看到上面的報(bào)錯(cuò),感覺(jué)知道xml的錯(cuò)誤了:

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:redisson="http://redisson.org/schema/redisson"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd
  http://www.springframework.org/schema/context
  http://www.springframework.org/schema/context/spring-context-4.2.xsd
  http://redisson.org/schema/redisson
       http://redisson.org/schema/redisson/redisson.xsd">
<beans profile="development">
       <!--redisson -->
  <!--<redisson:client id="redissonClient">
   <redisson:single-server address="redis://182.92.97.141:5802"/>
  </redisson:client>-->
    </beans>

沒(méi)有設(shè)置密碼,一定不要把password屬性放上去,要不會(huì)報(bào)錯(cuò)的~

spring整合redisson配置

配置方式

redis的部署方式有單節(jié)點(diǎn)部署、哨兵方式部署、集群方式部署3種方式

各種配置方式可以去看xsd文件:redisson-1.1.xsd

<xsd:element name="single-server"> // 單節(jié)點(diǎn)
<xsd:element name="sentinel-servers"> // 哨兵
<xsd:element name="cluster-servers"> // 集群
<xsd:element name="master-slave-servers"> // 主從

等其他方式

單節(jié)點(diǎn)配置standalone

單純的java代碼,基于單節(jié)點(diǎn)部署為了保證數(shù)據(jù)的備份,一般會(huì)添加一個(gè)節(jié)點(diǎn)作為slave來(lái)備份master節(jié)點(diǎn)上的數(shù)據(jù)

//創(chuàng)建配置  
Config config = new Config();  
//指定使用單節(jié)點(diǎn)部署方式  
config.useSingleServer().setAddress("redis://127.0.0.1:6379");  
//創(chuàng)建客戶端(發(fā)現(xiàn)這一非常耗時(shí),基本在2秒-4秒左右)  
RedissonClient redisson = Redisson.create(config);  
  
//首先獲取redis中的key-value對(duì)象,key不存在沒(méi)關(guān)系  
RBucket<String> keyObject = redisson.getBucket("key");  
//如果key存在,就設(shè)置key的值為新值value  
//如果key不存在,就設(shè)置key的值為value  
keyObject.set("value");  
  
//最后關(guān)閉RedissonClient  
redisson.shutdown(); 

spring整合pom

<!--redisson-->  
<dependency>  
    <groupId>org.redisson</groupId>  
    <artifactId>redisson</artifactId>  
    <version>2.10.4</version>  
</dependency> 
<!--redis-->
<dependency>
    <groupId>redis.clients</groupId>
    <artifactId>jedis</artifactId>
    <version>1.7.1.RELEASE</version>
</dependency>
<dependency>
    <groupId>org.springframework.data</groupId>
    <artifactId>spring-data-redis</artifactId>
    <version>1.7.1.RELEASE</version>
</dependency>

spring整合redisson.xml

    <beans xmlns="http://www.springframework.org/schema/beans"  
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
        xmlns:context="http://www.springframework.org/schema/context"  
        xmlns:redisson="http://redisson.org/schema/redisson"  
        xsi:schemaLocation="  
           http://www.springframework.org/schema/beans  
           http://www.springframework.org/schema/beans/spring-beans.xsd  
           http://www.springframework.org/schema/context  
           http://www.springframework.org/schema/context/spring-context.xsd  
           http://redisson.org/schema/redisson  
           http://redisson.org/schema/redisson/redisson.xsd">  
        <redisson:client id="standalone" name="aliasName1,aliasName2">  
            <redisson:single-server address="redis://127.0.0.1:6379" />  
        </redisson:client>  
    </beans>  

哨兵配置sentinel

純java代碼

//創(chuàng)建配置  
Config config = new Config();  
//指定使用哨兵部署方式  
config.useSentinelServers()  
    //設(shè)置sentinel.conf配置里的sentinel別名  
    //比如sentinel.conf里配置為sentinel monitor my-sentinel-name 127.0.0.1 6379 2,那么這里就配置my-sentinel-name  
    .setMasterName("my-sentinel-name")  
    //這里設(shè)置sentinel節(jié)點(diǎn)的服務(wù)IP和端口,sentinel是采用Paxos拜占庭協(xié)議,一般sentinel至少3個(gè)節(jié)點(diǎn)  
    //記住這里不是配置redis節(jié)點(diǎn)的服務(wù)端口和IP,sentinel會(huì)自己把請(qǐng)求轉(zhuǎn)發(fā)給后面monitor的redis節(jié)點(diǎn)  
    .addSentinelAddress("redis://127.0.0.1:26379")  
    .addSentinelAddress("redis://127.0.0.1:26389")  
    .addSentinelAddress("redis://127.0.0.1:26399");  
  
//創(chuàng)建客戶端(發(fā)現(xiàn)這一非常耗時(shí),基本在2秒-4秒左右)  
RedissonClient redisson = Redisson.create(config);  
//首先獲取redis中的key-value對(duì)象,key不存在沒(méi)關(guān)系  
RBucket<String> keyObject = redisson.getBucket("key");  
//如果key存在,就設(shè)置key的值為新值value  
//如果key不存在,就設(shè)置key的值為value  
keyObject.set("value");  
  
//最后關(guān)閉RedissonClient  
redisson.shutdown(); 

spring整合redis和redisson的配置文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns="http://www.springframework.org/schema/beans" xmlns:redisson="http://redisson.org/schema/redisson"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd http://redisson.org/schema/redisson http://redisson.org/schema/redisson/redisson.xsd">
 
    <!-- 構(gòu)造JedisConnectionFactory實(shí)例,注入池配置poolConfig和哨兵配置sentinelConfig-->
    <bean id="jedisConnectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">
        <!--<constructor-arg index="0" ref="redisSentinelConfiguration"/>-->
        <!--<constructor-arg index="1" ref="jedisPoolConfig"/>-->
        <constructor-arg ref="redisSentinelConfiguration"/>
        <property name="poolConfig" ref="jedisPoolConfig"/>
        <property name="database" value="${redis.database}"/>
    </bean>
 
    <!-- 配置JedisPoolConfig-->
    <bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
        <property name="minIdle" value="${redis.minIdle}"/>
        <property name="maxIdle" value="${redis.maxIdle}"/>
        <property name="maxTotal" value="${redis.maxTotal}"/>
        <property name="testOnBorrow" value="${redis.testOnBorrow}"/>
        <property name="testWhileIdle" value="${redis.testWhileIdle}"/>
        <property name="testOnReturn" value="${redis.testOnReturn}"/>
        <property name="numTestsPerEvictionRun" value="${redis.numTestsPerEvictionRun}"/>
        <property name="maxWaitMillis" value="${redis.maxWaitMillis}"/>
    </bean>
 
    <!-- 配置RedisSentinelConfiguration-->
    <bean id="redisSentinelConfiguration" class="org.springframework.data.redis.connection.RedisSentinelConfiguration">
        <property name="master">
            <bean class="org.springframework.data.redis.connection.RedisNode">
                <property name="name" value="${redis.masterName}"/>
            </bean>
        </property>
        <property name="sentinels">
            <set>
                <bean class="org.springframework.data.redis.connection.RedisNode">
                    <constructor-arg index="0" value="${redis.host}"/>
                    <constructor-arg index="1" value="${redis.port}"/>
                </bean>
            </set>
        </property>
    </bean>
 
    <!-- 用于緩存對(duì)象-->
    <bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate">
        <property name="connectionFactory" ref="jedisConnectionFactory"/>
        <!-- key -->
        <property name="keySerializer">
            <bean class="org.springframework.data.redis.serializer.StringRedisSerializer"/>
        </property>
        <property name="hashKeySerializer">
            <bean class="org.springframework.data.redis.serializer.StringRedisSerializer"/>
        </property>
        <!-- value -->
        <property name="valueSerializer">
            <bean class="org.springframework.data.redis.serializer.JdkSerializationRedisSerializer"/>
        </property>
        <property name="hashValueSerializer">
            <bean class="org.springframework.data.redis.serializer.JdkSerializationRedisSerializer"/>
        </property>
    </bean>
 
    <!-- 用于緩存字符串-->
    <bean id="stringRedisTemplate" class="org.springframework.data.redis.core.StringRedisTemplate">
        <property name="connectionFactory" ref="jedisConnectionFactory"/>
    </bean>
 
    <redisson:client id="redissonClient">
        <!--master-name為redis的主節(jié)點(diǎn)名稱-->
        <redisson:sentinel-servers master-name="mymaster">
            <!-- 可以配置多個(gè) -->
            <redisson:sentinel-address value="redis://172.17.46.11:26379" />
        </redisson:sentinel-servers>
    </redisson:client> 
</beans>

使用

    @Autowired
    @Lazy
    private RedissonClient redissonClient;   
   /**
     * @param key 具體鍵值
     * @return 鎖對(duì)象
     */
    public RReadWriteLock getLock(String key) {
        return redissonClient.getReadWriteLock(key);
    }

集群配置cluster

純java代碼

//創(chuàng)建配置  
Config config = new Config();  
//指定使用集群部署方式  
config.useClusterServers()  
    // 集群狀態(tài)掃描間隔時(shí)間,單位是毫秒  
    .setScanInterval(2000)   
    //cluster方式至少6個(gè)節(jié)點(diǎn)(3主3從,3主做sharding,3從用來(lái)保證主宕機(jī)后可以高可用)  
    .addNodeAddress("redis://127.0.0.1:6379" )  
    .addNodeAddress("redis://127.0.0.1:6380")  
    .addNodeAddress("redis://127.0.0.1:6381")  
    .addNodeAddress("redis://127.0.0.1:6382")  
    .addNodeAddress("redis://127.0.0.1:6383")  
    .addNodeAddress("redis://127.0.0.1:6384");  
//創(chuàng)建客戶端(發(fā)現(xiàn)這一非常耗時(shí),基本在2秒-4秒左右)  
RedissonClient redisson = Redisson.create(config);  
  
//首先獲取redis中的key-value對(duì)象,key不存在沒(méi)關(guān)系  
RBucket<String> keyObject = redisson.getBucket("key");  
//如果key存在,就設(shè)置key的值為新值value  
//如果key不存在,就設(shè)置key的值為value  
keyObject.set("value");  
  
//最后關(guān)閉RedissonClient  
redisson.shutdown();

spring整合redisson配置方式

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:redisson="http://redisson.org/schema/redisson"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://redisson.org/schema/redisson http://redisson.org/schema/redisson/redisson.xsd">
 
    <!--  Redis 連接池配置 -->
    <bean id="poolConfig" class="redis.clients.jedis.JedisPoolConfig">
        <property name="minIdle" value="${redis.minIdle}"/>
        <property name="maxIdle" value="${redis.maxIdle}"/>
        <property name="maxTotal" value="${redis.maxTotal}"/>
        <property name="testOnBorrow" value="${redis.testOnBorrow}"/>
        <property name="testWhileIdle" value="${redis.testWhileIdle}"/>
        <property name="testOnReturn" value="${redis.testOnReturn}"/>
 
        <property name="numTestsPerEvictionRun" value="${redis.numTestsPerEvictionRun}"/>
        <property name="maxWaitMillis" value="${redis.maxWaitMillis}"/>
        <property name="timeBetweenEvictionRunsMillis" value="30000"/>
    </bean>
 
    <!-- jedisCluster 配置 -->
    <!-- 自定義的工廠類,實(shí)現(xiàn)了FactoryBean<JedisCluster>接口 -->
    <bean id="jedisCluster" class="com.xxxxx.JedisClusterFactory">
        <!-- address: 集群配置 -->
        <property name="address" value="${redisColony.host}"/>
        <!-- timeout: 連接超時(shí)時(shí)間 -->
        <property name="timeout" value="100000"/>
        <!-- maxRedirections: 最大重定向 -->
        <property name="maxRedirections" value="5"/>
        <!-- 連接池 -->
        <property name="genericObjectPoolConfig" ref="poolConfig"/>
    </bean>
 
    <!--redisson的實(shí)例 -->
    <redisson:client id="redissonClient">
        <redisson:cluster-servers>
            <!-- 節(jié)點(diǎn)地址同redis集群的節(jié)點(diǎn) -->
            <redisson:node-address value="${redisColony.host1}"/>
            <redisson:node-address value="${redisColony.host2}"/>
            <redisson:node-address value="${redisColony.host3}"/>
            <redisson:node-address value="${redisColony.host4}"/>
            <redisson:node-address value="${redisColony.host5}"/>
            <redisson:node-address value="${redisColony.host6}"/>
        </redisson:cluster-servers>
    </redisson:client>  
</beans>

properties文件

redisColony.host = 172.17.46.11:36379,172.17.46.11:36381,172.17.45.12:36379,172.17.45.12:36381,172.17.45.13:36379,172.17.45.13:36381
redis.timeOut = 100000
redis.redirection = 5 
redisColony.host1 = redis://172.17.46.11:36379
redisColony.host2 = redis://172.17.46.11:36381
redisColony.host3 = redis://172.17.45.12:36379
redisColony.host4 = redis://172.17.45.12:36381
redisColony.host5 = redis://172.17.45.13:36379
redisColony.host6 = redis://172.17.45.13:36381

使用方式與哨兵配置方式相同,@Autowired注入即可

主從部署方式(master/slave)

純java代碼

    //創(chuàng)建配置  
    Config config = new Config();  
    //指定使用主從部署方式  
    config.useMasterSlaveServers()  
        //設(shè)置redis主節(jié)點(diǎn)  
        .setMasterAddress("redis://127.0.0.1:6379")  
        //設(shè)置redis從節(jié)點(diǎn)  
        .addSlaveAddress("redis://127.0.0.1:6380", "redis://127.0.0.1:6381");  
    //創(chuàng)建客戶端(發(fā)現(xiàn)這一非常耗時(shí),基本在2秒-4秒左右)  
    RedissonClient redisson = Redisson.create(config);  
      
    //首先獲取redis中的key-value對(duì)象,key不存在沒(méi)關(guān)系  
    RBucket<String> keyObject = redisson.getBucket("key");  
    //如果key存在,就設(shè)置key的值為新值value  
    //如果key不存在,就設(shè)置key的值為value  
    keyObject.set("value");  
      
    //最后關(guān)閉RedissonClient  
    redisson.shutdown();  

spring整合redisson.xml

<beans xmlns="http://www.springframework.org/schema/beans"  
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
    xmlns:context="http://www.springframework.org/schema/context"  
    xmlns:redisson="http://redisson.org/schema/redisson"  
    xsi:schemaLocation="  
       http://www.springframework.org/schema/beans  
       http://www.springframework.org/schema/beans/spring-beans.xsd  
       http://www.springframework.org/schema/context  
       http://www.springframework.org/schema/context/spring-context.xsd  
       http://redisson.org/schema/redisson  
       http://redisson.org/schema/redisson/redisson.xsd">  
    <redisson:client id="masterSlave">  
        <redisson:master-slave-servers master-address="redis://127.0.0.1:6379">  
            <redisson:slave-address value="redis://127.0.0.1:6380" />  
            <redisson:slave-address value="redis://127.0.0.1:6381" />  
        </redisson:master-slave-servers>  
    </redisson:client>  
</beans>

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • idea中同一SpringBoot項(xiàng)目多端口啟動(dòng)

    idea中同一SpringBoot項(xiàng)目多端口啟動(dòng)

    本文主要介紹了idea中同一SpringBoot項(xiàng)目多端口啟動(dòng),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • springboot2+es7使用RestHighLevelClient的示例代碼

    springboot2+es7使用RestHighLevelClient的示例代碼

    本文主要介紹了springboot2+es7使用RestHighLevelClient的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • SSM框架下實(shí)現(xiàn)登錄注冊(cè)的示例代碼

    SSM框架下實(shí)現(xiàn)登錄注冊(cè)的示例代碼

    這篇文章主要介紹了SSM框架下實(shí)現(xiàn)登錄注冊(cè)的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • 簡(jiǎn)單的用java實(shí)現(xiàn)讀/寫(xiě)文本文件的示例

    簡(jiǎn)單的用java實(shí)現(xiàn)讀/寫(xiě)文本文件的示例

    同時(shí)也展示了如果從輸入流中讀出來(lái)內(nèi)容寫(xiě)入輸出流中(僅限文本流) 三個(gè)例子可以獨(dú)立存在,所以根據(jù)需要只看其中一個(gè)就行了。
    2008-07-07
  • SpringBoot多數(shù)據(jù)源配置詳細(xì)教程(JdbcTemplate、mybatis)

    SpringBoot多數(shù)據(jù)源配置詳細(xì)教程(JdbcTemplate、mybatis)

    這篇文章主要介紹了SpringBoot多數(shù)據(jù)源配置詳細(xì)教程(JdbcTemplate、mybatis),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • SpringCache結(jié)合Redis實(shí)現(xiàn)指定過(guò)期時(shí)間和到期自動(dòng)刷新

    SpringCache結(jié)合Redis實(shí)現(xiàn)指定過(guò)期時(shí)間和到期自動(dòng)刷新

    本文主要介紹了SpringCache結(jié)合Redis實(shí)現(xiàn)指定過(guò)期時(shí)間和到期自動(dòng)刷新,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-08-08
  • SpringBoot如何整合Springsecurity實(shí)現(xiàn)數(shù)據(jù)庫(kù)登錄及權(quán)限控制

    SpringBoot如何整合Springsecurity實(shí)現(xiàn)數(shù)據(jù)庫(kù)登錄及權(quán)限控制

    這篇文章主要給大家介紹了關(guān)于SpringBoot如何整合Springsecurity實(shí)現(xiàn)數(shù)據(jù)庫(kù)登錄及權(quán)限控制的相關(guān)資料,文中通過(guò)圖文以及實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2022-01-01
  • Servlet文件的上傳與下載詳解

    Servlet文件的上傳與下載詳解

    很多朋友不清楚在Servlet中怎么上傳下載文件,談到這個(gè)問(wèn)題,首先需要我們掌握開(kāi)發(fā)servlet的步驟,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2022-06-06
  • Java8利用Stream實(shí)現(xiàn)列表去重的方法詳解

    Java8利用Stream實(shí)現(xiàn)列表去重的方法詳解

    這篇文章主要為大家介紹了Java利用Stream實(shí)現(xiàn)列表去重的幾種方法詳解,文中的示例代碼講解詳細(xì),需要的小伙伴可以參考一下
    2022-04-04
  • Java反射機(jī)制的學(xué)習(xí)總結(jié)

    Java反射機(jī)制的學(xué)習(xí)總結(jié)

    總的來(lái)說(shuō),java反射機(jī)制是一個(gè)很好用的東西,用它可以解決很多死的東西,因?yàn)榉瓷錂C(jī)制的靈活行很大,有了他,我們就不要花太多的時(shí)間來(lái)寫(xiě)操做數(shù)據(jù)庫(kù)的代碼了,而是方法更多的時(shí)間在項(xiàng)目的邏輯功能上,這個(gè)可以很大的減少開(kāi)發(fā)時(shí)間,而且代碼的可讀性好
    2013-09-09

最新評(píng)論

金秀| 玉门市| 石家庄市| 平乡县| 墨脱县| 嫩江县| 威海市| 东安县| 砀山县| 信阳市| 绥德县| 平果县| 隆林| 奉化市| 那曲县| 思茅市| 万源市| 固阳县| 大厂| 沈丘县| 桑日县| 新化县| 疏附县| 拜城县| 永和县| 额济纳旗| 馆陶县| 辽宁省| 图木舒克市| 常州市| 陕西省| 铜梁县| 商河县| 安吉县| 林芝县| 通州市| 呼伦贝尔市| 平谷区| 崇文区| 高邮市| 平安县|