Redis c/c++, java client连接
Redis 介绍
下载可运行文件包commons-pool2-2.2-bin.zip,解压并把commons-pool2-2.2.jar等依赖包 通过 build path 中的Add External Jars 添?
到当前的project中,最后export jar包,命名为: jedis-2.4.2.jar,能够到这里下载 http://download.csdn.net/detail/gfsfg8545/7357837 。
3,使用Jedis訪问 Redis
新建project, 在引入相关jar包后,仅仅要new一个Jedis对象,就能做redis相关操作了。来个简单的jedis实例:
package cn.daniel.test; /** * * @author Daniel * redis java client test. * time 2014-05-16 */ import java.util.List; import java.util.Map; import java.util.Map.Entry; import redis.clients.jedis.Jedis; public class JredisTest { public void redisTest() { Jedis redis = new Jedis("172.16.0.126", 6379);// connect server: ip port // redis.auth("user"); // string operator // set key-value redis.set("key1", "1"); redis.set("key2", "2"); // mset key-value redis.mset("key3", "3", "key4", "4"); // get key-value System.out.println("key:key1 value:"+redis.get("key1")); // MGET key [key ...] List<String> list = redis.mget("key1", "key2", "key3", "key4"); for(String s:list) { System.out.println(s); } // hset key field value redis.hset("website", "CSDN", "http://csdn.net/"); redis.hset("website", "Daniel", "http://blog.csdn.net/daniel_ustc"); // hgetAll, Get all the fields and values in the hash Map<String, String> map = redis.hgetAll("website"); for(Entry<String, String> entry:map.entrySet()) { System.out.println("key: " + entry.getKey()+ " value: " + entry.getValue()); } // quit redis.quit(); }// redisTest public static void main(String[] args) { JredisTest test = new JredisTest(); test.redisTest(); } }
执行上面的程序就可以訪问Redis。也能够用maven管理jar包依赖,据说比較好用。
在实际使用中,通常会採用连接池的方式,不会整个项目都使用一个Connection。jedis pool 是基于apache common pool 实现的,因此主要project中导入对应的commons-pool2包,代码例如以下:
package cn.ustc.daniel.test; /** * @author Daniel * redis java client test. * JredisPool * time 2014-05-18 */ import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis.clients.jedis.JedisPoolConfig; public class JedisPoolTest { private static JedisPool pool=null; /** * create pool */ private static JedisPool createJedisPool() { if(pool == null) { // 建立连接池配置參数 JedisPoolConfig config = new JedisPoolConfig(); //设置jedis最多连接数 config.setMaxTotal(100); // 设置最大堵塞时间,毫秒数 config.setMaxWaitMillis(1000); // 设置最多空暇连接个数 config.setMaxIdle(10); // 创建连接池 ip port pool = new JedisPool(config, "172.16.0.11", 6379); } return pool; } /** * 在多线程环境同步初始化 */ private static synchronized void poolInit() { if (pool == null) pool=createJedisPool(); } /** * 获取一个jedis 对象 * * @return */ public static Jedis getJedis() { if (pool == null) poolInit(); return pool.getResource(); } /** * 返还一个连接 */ public static void returnRes(Jedis jedis) { pool.returnResource(jedis); } // main public static void main(String[] args) { Jedis jedis = JedisPoolTest.getJedis(); jedis.set("name","JedisPool"); String value = jedis.get("name"); JedisPoolTest.returnRes(jedis); System.out.println(value); } }
參考资料:
http://www.cnitblog.com/yunshichen/archive/2009/08/28/61065.html
http://flyingsnail.blog.51cto.com/5341669/1371650
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。