环境的搭建参见:http://www.cnblogs.com/yangzhilong/p/4729857.html

下面直接贴具体的测试代码:

 package com.yzl;

 import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map; import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.util.SerializationUtils; import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool; /**
* RedisApp的测试类
*
* @author yangzhilong
* @see [相关类/方法](可选)
* @since [产品/模块版本] (可选)
*/
public class RedisApp4Test {
private JedisPool pool;
private ApplicationContext app;
private Jedis jedis; @Before
public void before(){
app = new ClassPathXmlApplicationContext("spring-config.xml");
pool = app.getBean(JedisPool.class);
jedis = pool.getResource();
} @Test
public void test(){
//string
operationString(); //map
operationMap(); //list
operationList(); //自定义对象
operationMyObject();
} /**
*
* 功能描述: <br>
* 操作String
*
* @see [相关类/方法](可选)
* @since [产品/模块版本](可选)
*/
private void operationString(){
jedis.set("name", "hello");
jedis.append("name", " redis");
String value = jedis.get("name");
System.out.println("get value :" + value);
} /**
*
* 功能描述: <br>
* 操作Map
*
* @see [相关类/方法](可选)
* @since [产品/模块版本](可选)
*/
private void operationMap(){
Map<String, String> map = new HashMap<String, String>();
map.put("key1", "value1");
map.put("key2", "value2");
jedis.hmset("map", map);
//这里可以一次读取多个key
List<String> result = jedis.hmget("map", "key1" , "key2");
for(String str : result){
System.out.println("get value from map : " + str);
}
} /**
*
* 功能描述: <br>
* 操作List
*
* @see [相关类/方法](可选)
* @since [产品/模块版本](可选)
*/
private void operationList(){
List<String> result = Arrays.asList("item1","item2");
for(String str : result){
jedis.lpush("list", str);
}
jedis.lpush("list", "value3");
result = jedis.lrange("list", 0, -1);
for(String str : result){
System.out.println("get value from list : " + str);
}
jedis.lpop("list");
for(String str : result){
System.out.println("get value from list again : " + str);
}
} /**
*
* 功能描述: <br>
* 操作自定义对象
*
* @see [相关类/方法](可选)
* @since [产品/模块版本](可选)
*/
private void operationMyObject(){
Entity entity = new Entity();
entity.setName("test");
entity.setAge(20);
//保存
jedis.set("obj".getBytes(), SerializationUtils.serialize(entity));
//读取
byte[] bytes = jedis.get("obj".getBytes());
Entity ret = (Entity)SerializationUtils.deserialize(bytes);
System.out.println("读取到自定义的类的属性name的值为:" + ret.getName());
} @After
public void after(){
//释放连接
pool.returnResourceObject(jedis);
System.out.println("end~~~");
}
}

运行的结果:

 get value :hello redis
get value from map : value1
get value from map : value2
get value from list : value3
get value from list : item2
get value from list : item1
get value from list again : value3
get value from list again : item2
get value from list again : item1
读取到自定义的类的属性name的值为:test
end~~~

下一篇:8、redis之事务1-redis命令

7、redis之使用spring集成commons-pool来操作常见数据类型的更多相关文章

  1. 【redis】3.Spring 集成注解 redis 项目配置使用

    spring-data-redis  项目,配合 spring 特性并集成 Jedis 的一些命令和方法. 配置redis继承到spring管理项目,使用注解实现redis缓存功能. 参考:http: ...

  2. 5、redis之使用spring集成commons-pool

    添加spring的依赖 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://w ...

  3. spring集成Junit做单元测试及常见异常解决办法

    spring-test依赖包 <!--Spring-test --> <!-- https://mvnrepository.com/artifact/org.springframew ...

  4. spring 集成redis客户端jedis(java)

    spring集成jedis简单实例   jedis是redis的java客户端,spring将redis连接池作为一个bean配置. “redis.clients.jedis.JedisPool”,这 ...

  5. spring 集成 redis -- pub/sub

    redis除了常用的当做缓存外,还可以当做简单的消息中间件,实现消息发布订阅 spring集成redis,可以使用spring-data-redis 首先引入相关maven依赖(此处我spring相关 ...

  6. Spring集成Redis方案(spring-data-redis)(基于Jedis的单机模式)(待实践)

    说明:请注意Spring Data Redis的版本以及Spring的版本!最新版本的Spring Data Redis已经去除Jedis的依赖包,需要自行引入,这个是个坑点.并且会与一些低版本的Sp ...

  7. Redis篇之操作、lettuce客户端、Spring集成以及Spring Boot配置

    Redis篇之操作.lettuce客户端.Spring集成以及Spring Boot配置 目录 一.Redis简介 1.1 数据结构的操作 1.2 重要概念分析 二.Redis客户端 2.1 简介 2 ...

  8. Spring集成Redis集群(含spring集成redis代码)

    代码地址如下:http://www.demodashi.com/demo/11458.html 一.准备工作 安装 Redis 集群 安装参考: http://blog.csdn.net/zk6738 ...

  9. Redis 与 Spring 集成

    配置applicationContext.xml <!-- 连接池配置 --> <bean id="jedisPoolConfig" class="re ...

随机推荐

  1. Orchard模块开发全接触6:自定义用户注册

    我们都知道 Orchard 的用户注册相当简单,现在,我们需要一个自定义的用户注册,现在,开始吧. 一:定义实体 Models/CustomerPartRecord.cs: public class ...

  2. Orchard模块开发全接触2:新建 ProductPart

    一:创建 Part 1:项目引用 Orchard.Framework: 2:创建 Models 文件夹: 3:在 Models 文件夹下创建类 ProductPartRecord,如下: public ...

  3. .Net Standard Http请求实例

    一 ..Net Standard http协议封装 程序集: System.Net.Http.dll 命名 空间:System.Net.Http HttpClient :http请求 发送类 Form ...

  4. 利用Bootstrap+Avalonjs+EntityFramework 开发ASP.NET WebForm应用程序(上)

    本文将介绍如何利用Bootstrap+Avalonjs+EntityFramework 开发ASP.NET WebForm应用程序,分为上下两篇.上篇主要介绍实现,下篇主要介绍界面. 打开Visual ...

  5. HTTP Error 502.5 – Process Failure

    https://www.cnblogs.com/lookerblue/p/7101641.html http://www.cnblogs.com/lookerblue/p/7102040.html h ...

  6. dubbo源码解析-spi(4)

    前言 本篇是spi的第四篇,本篇讲解的是spi中增加的AOP,还是和上一篇一样,我们先从大家熟悉的spring引出AOP. AOP是老生常谈的话题了,思想都不会是一蹴而就的.比如架构设计从All in ...

  7. boost::asio::ip::tcp实现网络通信的小例子

    同步方式: Boost.Asio是一个跨平台的网络及底层IO的C++编程库,它使用现代C++手法实现了统一的异步调用模型. 头文件 #include <boost/asio.hpp> 名空 ...

  8. tensorflow 卷积/反卷积-池化/反池化操作详解

    Plese see this answer for a detailed example of how tf.nn.conv2d_backprop_input and tf.nn.conv2d_bac ...

  9. mybatis xml mapper 文件中 if-else 写法

    mybaits 中没有else要用chose when otherwise 代替 范例一 <!--批量插入用户--> <insert id="insertBusinessU ...

  10. 使用TensorFlow动手实现一个Char-RNN

    https://blog.csdn.net/thriving_fcl/article/details/72565455 前言 学习RNN的时候很多人应该都有看过Andrej Karpathy写的The ...