CodisLabs / jodis

A java client for codis based on Jedis and Curator
MIT License
218 stars 97 forks source link

jedisPool.getResource() 使用方式 #8

Closed hea closed 8 years ago

hea commented 8 years ago

您好,在对redis进行操作前 是 每次都使用 jedisPool.getResource() 获取连接池的一个jedis对象 使用完成后 再jedis.close()
还是 在项目启动时 获取一个jedis 对象 然后全局使用

我觉得第一种方式不可取,频繁的getResource和close会对系统有很高的开销 如果是第二种方式,那么再新加proxy的时候,客户端是不知道的,不重启客户端就不能识别到新的proxy

我的问题是 应该如何使用 jedisPool.getResource()

yangzhe1991 commented 8 years ago

频繁的getResource和close会对系统有很高的开销

这是不对的,这就是JedisPool的标准用法

yangzhe1991 commented 8 years ago

close在新版jedis中代替了之前的returnResourse

hea commented 8 years ago

谢谢了 那是不是README.md 里可以写成下面这样了 JedisResourcePool jedisPool = RoundRobinJedisPool.create() .curatorClient("zkserver:2181", 30000).zkProxyDir("/zk/codis/db_xxx/proxy").build(); try (Jedis jedis = jedisPool.getResource()) { jedis.set("foo", "bar"); String value = jedis.get("foo"); System.out.println(value); jedis.close(); }

yangzhe1991 commented 8 years ago

try (Jedis jedis = jedisPool.getResource())是jdk7+的语法糖,这个block执行完毕后会自动执行jedis.close

hea commented 8 years ago

非常感谢