redis3版本出了redis cluster集群方案
因key散列到各个节点里面,是不支持 key *,也不支持select其他dbindex, 也不支持多个key的操作
而redis geo geoadd是需要4个key的。。在集群模式下就会报错
报错内容为No way to dispatch this command to Redis Cluster because keys have different slots.
报错位置如下:
调用的代码
public Long geoAdd(String key, String longitude, String latitude,
String dName) {
JedisCluster sjedis =getJedisDB();;
Long value = (Long) sjedis
.eval("return redis.call('GEOADD',KEYS[1],KEYS[2],KEYS[3],KEYS[4])",
4, new String[] { key, String.valueOf(longitude),
String.valueOf(latitude), dName });
return value;
}
集群才有redis cluster方案
请问怎么解决,难道redisgeo只能在单机器模式下使用?
问题已解决。。
JedisCluster代替即可
回复 @0fsfsfe:嗯嗯回复 @太阳雨翼:不好意思,刚看见、、、是的。用jedis最新版就可以了。。而且自带的连接池,不需要close回复 @太阳雨翼:已解决,JedisCluster在jedis2.8.1版本及以上,可以直接通过geoadd()函数来操作;回复 @0fsfsfe:请问具体是怎么代替的版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。