当前位置:网站首页>easyswoole 使用redis执行geoRadiusByMember Count无效修复
easyswoole 使用redis执行geoRadiusByMember Count无效修复
2022-08-02 03:24:00 【auspi12341】
此BUG作者已更新:https://github.com/easy-swoole/redis/pull/23/files
问题原因 ,geoRadiusByMember 参数列表如下,使用Count的时候需要带上 Count X 条数,例如需要5条就是 Count 5,
GEORADIUSBYMEMBER key member radius m|km|ft|mi [WITHCOORD] [WITHDIST] [WITHHASH] [COUNT count] [ASC|DESC] [STORE key] [STOREDIST key]
而框架提供的方法
geoRadiusByMember($key, $location, $radius, $unit, $withCoord, $withDist, $withHash, $count, $sort, $storeKey, $storeDistKey);存在count参数,但是怎么设置也没有效果,设置数组还要报错,跟踪问题,定位
vendor/easyswoole/redis/src/Client.php文件方法,此处为考虑到count这种特殊情况,
public function sendCommand(array $commandList): bool
{
$argNum = count($commandList);
$str = "*{$argNum}\r\n";
foreach ($commandList as $value) {
$len = strlen($value);
$str = $str . '$' . "{$len}\r\n{$value}\r\n";
}
return $this->send($str);
}修改如下,即可正常返回
public function sendCommand(array $commandList): bool
{
$argNum = 0;
foreach ($commandList as $data ){
if(is_array($data)){
$argNum = $argNum + (count($data) + 1);
}else{
$argNum ++;
}
}
$str = "*{$argNum}\r\n";
foreach ($commandList as $value) {
if(is_array($value)){
foreach ($value as $key => $values) {
$len = strlen($key);
$str = $str . '$' . "{$len}\r\n{$key}\r\n";
$len = strlen($values);
$str = $str . '$' . "{$len}\r\n{$values}\r\n";
}
}else{
$len = strlen($value);
$str = $str . '$' . "{$len}\r\n{$value}\r\n";
}
}
return $this->send($str);
}
边栏推荐
- IO流、 编码表、 字符流、 字符缓冲流
- 6.24今日学习
- 线程池(线程池介绍与使用)
- 微信小程序自定义swiper轮播图面板指示点|小圆点|进度条
- Common methods of js array deduplication
- 【 application 】 life many years of operations, what turned scored 12 k + annual bonus salary?
- 环形链表---------约瑟夫问题
- 如何根据地图上的两个坐标点来确定方向
- STM32 触发HardFault_Handler如何查找原因
- DSPE-PEG-PDP, DSPE-PEG-OPSS, phospholipid-polyethylene glycol-mercaptopyridine supply, MW: 5000
猜你喜欢
随机推荐
针对简历上的问题
【手把手带你学nRF52832/nRF52840 · (1)开发环境搭建】
百度定位js API
由中序遍历和前序遍历得到后序遍历(树的遍历)
page load process
js 之 Object.defineProperty()
uniapp | 官方提供的map组件使用问题
暴力方法求解(leetcode14)查找字符串数组中的最大公共前缀
远程调试、无cuDnn、自定义模块无法导入问题记录
--fs模块--
解决uni-app 打包H5网站 下载图片问题
FreeRTOS内核详解(1) —— 临界段保护原理
C语言 内联函数
require模块化语法
js 正则中 replace() 使用
js basics
正则笔记(2)- 正则表达式位置匹配攻略
6.27面试集
网址URL
querystring模块









