美文网首页
使用SpringDataTemplate整合Redis

使用SpringDataTemplate整合Redis

作者: tingshuo123 | 来源:发表于2018-10-11 12:28 被阅读16次

Demo 结构


image.png

首先引入依赖
pom.xml

<?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:p="http://www.springframework.org/schema/p"
    xmlns:tx="http://www.springframework.org/schema/tx"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="      http://www.springframework.org/schema/beans      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd      http://www.springframework.org/schema/tx      http://www.springframework.org/schema/tx/spring-tx-3.0.xsd      http://www.springframework.org/schema/context      http://www.springframework.org/schema/context/spring-context-3.0.xsd">

    <!-- 加载配置文件 -->
    <context:property-placeholder location="classpath:redis.properties" ignore-unresolvable="true"/>
    
    <!-- redis连接池参数 -->
    <bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
        <property name="maxTotal" value="${redis.maxTotal}"></property>
        <property name="maxIdle" value="${redis.maxIdle}"></property>
        <property name="maxWaitMillis" value="${redis.maxWaitMillis}"></property>
        <property name="testOnBorrow" value="${redis.testOnBorrow}"></property>
    </bean>
    
    <!-- 连接工厂 -->
    <bean id="jedisConnectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">
        <property name="hostName" value="${redis.host}"></property>
        <property name="port" value="${redis.port}"></property>
        <!-- 如果有密码 -->
        <!-- <property name="password" value="${redis.passwrod}"></property> -->
        <property name="poolConfig" ref="jedisPoolConfig"></property>
    </bean>
    
    <!-- Spring Redis模板 -->
    <bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate">
        <property name="connectionFactory" ref="jedisConnectionFactory"></property>
        <property name="keySerializer">
            <bean class="org.springframework.data.redis.serializer.StringRedisSerializer" />
        </property>
        <property name="valueSerializer">
            <bean class="org.springframework.data.redis.serializer.JdkSerializationRedisSerializer"></bean>
        </property>
        
        <!-- 开启事务 -->
        <property name="enableTransactionSupport" value="true"></property>
    </bean>
</beans>

redis.properties

# 主机地址
redis.host=132.232.6.208
# 端口
redis.port=6381
#如果有密码
#redis.passwrod=

# 最大连接数
redis.maxTotal=1000
# 最大空闲数
redis.maxIdle=32
# 建立连接最长等待时间
redis.maxWaitMillis=10000
# 保证所有jedis实例可用
redis.testOnBorrow=true

redis-context.xml

<?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:p="http://www.springframework.org/schema/p"
    xmlns:tx="http://www.springframework.org/schema/tx"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="      http://www.springframework.org/schema/beans      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd      http://www.springframework.org/schema/tx      http://www.springframework.org/schema/tx/spring-tx-3.0.xsd      http://www.springframework.org/schema/context      http://www.springframework.org/schema/context/spring-context-3.0.xsd">

    <!-- 加载配置文件 -->
    <context:property-placeholder location="classpath:redis.properties" ignore-unresolvable="true"/>
    
    <!-- redis连接池 -->
    <bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
        <property name="maxTotal" value="${redis.maxTotal}"></property>
        <property name="maxIdle" value="${redis.maxIdle}"></property>
        <property name="maxWaitMillis" value="${redis.maxWaitMillis}"></property>
        <property name="testOnBorrow" value="${redis.testOnBorrow}"></property>
    </bean>
    
    <!-- 连接工厂 -->
    <bean id="jedisConnectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">
        <property name="hostName" value="${redis.host}"></property>
        <property name="port" value="${redis.port}"></property>
        <!-- 如果有密码 -->
        <!-- <property name="password" value="${redis.passwrod}"></property> -->
        <property name="poolConfig" ref="jedisPoolConfig"></property>
    </bean>
    
    <!-- Spring Redis模板 -->
    <bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate">
        <property name="connectionFactory" ref="jedisConnectionFactory"></property>
        <property name="keySerializer">
            <bean class="org.springframework.data.redis.serializer.StringRedisSerializer" />
        </property>
        <property name="valueSerializer">
            <bean class="org.springframework.data.redis.serializer.JdkSerializationRedisSerializer"></bean>
        </property>
        
        <!-- 开启事务 -->
        <property name="enableTransactionSupport" value="true"></property>
    </bean>
</beans>

可以通过Spring模板获取对 reids 各种类型的操作命令


image.png

使用 Redis 存储的对象必须实现序列换接口 Serializable

相关文章

网友评论

      本文标题:使用SpringDataTemplate整合Redis

      本文链接:https://www.haomeiwen.com/subject/jjcbaftx.html