当前位置:
首页 >
前端技术
> javascript
>内容正文
javascript
Spring--Redis入门集成配置
生活随笔
收集整理的这篇文章主要介绍了
Spring--Redis入门集成配置
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
2019独角兽企业重金招聘Python工程师标准>>>
一、什么是Redis?
这两年对于 NoSQL(not only SQL) 的使用已经越加频繁,所以对于Redis是什么我们也不会太过陌生。简单来说,Redis就是一个开源的,Key-Value数据库。它的存在主要是为了减少对SQL的读取,来提高服务器响应时间,典型的空间换时间策略。
二、Redis的安装与命令
这个太多,请看官网: https://redis.io/
教程: http://www.runoob.com/redis/redis-tutorial.html
三、简单Java项目中的引用测试
1、导入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() {//设置IP和端口号Jedis jedis = new Jedis("127.0.0.1", 6379);//保存数据jedis.set("name", "imooc");//读取数据System.out.println(jedis.get("name"));//删除数据 // 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();//设置最大连接数config.setMaxTotal(10);//设置最大空闲连接数config.setMaxIdle(5);//设置连接IP端口号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"> <!-- 最大连接数 --> <property name="maxTotal" value="30"/><!-- 最大空闲连接数 --><property name="maxIdle" value="10"/><!-- 每次释放连接的最大数目 --><property name="numTestsPerEvictionRun" value="1024"/><!-- 释放连接的扫描间隔(毫秒) --><property name="timeBetweenEvictionRunsMillis" value="30000"/> <!-- 连接最小空闲时间 --><property name="minEvictableIdleTimeMillis" value="1800000"/> <!-- 连接空闲多久后释放, 当空闲时间>该值 且 空闲连接>最大空闲连接数 时直接释放 --><property name="softMinEvictableIdleTimeMillis" value="10000"/><!-- 获取连接时的最大等待毫秒数,小于零:阻塞不确定的时间,默认-1 --><property name="maxWaitMillis" value="1500"/><!-- 在获取连接的时候检查有效性, 默认false --><property name="testOnBorrow" value="true"/><!-- 在空闲时检查有效性, 默认false --><property name="testWhileIdle" value="true"/><!-- 连接耗尽时是否阻塞, false报异常,true阻塞直到超时, 默认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、项目源码: https://gitee.com/ge.yang/spring-demo/tree/master/spring-mvc
转载于:https://my.oschina.net/u/3681868/blog/1796571
《新程序员》:云原生和全面数字化实践50位技术专家共同创作,文字、视频、音频交互阅读总结
以上是生活随笔为你收集整理的Spring--Redis入门集成配置的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 区块链研习 | 什么是区块链的链外交易和
- 下一篇: 访谈Stuart Davidson:Sk