redis池简单实现
2017-09-08 17:46
267 查看
网上看到的一片文章,摘了一段做个备忘,原文地址:http://www.cnblogs.com/liuling/p/2014-4-19-04.html
package com.test; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis.clients.jedis.JedisPoolConfig; public final class RedisUtil { //Redis服务器IP private static String ADDR = "192.168.0.100"; //Redis的端口号 private static int PORT = 6379; //访问密码 private static String AUTH = "admin"; //可用连接实例的最大数目,默认值为8; //如果赋值为-1,则表示不限制;如果pool已经分配了maxActive个jedis实例,则此时pool的状态为exhausted(耗尽)。 private static int MAX_ACTIVE = 1024; //控制一个pool最多有多少个状态为idle(空闲的)的jedis实例,默认值也是8。 private static int MAX_IDLE = 200; //等待可用连接的最大时间,单位毫秒,默认值为-1,表示永不超时。如果超过等待时间,则直接抛出JedisConnectionException; private static int MAX_WAIT = 10000; private static int TIMEOUT = 10000; //在borrow一个jedis实例时,是否提前进行validate操作;如果为true,则得到的jedis实例均是可用的; private static boolean TEST_ON_BORROW = true; private static JedisPool jedisPool = null; /** * 初始化Redis连接池 */ static { try { JedisPoolConfig config = new JedisPoolConfig(); config.setMaxActive(MAX_ACTIVE); config.setMaxIdle(MAX_IDLE); config.setMaxWait(MAX_WAIT); config.setTestOnBorrow(TEST_ON_BORROW); // 如果redis服务不需要验证就不用AUTH //jedisPool = new JedisPool(config, ADDR, PORT, TIMEOUT); jedisPool = new JedisPool(config, ADDR, PORT, TIMEOUT, AUTH); } catch (Exception e) { e.printStackTrace(); } } /** * 获取Jedis实例 * @return */ public synchronized static Jedis getJedis() { try { if (jedisPool != null) { Jedis resource = jedisPool.getResource(); return resource; } else { return null; } } catch (Exception e) { e.printStackTrace(); return null; } } /** * 释放jedis资源 * @param jedis */ public static void returnResource(final Jedis jedis) { if (jedis != null) { jedisPool.returnResource(jedis); } } }
测试
package com.jhb.active.redistest; import java.util.Date; import redis.clients.jedis.Jedis; public class rtest { public static void main(String[] args){ long st = new Date().getTime(); for(int i = 0; i < 1000; i++){ Jedis j = RedisUtil.getJedis(); j.set("newname", "中文测试"); System.out.println(j.get("newname") + (i + 1)); RedisUtil.returnResource(j); } System.out.println("耗时" + ((double)(new Date().getTime() - st) /1000 ) + "秒"); } }
相关文章推荐
- 数据结构(Java语言)——HashTable(分离链接法)简单实现
- 缓冲技术之二:缓冲池BufferPool的简单实现
- c#中简单链表的实现(非泛型)
- 《统计学习方法》+感知机+C++代码(简单)实现
- 动态创建宏的简单实现
- 实现一个最简单的嵌入式操作系统
- 合婚算法之用JAVA实现简单级别的神煞合婚法
- 关于单点登录原理与简单实现
- 【并行计算】使用MPI实现简单的并行素数筛法
- javascript(jquery)实现前台html简单的分页封装
- 在.net执行sql脚本的简单实现
- 一个简单的Garbage Collector的实现
- RDLC 表格和文本框实现多数据,单备注(简单)
- lower_bound upper_bound的简单实现(STL)
- js实现三级联动效果(简单易懂)
- JDBC+Servlet+JSP实现简单的数据遍历和查找功能
- Android之简单自定义PopupWindow弹框实现
- 用Criteria进行模糊查询实现简单的站内搜索功能
- C语言简单实现字符串截取
- 超级简单猜数游戏的实现