spring集成Redis(单机、集群)

摘要:
--控制可以为池分配多少jedis实例--˃2。配置Redis工具类˃3.属性文件2.哨兵模式配置1.配置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文件

spring集成Redis(单机、集群)第1张

二、哨兵模式配置

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文件

spring集成Redis(单机、集群)第2张

三、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文件

spring集成Redis(单机、集群)第3张

免责声明:文章转载自《spring集成Redis(单机、集群)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇STM32代码自动生成工具使用说明ORACLE 如何判断某字段是否小于0下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

CentOS7.6搭建redis4.0.1 cluster集群(带密码)

1. 操作系统信息: $ uname -a   Linux iZbp11d57wmumnwuihb2czZ 3.10.0-957.5.1.el7.x86_64 #1 SMP Fri Feb 1 14:54:57 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux $ cat /proc/version   Linux versi...

Redis 的内存

目录 Redis 的内存 内存消耗 内存使用统计 内存消耗划分 子进程内存消耗 内存管理 设置内存上限 动态调整内存上限 内存回收策略 内存优化 Redis 的内存 内存消耗 内存使用统计 使用info memory 命令查看内存相关指标: 属性名 属性说明 used_memory redis分配器的内存总量 use...

Linux下Redis开机自启(Centos)

废话少说,直接来步骤: 1、设置redis.conf中daemonize为yes,确保守护进程开启。 2、编写开机自启动脚本 vi /etc/init.d/redis 脚本内容如下: # chkconfig: 2345 10 90 # description: Start and Stop redis PATH=/usr/local/bin...

2019 家居云java面试笔试题 (含面试题解析)

  本人5年开发经验、18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴、今日头条、家居云等公司offer,岗位是Java后端开发,因为发展原因最终选择去了家居云,入职一年时间了,也成为了面试官,之前面试了很多家公司,感觉大部分公司考察的点都差不多,趁空闲时间,将自己的心得记下来,希望能给正在找或者准备找工作的朋友提供一点帮助。   下面提的问题可以...

在ASP.NET WebAPI 中使用缓存【Redis】

初步看了下CacheCow与OutputCache,感觉还是CacheOutput比较符合自己的要求,使用也很简单 PM>Install-Package Strathweb.CacheOutput.WebApi2 基础使用 CacheOutput特性 [Route("get")] [CacheOutput(Cli...

python+mitmproxy抓包过滤+redis消息订阅+websocket实时消息发送,日志实时输出到web界面

本实例实现需求 在游戏SDK测试中,经常需要测试游戏中SDK的埋点日志是否接入正确。本实例通过抓包(客户端http/https 请求)来判定埋点日志是是否接入正确。 实现细节:使用django项目,后端采用python mitmdump 扩展脚本“log_handler.py”实时抓取与过滤4399SDK 客户端日志,将数据处理成约定需要的格式,保存和发布...