2.JedisCluster创建时,初始化了个JedisClusterConnectionHandler对象,来管理redis cluster里的所有节点。初始化两个map:一个Key为ip:port,value为redis connection的map,另一个key为hash槽值,value为redis connection的map。
![](https://images2015.cnblogs.com/blog/330941/201701/330941-20170101224503304-2060210576.png)
3.使用了模板方法的设计模式(JedisClusterCommand)对redis集群操作。
![](https://images2015.cnblogs.com/blog/330941/201701/330941-20170101224504320-225287208.png)
4.当对集群操作时,在JedisClusterCommand中,根据key的CRC16值返回当前的redis节点connection,然后由该connection进行操作。
![](https://images2015.cnblogs.com/blog/330941/201701/330941-20170101224505570-533103231.png)
5.当集群添加节点时,自动识别并添加节点到map中。
![](https://images2015.cnblogs.com/blog/330941/201701/330941-20170101224507132-1212144174.png)
6.集群实现了失败重试机制。
![](https://images2015.cnblogs.com/blog/330941/201701/330941-20170101224508336-1813918266.png)