zoukankan      html  css  js  c++  java
  • spring集成Redis(单机、集群)

    一、单机redis配置

    1. 配置redis连接池

    <bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
            <!-- 控制一个pool可分配多少个jedis实例 -->
            <property name="maxTotal" value="${redis.maxTotal}"/>
            <!-- 控制一个pool最多有多少个状态为idle(空闲)的jedis实例 -->
            <property name="maxIdle" value="${redis.maxIdle}"/>
            <!-- 表示当borrow一个jedis实例时,最大的等待时间,如果超过等待时间,则直接抛出JedisConnectionException -->
            <property name="maxWaitMillis" value="${redis.maxWaitMillis}"/>
            <property name="testOnBorrow" value="true"/>
            <property name="testOnReturn" value="true"/>
        </bean>
    
        <!-- redis的连接池pool,不是必选项:timeout/password  -->
        <bean id="jedisConnectionFactory"
              class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">
            <property name="hostName" value="${redis.host}"/>
            <property name="port" value="${redis.port}"/>
            <property name="password" value="${redis.passWord}"/>
            <property name="poolConfig" ref="jedisPoolConfig"/>
        </bean>

    2. 配置redis工具类

    <bean id="stringRedisTemplate" class="org.springframework.data.redis.core.StringRedisTemplate">
            <property name="connectionFactory" ref="jedisConnectionFactory"/>
        </bean>
    
        <!-- 配置Redis自定义工具类 -->
        <bean id="springRedis" class="com.wslook.common.redis.SpringRedis">
            <property name="redisKeyPrefix" value="${redis.key.prefix}"/>
            <property name="stringRedisTemplate" ref="stringRedisTemplate"/>
        </bean>

    3. properties文件

    二、哨兵模式配置


    1. 配置redis连接池

    <!--配置JedisPoolConfig-->
        <bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
            <!-- 控制一个pool可分配多少个jedis实例 -->
            <property name="maxTotal" value="${redis.sentinel.maxTotal}"/>
            <!-- 控制一个pool最多有多少个状态为idle(空闲)的jedis实例 -->
            <property name="maxIdle" value="${redis.sentinel.maxIdle}"/>
            <!-- 表示当borrow一个jedis实例时,最大的等待时间,如果超过等待时间,则直接抛出JedisConnectionException -->
            <property name="maxWaitMillis" value="${redis.sentinel.maxWaitMillis}"/>
            <property name="testOnBorrow" value="true"/>
            <property name="testOnReturn" value="true"/>
        </bean>
    
        <!-- 构造JedisConnectionFactory实例 -->
        <bean id="jedisConnectionFactory"
              class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">
            <constructor-arg name="sentinelConfig" ref="redisSentinelConfiguration"/>
            <constructor-arg name="poolConfig" ref="jedisPoolConfig"/>
            <property name="password" value="${redis.sentinel.password}"/>
        </bean>

    2. 配置Redis Sentinel

    • 只需配置集群名称和哨兵地址即可
    <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="mymaster"/>
                </bean>
            </property>
            <property name="sentinels">
                <set>
                    <bean name="redisNode1" class="org.springframework.data.redis.connection.RedisNode">
                        <constructor-arg name="host" value="${redis.sentinel.node1.host}"/>
                        <constructor-arg name="port" value="${redis.sentinel.node1.port}"/>
                    </bean>
                    <bean name="redisNode2" class="org.springframework.data.redis.connection.RedisNode">
                        <constructor-arg name="host" value="${redis.sentinel.node2.host}"/>
                        <constructor-arg name="port" value="${redis.sentinel.node2.port}"/>
                    </bean>
                </set>
            </property>
        </bean>

    3. 配置redis工具类

    <bean id="stringRedisTemplate" class="org.springframework.data.redis.core.StringRedisTemplate">
            <property name="connectionFactory" ref="jedisConnectionFactory"/>
        </bean>
    
        <!-- 配置springRedis -->
        <bean id="springRedis" class="com.wslook.common.redis.SpringRedis">
            <property name="redisKeyPrefix" value="${redis.sentinel.key.prefix}"/>
            <property name="stringRedisTemplate" ref="stringRedisTemplate"/>
        </bean>

    4. properties文件

    三、Cluster集群配置


    1. 配置redis连接池

    <!--配置JedisPoolConfig-->
        <bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
            <!-- 控制一个pool可分配多少个jedis实例 -->
            <property name="maxTotal" value="${redis.cluster.maxTotal}"/>
            <!-- 控制一个pool最多有多少个状态为idle(空闲)的jedis实例 -->
            <property name="maxIdle" value="${redis.cluster.maxIdle}"/>
            <!-- 表示当borrow一个jedis实例时,最大的等待时间,如果超过等待时间,则直接抛出JedisConnectionException -->
            <property name="maxWaitMillis" value="${redis.cluster.maxWaitMillis}"/>
            <property name="testOnBorrow" value="true"/>
            <property name="testOnReturn" value="true"/>
        </bean>
    
        <!-- 构造JedisConnectionFactory实例 -->
        <bean id="jedisConnectionFactory"
              class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">
            <constructor-arg name="clusterConfig" ref="redisClusterConfiguration"/>
            <constructor-arg name="poolConfig" ref="jedisPoolConfig"/>
            <property name="password" value="${redis.cluster.password}"/>
        </bean>

    2. 配置Cluster节点

    <bean id="redisClusterConfiguration" class="org.springframework.data.redis.connection.RedisClusterConfiguration">
            <property name="clusterNodes">
                <set>
                    <bean name="redisNode0" class="org.springframework.data.redis.connection.RedisNode">
                        <constructor-arg name="host" value="${redis.cluster.node.host}"/>
                        <constructor-arg name="port" value="${redis.cluster.node.port}"/>
                    </bean>
                    <bean name="redisNode1" class="org.springframework.data.redis.connection.RedisNode">
                        <constructor-arg name="host" value="${redis.cluster.node1.host}"/>
                        <constructor-arg name="port" value="${redis.cluster.node1.port}"/>
                    </bean>
                    <bean name="redisNode2" class="org.springframework.data.redis.connection.RedisNode">
                        <constructor-arg name="host" value="${redis.cluster.node2.host}"/>
                        <constructor-arg name="port" value="${redis.cluster.node2.port}"/>
                    </bean>
                    <bean name="redisNode3" class="org.springframework.data.redis.connection.RedisNode">
                        <constructor-arg name="host" value="${redis.cluster.node3.host}"/>
                        <constructor-arg name="port" value="${redis.cluster.node3.port}"/>
                    </bean>
                    <bean name="redisNode4" class="org.springframework.data.redis.connection.RedisNode">
                        <constructor-arg name="host" value="${redis.cluster.node4.host}"/>
                        <constructor-arg name="port" value="${redis.cluster.node4.port}"/>
                    </bean>
                    <bean name="redisNode5" class="org.springframework.data.redis.connection.RedisNode">
                        <constructor-arg name="host" value="${redis.cluster.node5.host}"/>
                        <constructor-arg name="port" value="${redis.cluster.node5.port}"/>
                    </bean>
                </set>
            </property>
        </bean>

    3. 配置redis工具类

    <bean id="stringRedisTemplate" class="org.springframework.data.redis.core.StringRedisTemplate">
            <property name="connectionFactory" ref="jedisConnectionFactory"/>
        </bean>
    
        <!-- 配置springRedis -->
        <bean id="springRedis" class="com.wslook.common.redis.SpringRedis">
            <property name="redisKeyPrefix" value="${redis.cluster.key.prefix}"/>
            <property name="stringRedisTemplate" ref="stringRedisTemplate"/>
        </bean>

    4. properties文件

     

  • 相关阅读:
    hdu 5723 Abandoned country 最小生成树 期望
    OpenJ_POJ C16G Challenge Your Template 迪杰斯特拉
    OpenJ_POJ C16D Extracurricular Sports 打表找规律
    OpenJ_POJ C16B Robot Game 打表找规律
    CCCC 成都信息工程大学游记
    UVALive 6893 The Big Painting hash
    UVALive 6889 City Park 并查集
    UVALive 6888 Ricochet Robots bfs
    UVALive 6886 Golf Bot FFT
    UVALive 6885 Flowery Trails 最短路
  • 原文地址:https://www.cnblogs.com/wslook/p/9152860.html
Copyright © 2011-2022 走看看