spring整合redis单机版与redis集群版

前言:

有时候我们部署了集群版的redis,还希望开发的时候使用单机版(毕竟省事儿),但是比较常用的Java客户端(Jedis和Lettuce)的单机和集群api是不统一的。经过调研,发现spring-data-redis可以实现这个需求,本文就是将spring-data-redis和Jedis整合,来统一操作的API。

本文假设你已熟悉spring-data-redis和Jedis的基本使用,这些教程Google或者百度一下一大堆的。

这里也只是简单的做个笔记,看这篇只是给你一定的思路,代码也只是一个参考!!!关键是一个逻辑的思维....

一:配置,天才第一步,全靠依赖库,站在巨人的肩膀不断去学习,注意1.8.12版本要求spring 4.3.17以上

<dependency>
    <groupId>redis.clients</groupId>
    <artifactId>jedis</artifactId>
    <version>2.9.0</version>
</dependency>
<dependency>
    <groupId>org.springframework.data</groupId>
    <artifactId>spring-data-redis</artifactId>
    <version>1.8.12.RELEASE</version>
</dependency>

二:spring-data-redis配置,这样的话,你需要使用哪个就直接开户注释即可

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="
       http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

    <bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
        <property name="maxIdle" value="50"/>
        <property name="maxTotal" value="100"/>
        <property name="maxWaitMillis" value="20000"/>
    </bean>

    <bean id="redisTemplate" class="org.springframework.data.redis.core.StringRedisTemplate">
        <constructor-arg name="connectionFactory" ref="jedisConnectionFactory"/>
    </bean>

    <!-- 单机配置 -->
    <!--<bean id="jedisConnectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">-->
        <!--<property name="hostName" value="127.0.0.1"/>-->
        <!--<property name="port" value="6379"/>-->
        <!--<property name="timeout" value="20000"/>-->
        <!--<property name="poolConfig" ref="jedisPoolConfig" />-->
    <!--</bean>-->

    <!-- 集群配置 -->
    <bean id="redisClusterConfiguration" class="org.springframework.data.redis.connection.RedisClusterConfiguration">
        <property name="maxRedirects" value="3"/>
        <property name="clusterNodes">
            <set>
                <bean class="org.springframework.data.redis.connection.RedisClusterNode">
                    <constructor-arg name="host" value="127.0.0.1"/>
                    <constructor-arg name="port" value="6481"/>
                </bean>
                <bean class="org.springframework.data.redis.connection.RedisClusterNode">
                    <constructor-arg name="host" value="127.0.0.1"/>
                    <constructor-arg name="port" value="6482"/>
                </bean>
                <bean class="org.springframework.data.redis.connection.RedisClusterNode">
                    <constructor-arg name="host" value="127.0.0.1"/>
                    <constructor-arg name="port" value="6483"/>
                </bean>
                <bean class="org.springframework.data.redis.connection.RedisClusterNode">
                    <constructor-arg name="host" value="127.0.0.1"/>
                    <constructor-arg name="port" value="6484"/>
                </bean>
                <bean class="org.springframework.data.redis.connection.RedisClusterNode">
                    <constructor-arg name="host" value="127.0.0.1"/>
                    <constructor-arg name="port" value="6485"/>
                </bean>
                <bean class="org.springframework.data.redis.connection.RedisClusterNode">
                    <constructor-arg name="host" value="127.0.0.1"/>
                    <constructor-arg name="port" value="6486"/>
                </bean>
            </set>
        </property>
    </bean>

    <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="timeout" value="20000"/>
    </bean>
</beans>

如果觉得此篇文章,没有看懂,没关系,请继续加油,redis的资源网上相对来说,目前也很多了。小编我这里也是一直在学习当中,目前也技术也菜,还在不断学习中................

猜你喜欢

转载自blog.csdn.net/qq_30764991/article/details/81606430