javascript
Spring--Redis入门集成配置
2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>
一、什么是Redis?
這兩年對(duì)于 NoSQL(not only SQL) 的使用已經(jīng)越加頻繁,所以對(duì)于Redis是什么我們也不會(huì)太過陌生。簡單來說,Redis就是一個(gè)開源的,Key-Value數(shù)據(jù)庫。它的存在主要是為了減少對(duì)SQL的讀取,來提高服務(wù)器響應(yīng)時(shí)間,典型的空間換時(shí)間策略。
二、Redis的安裝與命令
這個(gè)太多,請(qǐng)看官網(wǎng):??https://redis.io/? ? ? ? ? ?
教程:?http://www.runoob.com/redis/redis-tutorial.html
三、簡單Java項(xiàng)目中的引用測試
1、導(dǎo)入Jar包:?jedis-2.9.0.jar 、commons-pool2-2.5.0.jar
2、測試:
package redis;import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Set;import org.junit.Test;import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis.clients.jedis.JedisPoolConfig;public class RedisTest {/*** 引入jar包:* jedis-2.9.0.jar* commons-pool2-2.5.0.jar * **//*** TODO Redis單例測試* @author geYang* @date 2018-04-07 16:39*/@Testpublic void demo1() {//設(shè)置IP和端口號(hào)Jedis jedis = new Jedis("127.0.0.1", 6379);//保存數(shù)據(jù)jedis.set("name", "imooc");//讀取數(shù)據(jù)System.out.println(jedis.get("name"));//刪除數(shù)據(jù) // jedis.del("name");System.out.println(jedis.get("name"));//釋放資源jedis.close();}/*** TODO 連接池測試* @author geYang* @date 2018-04-07 16:41*/@Testpublic void demo2() {//連接池配置JedisPoolConfig config = new JedisPoolConfig();//設(shè)置最大連接數(shù)config.setMaxTotal(10);//設(shè)置最大空閑連接數(shù)config.setMaxIdle(5);//設(shè)置連接IP端口號(hào)JedisPool pool = new JedisPool(config, "127.0.0.1", 6379);Jedis jedis = null;try {jedis = pool.getResource();jedis.set("name", "geYang");System.out.println(jedis.get("name"));} catch (Exception e) {e.printStackTrace();} finally {if (jedis != null) {jedis.close();}if (pool != null) {pool.close();}}}/*** TODO Keys測試* @author geYang* @date 2018-04-08 10:24*/@Testpublic void demo3() {Jedis jeds = new Jedis("127.0.0.1", 6379);Set<String> keys = jeds.keys("*");Iterator<String> it = keys.iterator() ; while(it.hasNext()){ String key = it.next(); System.out.println(key); }jeds.close();}/*** TODO List測試* @author geYang* @date 2018-04-08 10:27*/@Testpublic void demo4() {Jedis jedis = new Jedis("127.0.0.1", 6379);System.out.println("連接成功");//存jedis.lpush("mylist", new String[] {"1","2","3"});jedis.lpush("mylist", "a");jedis.lpush("mylist", "b");jedis.lpush("mylist", "c");//讀List<String> list = jedis.lrange("mylist", 0, -1);for (String str : list) {System.out.println(str);}jedis.close();}/*** TODO Hash測試* @author geYang* @date 2018-04-08 10:46*/@Testpublic void demo5() {Jedis jedis = new Jedis("127.0.0.1", 6379);System.out.println("連接成功");// jedis.hset("myhash", "tel", "18281916257");HashMap<String,String> hashMap = new HashMap<>();hashMap.put("sex", "man");hashMap.put("address", "China");jedis.hmset("myhash", hashMap);Map<String, String> map = jedis.hgetAll("myhash");System.out.println(map);jedis.close();}}四、Spring中集成
1、Maven倉庫:
<!-- Not Only SQL REDIS --><dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>2.9.0</version></dependency>2、spring-redis.xml(需要將該文件加載入spring上下文) ,? 配置:
<?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/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsd"><context:property-placeholder location="classpath:config.properties"/><bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig"> <!-- 最大連接數(shù) --> <property name="maxTotal" value="30"/><!-- 最大空閑連接數(shù) --><property name="maxIdle" value="10"/><!-- 每次釋放連接的最大數(shù)目 --><property name="numTestsPerEvictionRun" value="1024"/><!-- 釋放連接的掃描間隔(毫秒) --><property name="timeBetweenEvictionRunsMillis" value="30000"/> <!-- 連接最小空閑時(shí)間 --><property name="minEvictableIdleTimeMillis" value="1800000"/> <!-- 連接空閑多久后釋放, 當(dāng)空閑時(shí)間>該值 且 空閑連接>最大空閑連接數(shù) 時(shí)直接釋放 --><property name="softMinEvictableIdleTimeMillis" value="10000"/><!-- 獲取連接時(shí)的最大等待毫秒數(shù),小于零:阻塞不確定的時(shí)間,默認(rèn)-1 --><property name="maxWaitMillis" value="1500"/><!-- 在獲取連接的時(shí)候檢查有效性, 默認(rèn)false --><property name="testOnBorrow" value="true"/><!-- 在空閑時(shí)檢查有效性, 默認(rèn)false --><property name="testWhileIdle" value="true"/><!-- 連接耗盡時(shí)是否阻塞, false報(bào)異常,true阻塞直到超時(shí), 默認(rèn)true --> <property name="blockWhenExhausted" value="false"/></bean> <bean id="jedisPool" class="redis.clients.jedis.JedisPool"><constructor-arg name="poolConfig" ref="jedisPoolConfig"/><constructor-arg name="host" value="${redis.host}"/><constructor-arg name="port" value="${redis.port}"/></bean></beans>3、簡單使用:
package com.gy.spring.mvc.service.impl;import java.util.List;import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service;import com.gy.spring.mvc.service.RedisService;import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool;@Service public class RedisServiceImpl implements RedisService {@Autowiredprivate JedisPool jedisPool;@Overridepublic String get(String key) {Jedis jedis = jedisPool.getResource();String value = null;try {value = jedis.get(key);} catch (Exception e) {e.printStackTrace();} finally {close(jedis);}return value;}@Overridepublic void set(String key, String value) {Jedis jedis = jedisPool.getResource();try {jedis.set(key, value);} catch (Exception e) {e.printStackTrace();} finally {close(jedis);}}@Overridepublic List<String> getList(String key,long start,long end) {Jedis jedis = jedisPool.getResource();List<String> list = null;try {list = jedis.lrange(key, start, end);} catch (Exception e) {e.printStackTrace();} finally {close(jedis);}return list;}@Overridepublic void set(String key, List<String> value) {Jedis jedis = jedisPool.getResource();try {} catch (Exception e) {e.printStackTrace();} finally {close(jedis);}}@Overridepublic void del(String key) {Jedis jedis = jedisPool.getResource();try {jedis.del(key);} catch (Exception e) {e.printStackTrace();} finally {close(jedis);}}/*** TODO 釋放資源* @param jedis* @author geYang* @date 2018-04-10 10:13*/private void close(Jedis jedis) {if(jedis!=null) {jedis.close();}}}4、項(xiàng)目源碼:?https://gitee.com/ge.yang/spring-demo/tree/master/spring-mvc
轉(zhuǎn)載于:https://my.oschina.net/u/3681868/blog/1796571
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的Spring--Redis入门集成配置的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 区块链研习 | 什么是区块链的链外交易和
- 下一篇: Spring源码学习笔记1