使用Java操作Redis(二)
2015-04-27 21:09
405 查看
上篇文章中我们可以看到,通过自己动手编码来操作Redis是相当繁琐的,实际上我们在重复制造轮子。Redis网站上列举出了一些方便操作Redis的常用工具。
可供Java选择的比较多,这里介绍一下Jedis的使用。
Jedis 所需Jar包下载地址:
http://search.maven.org/#artifactdetails%7Credis.clients%7Cjedis%7C2.4.2%7Cjar
http://search.maven.org/#artifactdetails%7Corg.apache.commons%7Ccommons-pool2%7C2.0%7Cjar
將commons-pool2-2.0.jar和jedis-2.4.2.jar同时添加到build path中。
Redis的value同时支持strings, hashes, lists, sets类型,下面代码为使用Jedis对这几种类型的插入和获取操作。
代码中只列举了两三种操作,实际上Jedis对每种类型提供的操作方式非常多,使用起来也非常简单,这里没有全部列举。
可供Java选择的比较多,这里介绍一下Jedis的使用。
Jedis 所需Jar包下载地址:
http://search.maven.org/#artifactdetails%7Credis.clients%7Cjedis%7C2.4.2%7Cjar
http://search.maven.org/#artifactdetails%7Corg.apache.commons%7Ccommons-pool2%7C2.0%7Cjar
將commons-pool2-2.0.jar和jedis-2.4.2.jar同时添加到build path中。
Redis的value同时支持strings, hashes, lists, sets类型,下面代码为使用Jedis对这几种类型的插入和获取操作。
package com.csii.redis.test; import java.io.InputStream; import java.io.OutputStream; import java.net.Socket; import java.util.HashMap; import java.util.Map; import java.util.Set; import org.junit.Assert; import org.junit.Test; //注意:为方便测试代码中用到了JUnit import redis.clients.jedis.Jedis; public class RedisTest extends Assert{ public static Jedis jedis = null; static{ jedis = new Jedis("localhost",6379, 500); jedis.connect(); jedis.auth("123456"); jedis.flushAll(); } /** * strings类型操作 */ @Test public void testStrings() { String status = jedis.set("name", "Rongbo_J"); assertEquals("OK", status); String name = jedis.get("name"); System.out.println(name); } /** * hashes类型操作 */ @Test public void testHashes() { HashMap<String,String> personInfo = new HashMap<String,String>(); personInfo.put("name", "Rongbo_J"); personInfo.put("age", "18"); personInfo.put("weight", "120"); String status = jedis.hmset("person", personInfo); assertEquals("OK",status); Map<String, String> person = jedis.hgetAll("person"); System.out.println(person); } /** * lists类型操作 */ @Test public void testLists() { //lists为线性结构,通过lpush和lpop添加和移除list中的元素。 for(int i=0;i<20;i++) { jedis.lpush("array","i:" + i); } long len = jedis.llen("array"); System.out.println(len); for(int i=0;i<len;i++) { System.out.println(jedis.lpop("array")); } long len2 = jedis.llen("array"); System.out.println(len2); } /** * sets类型操作 */ @Test public void testSets() { for(int i=0;i < 20;i++) { jedis.sadd("mySet", "SetElmt"+i); } long len = jedis.scard("mySet"); System.out.println(len); Set<String> mySet = jedis.smembers("mySet"); System.out.println(mySet); } /** * 不使用Jedis操作Redis,运行此测试方法时需要注释掉静态代码块部分 */ @Test public void testWithoutJedis() { try { Socket sock = new Socket("127.0.0.1",6379); OutputStream out = sock.getOutputStream(); InputStream in = sock.getInputStream(); String sendStr = "*3\r\n$3\r\nSET\r\n$4\r\nname\r\n$8\r\nrongbo_j\r\n"; out.write(sendStr.getBytes()); sendStr = "*2\r\n$3\r\nGET\r\n$5\r\nname\r\n"; out.write(sendStr.getBytes()); byte[] buffer = new byte[512]; in.read(buffer); System.out.println(new String(buffer)); } catch (Exception e) { e.printStackTrace(); } } }
代码中只列举了两三种操作,实际上Jedis对每种类型提供的操作方式非常多,使用起来也非常简单,这里没有全部列举。
相关文章推荐
- java操作redis。jedis使用api
- Java中使用Jedis操作Redis
- Java中使用Jedis操作Redis
- Java中使用Jedis操作Redis
- Java中使用Jedis操作Redis
- Java中使用Jedis操作Redis
- Java中使用Jedis操作Redis
- 使用Java操作Redis(一)
- 使用Java操作Redis(一)
- 使用Java操作Redis(一)
- 使用Java操作Redis(二)
- 使用Java操作Redis(二)
- Java中使用Jedis操作Redis
- Java中使用Jedis操作Redis
- Java中使用Jedis操作Redis
- Java中使用Jedis操作Redis
- Jedis学习使用(java操作redis)
- Java中使用Jedis操作Redis
- Java中使用Jedis操作Redis
- Java中使用Jedis操作Redis