-
package com.liubo.redis; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import org.junit.Before; import org.junit.Test; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis.clients.jedis.JedisPoolConfig; publicclassRedisClient{ JedisPool pool; Jedis jedis; @Before publicvoid setUp(){ pool =newJedisPool(newJedisPoolConfig(),"127.0.0.1"); jedis = pool.getResource(); } /** * key-value String 测试 */ @Test publicvoid testString(){ // 1 key-value 存储string jedis.set("name","liubo"); System.out.println("jedis GET "+ jedis.get("name")); // 2 key 追加 value jedis.append("name"," hello"); System.out.println("jedis GET "+ jedis.get("name")); // 3 覆盖value jedis.set("name","boliu"); System.out.println("jedis GET "+ jedis.get("name")); // 4删除key 对应的记录 jedis.del("name"); System.out.println("jedis GET "+ jedis.get("name")); } /** * mset 测试 */ @Test publicvoid testMset(){ jedis.mset("name","liubo","age","11"); System.out.println("mset "+ jedis.mget("name","age")); // mset [liubo, 11] } /** * Map 测试 */ @Test publicvoid testMap(){ Map<String,String> user =newHashMap<String,String>(); user.put("name","liubo"); user.put("password","123456"); jedis.hmset("user", user); List<String> rsMap = jedis.hmget("user","password"); List<String> rsMap2 = jedis.hmget("user","password","name"); /** * /取出user中的name,执行结果:[minxr]-->注意结果是一个泛型的List * //第一个参数是存入redis中map对象的key,后面跟的是放入map中的对象的key, 后面的key可以跟多个,是可变参数 */ System.out.println(rsMap);// [123456] System.out.println(rsMap2);// [123456, liubo] // 删除map中的某个键值 jedis.hdel("user","password"); System.out.println(jedis.hmget("user","pwd"));// 因为删除了,所以返回的是null System.out.println(jedis.hlen("user"));// 返回key为user的键中存放的值的个数1 System.out.println(jedis.exists("user"));// 是否存在key为user的记录 返回true System.out.println(jedis.hkeys("user"));// 返回map对象中的所有key [pwd, name] System.out.println(jedis.hvals("user"));// 返回map对象中的所有value [minxr, // password] Iterator<String> iter = jedis.hkeys("user").iterator(); while(iter.hasNext()){ String key = iter.next(); System.out.println(key +":"+ jedis.hmget("user", key)); } } /** * jedis操作List */ @Test publicvoid testList(){ // 开始前,先移除所有的内容 jedis.del("java framework"); System.out.println(jedis.lrange("java framework",0,-1)); // 先向key java framework中存放三条数据 jedis.lpush("java framework","spring"); jedis.lpush("java framework","struts"); jedis.lpush("java framework","hibernate"); // 再取出所有数据jedis.lrange是按范围取出, // 第一个是key,第二个是起始位置,第三个是结束位置,jedis.llen获取长度 -1表示取得所有 System.out.println(jedis.lrange("java framework",0,-1)); } /** * jedis操作Set */ @Test publicvoid testSet(){ // 添加 jedis.sadd("sname","minxr"); jedis.sadd("sname","jarorwar"); jedis.sadd("sname","闵晓荣"); jedis.sadd("sanme","noname"); // 移除noname jedis.srem("sname","noname"); System.out.println(jedis.smembers("sname"));// 获取所有加入的value System.out.println(jedis.sismember("sname","minxr"));// 判断 minxr // 是否是sname集合的元素 System.out.println(jedis.srandmember("sname")); System.out.println(jedis.scard("sname"));// 返回集合的元素个数 } @Test publicvoid test()throwsInterruptedException{ // keys中传入的可以用通配符 System.out.println(jedis.keys("*"));// 返回当前库中所有的key [sose, sanme, name, // jarorwar, foo, sname, java // framework, user, braand] System.out.println(jedis.keys("*name"));// 返回的sname [sname, name] System.out.println(jedis.del("sanmdde"));// 删除key为sanmdde的对象 删除成功返回1 // 删除失败(或者不存在)返回 0 System.out.println(jedis.ttl("sname"));// 返回给定key的有效时间,如果是-1则表示永远有效 jedis.setex("timekey",10,"min");// 通过此方法,可以指定key的存活(有效时间) 时间为秒 Thread.sleep(5000);// 睡眠5秒后,剩余时间将为<=5 System.out.println(jedis.ttl("timekey"));// 输出结果为5 jedis.setex("timekey",1,"min");// 设为1后,下面再看剩余时间就是1了 System.out.println(jedis.ttl("timekey"));// 输出结果为1 System.out.println(jedis.exists("key"));// 检查key是否存在 // System.out.println(jedis.rename("timekey","time")); System.out.println(jedis.get("timekey"));// 因为移除,返回为null System.out.println(jedis.get("time"));// 因为将timekey 重命名为time 所以可以取得值 // min // jedis 排序 // 注意,此处的rpush和lpush是List的操作。是一个双向链表(但从表现来看的) jedis.del("a");// 先清除数据,再加入数据进行测试 jedis.rpush("a","1"); jedis.lpush("a","6"); jedis.lpush("a","3"); jedis.lpush("a","9"); System.out.println(jedis.lrange("a",0,-1));// [9, 3, 6, 1] System.out.println(jedis.sort("a"));// [1, 3, 6, 9] //输入排序后结果 System.out.println(jedis.lrange("a",0,-1)); } @Test publicvoid testOther(){ // 清空数据 System.out.println(jedis.flushDB()); System.out.println(jedis.echo("foo")); // 判断key否存在 System.out.println(jedis.exists("foo")); jedis.set("key","values"); System.out.println(jedis.exists("key")); // 若key不存在,则存储 jedis.setnx("foo","foo not exits"); System.out.println(jedis.get("foo")); // 设置key的有效期,并存储数据 2秒 jedis.setex("foo",2,"foo not exits"); System.out.println(jedis.get("foo")); try{ Thread.sleep(3000); }catch(InterruptedException e){ } // 清空数据 System.out.println(jedis.flushDB()); // 添加数据 jedis.lpush("lists","vector"); jedis.lpush("lists","ArrayList"); jedis.lpush("lists","LinkedList"); // 数组长度 System.out.println(jedis.llen("lists")); // 排序 System.out.println(jedis.sort("lists")); // 字串 System.out.println(jedis.lrange("lists",0,3)); // 修改列表中单个值 jedis.lset("lists",0,"hello list!"); // 获取列表指定下标的值 System.out.println(jedis.lindex("lists",1)); // 删除列表指定下标的值 System.out.println(jedis.lrem("lists",1,"vector")); // 删除区间以外的数据 System.out.println(jedis.ltrim("lists",0,1)); // 列表出栈 System.out.println(jedis.lpop("lists")); // 整个列表值 System.out.println(jedis.lrange("lists",0,-1)); // 清空数据 System.out.println(jedis.flushDB()); // 添加数据 jedis.sadd("sets","HashSet"); jedis.sadd("sets","SortedSet"); jedis.sadd("sets","TreeSet"); // 判断value是否在列表中 System.out.println(jedis.sismember("sets","TreeSet")); ; // 整个列表值 System.out.println(jedis.smembers("sets")); // 删除指定元素 System.out.println(jedis.srem("sets","SortedSet")); // 出栈 System.out.println(jedis.spop("sets")); System.out.println(jedis.smembers("sets")); // jedis.sadd("sets1","HashSet1"); jedis.sadd("sets1","SortedSet1"); jedis.sadd("sets1","TreeSet"); jedis.sadd("sets2","HashSet2"); jedis.sadd("sets2","SortedSet1"); jedis.sadd("sets2","TreeSet1"); // 交集 System.out.println(jedis.sinter("sets1","sets2")); // 并集 System.out.println(jedis.sunion("sets1","sets2")); // 差集 System.out.println(jedis.sdiff("sets1","sets2")); // 清空数据 System.out.println(jedis.flushDB()); // 添加数据 jedis.zadd("zset",10.1,"hello"); jedis.zadd("zset",10.0,":"); jedis.zadd("zset",9.0,"zset"); jedis.zadd("zset",11.0,"zset!"); // 元素个数 System.out.println(jedis.zcard("zset")); // 元素下标 System.out.println(jedis.zscore("zset","zset")); // 集合子集 System.out.println(jedis.zrange("zset",0,-1)); // 删除元素 System.out.println(jedis.zrem("zset","zset!")); System.out.println(jedis.zcount("zset",9.5,10.5)); // 整个集合值 System.out.println(jedis.zrange("zset",0,-1)); } } 来自为知笔记(Wiz) 附件列表
时间: 2024-11-14 05:22:23