欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 前端技术 > javascript >内容正文

javascript

Spring--Redis入门集成配置

发布时间:2025/4/16 javascript 1 豆豆
生活随笔 收集整理的这篇文章主要介绍了 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入门集成配置的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。