Java中使用Jedis操作Redis
Java中使用Jedis操作Redis
使用Java操作Redis需要jedis-2.1.0.jar,下載地址:http://files.cnblogs.com/liuling/jedis-2.1.0.jar.zip
如果需要使用Redis連接池的話,還需commons-pool-1.5.4.jar,下載地址:http://files.cnblogs.com/liuling/commons-pool-1.5.4.jar.zip
??1?package?com.test;
??2?
??3?import?java.util.HashMap;
??4?import?java.util.Iterator;
??5?import?java.util.List;
??6?import?java.util.Map;
??7?
??8?import?org.junit.Before;
??9?import?org.junit.Test;
?10?
?11?import?redis.clients.jedis.Jedis;
?12?
?13?public?class?TestRedis?{
?14?????private?Jedis?jedis;?
?15?????
?16?????@Before
?17?????public?void?setup()?{
?18?????????//連接redis服務(wù)器,192.168.0.100:6379
?19?????????jedis?=?new?Jedis("192.168.0.100",?6379);
?20?????????//權(quán)限認(rèn)證
?21?????????jedis.auth("admin");??
?22?????}
?23?????
?24?????/**
?25??????*?redis存儲(chǔ)字符串
?26??????*/
?27?????@Test
?28?????public?void?testString()?{
?29?????????//-----添加數(shù)據(jù)----------??
?30?????????jedis.set("name","xinxin");//向key-->name中放入了value-->xinxin??
?31?????????System.out.println(jedis.get("name"));//執(zhí)行結(jié)果:xinxin??
?32?????????
?33?????????jedis.append("name",?"?is?my?lover");?//拼接
?34?????????System.out.println(jedis.get("name"));?
?35?????????
?36?????????jedis.del("name");??//刪除某個(gè)鍵
?37?????????System.out.println(jedis.get("name"));
?38?????????//設(shè)置多個(gè)鍵值對
?39?????????jedis.mset("name","liuling","age","23","qq","476777XXX");
?40?????????jedis.incr("age");?//進(jìn)行加1操作
?41?????????System.out.println(jedis.get("name")?+?"-"?+?jedis.get("age")?+?"-"?+?jedis.get("qq"));
?42?????????
?43?????}
?44?????
?45?????/**
?46??????*?redis操作Map
?47??????*/
?48?????@Test
?49?????public?void?testMap()?{
?50?????????//-----添加數(shù)據(jù)----------??
?51?????????Mapmap?=?new?HashMap();
?52?????????map.put("name",?"xinxin");
?53?????????map.put("age",?"22");
?54?????????map.put("qq",?"123456");
?55?????????jedis.hmset("user",map);
?56?????????//取出user中的name,執(zhí)行結(jié)果:[minxr]-->注意結(jié)果是一個(gè)泛型的List??
?57?????????//第一個(gè)參數(shù)是存入redis中map對象的key,后面跟的是放入map中的對象的key,后面的key可以跟多個(gè),是可變參數(shù)??
?58?????????Listrsmap?=?jedis.hmget("user",?"name",?"age",?"qq");
?59?????????System.out.println(rsmap);??
?60???
?61?????????//刪除map中的某個(gè)鍵值??
?62?????????jedis.hdel("user","age");
?63?????????System.out.println(jedis.hmget("user",?"age"));?//因?yàn)閯h除了,所以返回的是null??
?64?????????System.out.println(jedis.hlen("user"));?//返回key為user的鍵中存放的值的個(gè)數(shù)2?
?65?????????System.out.println(jedis.exists("user"));//是否存在key為user的記錄?返回true??
?66?????????System.out.println(jedis.hkeys("user"));//返回map對象中的所有key??
?67?????????System.out.println(jedis.hvals("user"));//返回map對象中的所有value?
?68???
?69?????????Iteratoriter=jedis.hkeys("user").iterator();??
?70?????????while?(iter.hasNext()){??
?71?????????????String?key?=?iter.next();??
?72?????????????System.out.println(key+":"+jedis.hmget("user",key));??
?73?????????}??
?74?????}
?75?????
?76?????/**?
?77??????*?jedis操作List?
?78??????*/??
?79?????@Test??
?80?????public?void?testList(){??
?81?????????//開始前,先移除所有的內(nèi)容??
?82?????????jedis.del("java?framework");??
?83?????????System.out.println(jedis.lrange("java?framework",0,-1));??
?84?????????//先向key?java?framework中存放三條數(shù)據(jù)??
?85?????????jedis.lpush("java?framework","spring");??
?86?????????jedis.lpush("java?framework","struts");??
?87?????????jedis.lpush("java?framework","hibernate");??
?88?????????//再取出所有數(shù)據(jù)jedis.lrange是按范圍取出,??
?89?????????//?第一個(gè)是key,第二個(gè)是起始位置,第三個(gè)是結(jié)束位置,jedis.llen獲取長度?-1表示取得所有??
?90?????????System.out.println(jedis.lrange("java?framework",0,-1));??
?91?????????
?92?????????jedis.del("java?framework");
?93?????????jedis.rpush("java?framework","spring");??
?94?????????jedis.rpush("java?framework","struts");??
?95?????????jedis.rpush("java?framework","hibernate");?
?96?????????System.out.println(jedis.lrange("java?framework",0,-1));
?97?????}??
?98?????
?99?????/**?
100??????*?jedis操作Set?
101??????*/??
102?????@Test??
103?????public?void?testSet(){??
104?????????//添加??
105?????????jedis.sadd("user","liuling");??
106?????????jedis.sadd("user","xinxin");??
107?????????jedis.sadd("user","ling");??
108?????????jedis.sadd("user","zhangxinxin");
109?????????jedis.sadd("user","who");??
110?????????//移除noname??
111?????????jedis.srem("user","who");??
112?????????System.out.println(jedis.smembers("user"));//獲取所有加入的value??
113?????????System.out.println(jedis.sismember("user",?"who"));//判斷?who?是否是user集合的元素??
114?????????System.out.println(jedis.srandmember("user"));??
115?????????System.out.println(jedis.scard("user"));//返回集合的元素個(gè)數(shù)??
116?????}??
117???
118?????@Test??
119?????public?void?test()?throws?InterruptedException?{??
120?????????//jedis?排序??
121?????????//注意,此處的rpush和lpush是List的操作。是一個(gè)雙向鏈表(但從表現(xiàn)來看的)??
122?????????jedis.del("a");//先清除數(shù)據(jù),再加入數(shù)據(jù)進(jìn)行測試??
123?????????jedis.rpush("a",?"1");??
124?????????jedis.lpush("a","6");??
125?????????jedis.lpush("a","3");??
126?????????jedis.lpush("a","9");??
127?????????System.out.println(jedis.lrange("a",0,-1));//?[9,?3,?6,?1]??
128?????????System.out.println(jedis.sort("a"));?//[1,?3,?6,?9]??//輸入排序后結(jié)果??
129?????????System.out.println(jedis.lrange("a",0,-1));??
130?????}??
131?????
132?????@Test
133?????public?void?testRedisPool()?{
134?????????RedisUtil.getJedis().set("newname",?"中文測試");
135?????????System.out.println(RedisUtil.getJedis().get("newname"));
136?????}
137?} 




