java获取redis中各种数据类型key对应的value代码简单封装
来源:互联网 发布:类似wearaday的软件 编辑:程序博客网 时间:2024/06/05 02:54
目前在做自动化测试时,设计到需要获取存储在redis中的值,总结了操作代码如下:
需要jar包:jedis-2.7.3.jar、commons-pool2-2.4.1.jar
code如下:
package cn.migu.utils;import java.util.Iterator;import java.util.List;import cn.migu.base.GlobalSettings;import redis.clients.jedis.Jedis;import redis.clients.jedis.JedisPool;import redis.clients.jedis.JedisPoolConfig;/** * <Description>redis相关操作类 * @author YanLu * */public class RedisUtil {private JedisPool pool=null;private Jedis redis = null;Log4jUtil log = new Log4jUtil(this.getClass().getName());//构造函数,创建对象时进行初始化public RedisUtil() {if (pool == null) {/*// 池基本配置//JedisPoolConfig config = new JedisPoolConfig();// 最大连接数, 默认8个config.setMaxTotal(20);// 控制一个pool最多有多少个状态为idle(空闲的)的jedis实例。config.setMaxIdle(5);// 表示当borrow(引入)一个jedis实例时,最大的等待时间,如果超过等待时间,则直接抛出JedisConnectionException;config.setMaxWaitMillis(10000);// 在borrow一个jedis实例时,是否提前进行validate操作;如果为true,则得到的jedis实例均是可用的;config.setTestOnBorrow(false);*///创建redis连接池//this.pool = new JedisPool(config,"172.18.173.188",6379);this.pool = new JedisPool(new JedisPoolConfig(), GlobalSettings.getProperty("redis.master.host"), Integer.parseInt(GlobalSettings.getProperty("redis.master.port")));//获取Jedis实例this.redis = pool.getResource();log.info("Connection to redis server sucessfully");}}/** * 关闭连接 * @param pool * @param redis */public void quitConnection(Jedis redis) {if (redis != null) {redis.quit();//pool.returnResource(redis);}}/** * 获取key对应的value * * 说明:方法中目前只针对key数据类型为String和hash的情况作了处理,其他数据类型可根据需要进行扩展即可 * @param key * @return */public String getValue(String key){String value = null;try {if(redis == null || !redis.exists(key)){log.info("key:"+key+" is not found");quitConnection(redis);return value;}//获取key对应的数据类型String type = redis.type(key);log.info("key:" + key + " 的类型为:" + type);if(type.equals("string")){//get(key)方法返回key所关联的字符串值value = redis.get(key);}if(type.equals("hash")){//一下方法仅适用于list.size=1时,否者value将取集合中最后一个元素的值List<String> list = redis.hvals(key);//hvals(key)返回哈希表 key 中所有域的值//Set<String> set = redis.hkeys(key);Iterator<String> it=list.iterator();while(it.hasNext()){ value = it.next(); log.info("value:"+value);}}if(type.equals("list")){log.info(key+"类型为list暂未处理...");}if(type.equals("set")){log.info(key+"类型为list暂未处理...");}} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{//关闭连接quitConnection(redis);}return value;}
</pre><p></p><p></p><p>测试代码如下:</p><p><pre name="code" class="java">package cn.migu.test;import org.testng.annotations.Test;import cn.migu.utils.Log4jUtil;import cn.migu.utils.RedisUtil;/** * <Description> 测试RedisUtil类 * @author YanLu * */public class TestRedis {private Log4jUtil log = new Log4jUtil(this.getClass().getName());@Testpublic void testRedisUtil(){RedisUtil ru = new RedisUtil();//获取redis中对应的value值String value=ru.getValue("SMS_NODE_TIMES_13814528620");log.info(value);} }
0 1
- java获取redis中各种数据类型key对应的value代码简单封装
- 获取XML字符串中Key对应的Value
- redis中各种数据类型对应的jedis操作命令
- redis中各种数据类型对应的jedis操作命令
- redis中各种数据类型对应的jedis操作命令
- redis中各种数据类型对应的jedis操作命令
- redis中各种数据类型对应的jedis操作命令
- redis中各种数据类型对应的jedis操作命令
- redis中各种数据类型对应的jedis操作命令
- redis中各种数据类型对应的jedis操作命令
- redis中各种数据类型对应的jedis操作命令
- redis中各种数据类型对应的jedis操作命令
- redis中各种数据类型对应的jedis操作命令
- redis中各种数据类型对应的jedis操作命令
- redis中各种数据类型对应的jedis操作命令
- redis中各种数据类型对应的jedis操作命令
- redis中各种数据类型对应的jedis操作命令
- redis中各种数据类型对应的jedis操作命令
- HDU 3665 Seaside (最短路--floyd)
- IM 开源资料
- 【HDU】-2066-一个人的旅行(最短路)(dijkstra+优先队列)
- 近 100 个 Linux 常用命令大全
- POJ 2888 Magic Bracelet
- java获取redis中各种数据类型key对应的value代码简单封装
- How can I install the Google Apps Package (Play Store, ...) on my Android device?
- 机器学习(Machine Learning)&深度学习(Deep Learning)资料
- iOS OpenGL ES2.0 开发实例
- ORACLE-SYS_CONNECT_BY_PATH函数汇总
- C++primer学习笔记——引用和指针
- 在HTML中使用javascript
- if ___name__ =="___main___"解决
- [Guide] How to install Google Apps (GApps) on your Android Device / Phone