uso easyswoole ReDiS ejecución geoRadiusByMember inválida reparación Conde

Este autor tiene ERROR Actualizado: https://github.com/easy-swoole/redis/pull/23/files 

Causa del problema, geoRadiusByMember siguiente lista de parámetros, utilizado cuando sea necesario para llevar a Conde Conde de la serie de X artículo, tales como la necesidad es de 5 Conde. 5,

GEORADIUSBYMEMBER key member radius m|km|ft|mi [WITHCOORD] [WITHDIST] [WITHHASH] [COUNT count] [ASC|DESC] [STORE key] [STOREDIST key]

El método del marco 

geoRadiusByMember($key, $location, $radius, $unit, $withCoord, $withDist, $withHash, $count, $sort, $storeKey, $storeDistKey);

Contar parámetro existe, pero la forma en configuración no tiene ningún efecto, sino también para establecer una serie de errores, seguimiento, posicionamiento

vendedor / easyswoole / Redis / src / Client.php método de archivo, en este caso, teniendo en cuenta este conteo caso particular,

 

 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);
    }

Modificado de la siguiente manera, para volver a la normalidad

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);
    }

 

Publicado 27 artículos originales · ganado elogios 53 · vistas 160 000 +

Supongo que te gusta

Origin blog.csdn.net/auspi12341/article/details/103515270
Recomendado
Clasificación