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

Spring--Redis入门集成配置相关推荐

  1. redis入门——Spring整合篇

    redis入门--Spring整合篇 @(Redis)[服务器, 连接池, 集群, jedis, spring] redis入门Spring整合篇 Spring整合Redis redis整合分析 编写 ...

  2. Spring+SpringMVC+MyBatis集成(SSM)

    1.导入需要用到的jar包 <dependencies><!--Spring核心包--><dependency><groupId>org.springf ...

  3. redis与spring的完全集成

    2019独角兽企业重金招聘Python工程师标准>>> redis与spring的完全集成 博客分类: 缓存 下载spring-data-redis,gav如下: [html]  v ...

  4. Spring Boot Redis 入门

    本文,我们基于 Spring Boot 2.X 版本. 1. 概述 在快速入门 Spring Boot 整合 Redis 之前,我们先来做个简单的了解.在 Spring 的生态中,我们使用 Sprin ...

  5. Spring Boot 入门(五):集成 AOP 进行日志管理

    本篇文章是接着 Spring boot 入门(四):集成 Shiro 实现登陆认证和权限管理写的,按照前面几篇博客的教程,可以搭建一个简单的项目,主要包含了 Pagehelper+MyBatis 分页 ...

  6. RedisUtil - Redis功能介绍,五种数据类型的使用,Spring和Redis的集成

    RedisUtil 介绍  最全的Java操作Redis的工具类,封装了对Redis五种基本类型的各种操作,力求符合Redis的原生操作,使用StringRedisTemplate实现! 快速导航: ...

  7. Spring boot入门(三):集成AdminLTE(Freemarker),结合generate代码生成器,利用DataTable和PageHelper分页...

    Spring boot入门(三):SpringBoot集成结合AdminLTE(Freemarker),利用generate自动生成代码,利用DataTable和PageHelper进行分页显示 标题 ...

  8. Spring Boot入门教程(四十):微信支付集成-刷卡支付

    分享一个朋友的人工智能教程.比较通俗易懂,风趣幽默,感兴趣的朋友可以去看看. 一:准备工作 使用微信支付需要先开通服务号,然后还要开通微信支付,最后还要配置一些开发参数,过程比较多. 申请服务号(企业 ...

  9. Spring Boot概述与入门特点配置方式注入方式yim配置文件与多文件配置Spring Boot自动配置原理lombok应用

    1. Spring Boot概述 Spring Boot是Spring项目中的一个子工程,与我们所熟知的Spring-framework 同属于spring的产品: 首页Spring Boot简介可以 ...

最新文章

  1. 算法篇 - 二叉搜索树
  2. 笔记-知识产权与标准化知识-GB/T9385-2006计算机软件文档编制规范
  3. qt如何讲自己定义的label放到mainwindow中_如何更改SAS变量格式?
  4. 耍了一下 UncaughtErrorEvents
  5. win10+deepin双系统安装方法(UEFI+GPT)
  6. 光纤 matlab,matlab – 均衡光纤通道的最小均方
  7. 多普达,D600,Coreplayer可用的序列号(版本未查看)。
  8. 立方体和球形体积的计算
  9. 宠物管理系统mysql_基于java+MySQL的宠物管理系统
  10. 百度网盘链接在线解析网站_最近很热闹啊,免登陆百度网盘高速链接转换工具...
  11. 第八章 DirectX 3D模型加载和骨骼动画(上)
  12. 阿里云携手开源中国众包平台发布百万悬赏项目
  13. homework2的进展
  14. 浅谈极值点偏移(化为单变量以及ALG不等式)
  15. 招银网络科技2019年春招笔试面试总结
  16. 网警如何查虚拟服务器,网警查高防云服务器
  17. 两面夹定理_故事的两面
  18. 算法复杂性分析及运算规则证明(一)
  19. 支付宝集福攻略,作为程序员的你集福了么?
  20. ocsp和ldap 区别_《脑梗塞ocsp分型和治疗》.ppt

热门文章

  1. java 下载处于挂起状态_即使脚本执行完成,Java也会挂起。
  2. AlarmManager深入浅出
  3. pom war jar的区别
  4. 项目启动时socket自动启动_spring boot 项目在启动时调用接口
  5. mysql pdo 获取最后一条sql_一条SQL如何在MYSQL中执行的
  6. linux内核实验平台搭建,搭建自己的Linux实验系统(一)
  7. 进程间的通信方式(二):管道Pipe和命令管道FIFO
  8. 一次完整的HTTP事务过程--超详细!
  9. Windows Server 2008 R2 DNS 服务器迁移方法
  10. 没有可用于当前位置的源代码