Spring + SpringMVC + Mybatis項目中redis的配置及使用


maven文件

<!-- redis -->
        <dependency>
            <groupId>redis.clients</groupId>
            <artifactId>jedis</artifactId>
            <version>${jedis.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-redis</artifactId>
            <version>${spring-data-redis.version}</version>
        </dependency>

1.redis配置文件redis.properties

#redis的服務器地址
redis.host=127.0.0.1
#redis的服務端口
redis.port=6379
#密碼
redis.password=
#鏈接數據庫
redis.default.db=0
#客戶端超時時間單位是毫秒
redis.timeout=100000
#最大連接數
redis.maxActive=300
#最大空閑數
redis.maxIdle=100
#最大建立連接等待時間
redis.maxWaitMillis=1000

 

2.spring-redis.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:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context-4.0.xsd">
    <context:property-placeholder location="classpath:redis.properties"/>
    <!-- Redis 配置 -->
    <bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
        <property name="maxTotal" value="${redis.maxActive}"/>
        <property name="maxIdle" value="${redis.maxIdle}"/>
        <property name="maxWaitMillis" value="${redis.maxWaitMillis}"/>
        <property name="testOnBorrow" value="true"/>
    </bean>

    <!-- redis單節點數據庫連接配置 -->
    <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>

    <!-- redisTemplate配置 -->
    <bean id="redisTemplate" class="org.springframework.data.redis.core.StringRedisTemplate">
        <property name="connectionFactory" ref="jedisConnectionFactory"/>
    </bean>
</beans>

3.web.xml中讀取spring配置文件

<context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>
            classpath*:spring-*.xml
        </param-value>
    </context-param>
    <context-param>
        <param-name>log4jConfigLocation</param-name>
        <param-value>classpath:log4j.properties</param-value>
    </context-param>

這樣redis在項目中就算配好了

4.redis工具類

package com.mz.usps.common.component;

import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;

import javax.annotation.Resource;
import java.util.concurrent.TimeUnit;

/**
 * Redis模板
 *
 * @author sjl
 * @date 2018-03-12 15:18
 **/
@Component
public class RedisCache {
    @Resource
    private RedisTemplate redisTemplate;

    public void setValue(Object key, Object value) {
        redisTemplate.opsForValue().set(key, value);
    }
    public void setValue(Object key, Object value, long timeout, TimeUnit unit) {
        redisTemplate.opsForValue().set(key, value, timeout, unit);
    }

    public Object getValue(Object key) {
        Object value = redisTemplate.opsForValue().get(key);
        return value;
    }
}

5.Redis使用實戰

在哪個類中使用

@Autowired
    RedisCache redisCache;
加到哪個類中

6.方法中存值

redisCache.setValue(token, "1", 1, TimeUnit.DAYS);
token為key值   "1"為value  1時間   TimeUnit.DAYS為時間單位
將key value 存入redis中一天

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM