1、基於SSM的Redis環境配置
前提是你的開發電腦安裝和配置好了redis,若是沒安裝請看Window配置Redis環境和簡單使用css
1.一、pom文件中引入redis客戶端jar包(pom.xml)
<!-- https://mvnrepository.com/artifact/redis.clients/jedis --> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0</version> </dependency>
1.二、redis屬性配置文件(redis.properties)
#redis.host=127.0.0.1 redis.host=localhost redis.port=6379 redis.password=你的redis密碼 redis.maxIdle=50 redis.maxTotal=100 redis.maxWaitMillis=3000 redis.testOnBorrow=true redis.timeout=5000
1.三、spring和redis的配置文件(spring-redis.xml)
指定了redis屬性配置文件的路徑html
<?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:util="http://www.springframework.org/schema/util" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd"> <util:properties id="redisConfig" location="classpath:/config/redis.properties"></util:properties> <bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig"> <property name="maxIdle" value="#{redisConfig['redis.maxIdle']}" /> <property name="maxTotal" value="#{redisConfig['redis.maxTotal']}" /> <property name="maxWaitMillis" value="#{redisConfig['redis.maxWaitMillis']}" /> <property name="testOnBorrow" value="#{redisConfig['redis.testOnBorrow']}" /> </bean> <bean id="jedisPool" class="redis.clients.jedis.JedisPool"> <constructor-arg index="0" ref="jedisPoolConfig" /> <!-- 端口,默認6379 --> <constructor-arg index="1" value="#{redisConfig['redis.host']}" name="host" type="java.lang.String"/> <constructor-arg index="2" value="#{redisConfig['redis.port']}" name="port" type="int"/> <constructor-arg index="3" value="#{redisConfig['redis.timeout']}" name="timeout" type="int"/> <constructor-arg index="4" value="#{redisConfig['redis.password']}" name="password" type="java.lang.String"/> </bean> </beans>
1.四、springmvc中引入Spring和redis的配置(spring-mvc.xml)
最下方利用import標籤引入redis的配置文件java
<?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" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd"> <!-- 註解掃描包 --> <context:component-scan base-package="com.king.weixin"/> <!-- 開啓註解 --> <mvc:annotation-driven/> <!-- 配置靜態資源,直接映射到對應的文件夾,不被DispatcherServlet處理,3.04新增功能,須要從新設置spring-mvc-3.0.xsd --> <mvc:resources mapping="/img/**" location="/img/" /> <mvc:resources mapping="/js/**" location="/js/" /> <mvc:resources mapping="/css/**" location="/css/" /> <mvc:resources mapping="/html/**" location="/html/" /> <mvc:resources mapping="/tinymce/**" location="/tinymce/" /> <mvc:resources mapping="/upload/**" location="/upload/" /> <!-- 定義跳轉的文件的先後綴 ,視圖模式配置--> <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <!-- 這裏的配置個人理解是自動給後面action的方法return的字符串加上前綴和後綴,變成一個 可用的url地址 --> <property name="prefix" value="/" /> <property name="suffix" value=".jsp" /> </bean> <!-- redis配置 --> <import resource="spring-redis.xml"/> </beans>
2、測試和驗證
採用jedis獲取redis資源和操做redis,添加值而且給值設置生命週期web
public String addStringValue(String key, String value, int expireSeconds) { String result = null; Jedis jedis = null; try { jedis = jedisManager.getResource(); //result = jedis.set(key, value); result = jedis.set(key,value).toString(); if (expireSeconds != 0) { //EXPIRE key seconds 爲給定 key 設置生存時間,當 key 過時時(生存時間爲 0 ),它會被自動刪除。 jedis.expire(key, expireSeconds); } } catch (Exception e) { e.printStackTrace(); } finally { jedisManager.returnResource(jedis); } return result; }
獲取值得生命週期方法,ttl (key)redis
public long getStringValueTTLByKey(String key){ long result = 0; Jedis jedis = null; try { jedis = jedisManager.getResource(); //Redis TTL 命令以秒爲單位返回 key 的剩餘過時時間。 result = jedis.ttl(key); } catch (Exception e) { e.printStackTrace(); } finally { jedisManager.returnResource(jedis); } return result; }
在命令行查看redis中的全部key值和剩餘生命週期,以下圖可使用keys * 查看全部緩存的key ,利用TTL key能夠查看該key值對應對象的剩餘生命週期spring