开发者社区> 问答> 正文

redisgeo 怎么支持集群?报错

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只能在单机器模式下使用?

展开
收起
爱吃鱼的程序员 2020-06-08 21:26:04 760 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    问题已解决。。

    JedisCluster代替即可

    回复 @0fsfsfe:嗯嗯回复 @太阳雨翼:不好意思,刚看见、、、是的。用jedis最新版就可以了。。而且自带的连接池,不需要close回复 @太阳雨翼:已解决,JedisCluster在jedis2.8.1版本及以上,可以直接通过geoadd()函数来操作;回复 @0fsfsfe:请问具体是怎么代替的
    2020-06-08 21:26:19
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Redis在唯品会的应用实践——架构演进与功能定制 立即下载
微博的Redis定制之路 立即下载
云数据库Redis版的开源之路 立即下载