java获取redis中各种数据类型key对应的value代码简单封装
2016-08-04 17:28
686 查看
目前在做自动化测试时,设计到需要获取存储在redis中的值,总结了操作代码如下:
需要jar包:jedis-2.7.3.jar、commons-pool2-2.4.1.jar
code如下:
需要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 block e.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()); @Test public void testRedisUtil(){ RedisUtil ru = new RedisUtil(); //获取redis中对应的value值 String value=ru.getValue("SMS_NODE_TIMES_13814528620"); log.info(value); } }
相关文章推荐
- java获取redis中各种数据类型key对应的value代码简单封装
- redis中各种数据类型对应的jedis操作命令
- java 中类的Class实例的获取和每个 基本数据类型的封装类 暑假第十天
- java对redis各种数据类型的基本操作
- redis中各种数据类型对应的jedis操作命令
- Java各种数据类型代码
- Java数据类型转换(简单类型、封装类型、String)
- redis中各种数据类型对应的jedis操作命令
- redis中各种数据类型对应的jedis操作命令
- java 中类的Class实例的获取和每个 基本数据类型的封装类 暑假第十天
- redis中各种数据类型对应的jedis操作命令
- redis中各种数据类型对应的jedis操作命令
- redis中各种数据类型对应的jedis操作命令
- java 各种类型数据,集合对象封装 成json
- redis中各种数据类型对应的jedis操作命令
- redis中各种数据类型对应的jedis操作命令
- redis中各种数据类型对应的jedis操作命令
- redis中各种数据类型对应的jedis操作命令
- redis中各种数据类型对应的jedis操作命令、redis命令大全
- Redis是一种面向“key-value”类型数据的分布式NoSQL数据库系统,具有高性能、持久存储、适应高并发应用场景等优势。它虽然起步较晚,但发展却十分迅速。