最近在使用redis的cluster功能,首先是搭建redis cluster集群,不在多说,具体可参考http://yangchunhe.iteye.com/admin/blogs/2361550
然后就是客户端使用redis cluster集群,由于项目使用的java,随列举一下java的调用实例,本例子使用java开源框架jedis,具体测试代码如下:
public class JedisclusterTest extends TestCase{ private static final int DEFAULT_TIMEOUT = 2000; private static final int DEFAULT_REDIRECTIONS = 5; private static final JedisPoolConfig DEFAULT_CONFIG = new JedisPoolConfig(); public static JedisCluster getJc(){ Set<HostAndPort> jedisClusterNode = new HashSet<HostAndPort>(); jedisClusterNode.add(new HostAndPort("192.168.5.181", 6001)); jedisClusterNode.add(new HostAndPort("192.168.5.181", 6002)); jedisClusterNode.add(new HostAndPort("192.168.5.181", 6003)); jedisClusterNode.add(new HostAndPort("192.168.5.181", 6004)); jedisClusterNode.add(new HostAndPort("192.168.5.181", 6005)); jedisClusterNode.add(new HostAndPort("192.168.5.181", 6006)); // JedisCluster jc = new JedisCluster(jedisClusterNode, DEFAULT_TIMEOUT, DEFAULT_TIMEOUT, DEFAULT_REDIRECTIONS, null, DEFAULT_CONFIG); return jc; } public void testcluster(){ JedisCluster jc = getJc(); jc.set("testkey4", "testkey hello"); // jc.expire("testkey3", 100); System.out.println(jc.get("testkey3")); try { jc.close(); } catch (IOException e) { e.printStackTrace(); } } }
使用期间最坑的是包错连不上
大致报错信息如下:
Could not get a resource from the pool
多半原因是由于redis集群问题,跟java代码无关