【问题标题】:can predis hmget use array as parameter of multiple fieldspredis hmget 可以使用数组作为多个字段的参数吗
【发布时间】:2014-03-11 18:14:29
【问题描述】:

predis 可以使用数组作为 hmget() 的第二个参数来一次检索多个字段吗?例如 $client->hmget($key, $fields); //$fields 是一个数组

它还可以接受字符串的许多参数作为字段吗?例如。: $client->hmget($key, $field1, $field2, $field3);

【问题讨论】:

    标签: php redis predis


    【解决方案1】:

    Predis 支持为可变 Redis 命令传递多个键(或带值的键)的两种方式。第一个基本上遵循Redis documentation 定义的相同命令签名,因此以HMSETHMGET 为例,您将拥有:

    $redis->hmset("hash", "field:1", "value:1", "field:2", "value:2");
    $values = $redis->hmget("hash", "field:1", "field:2");
    

    但您也可以将键和/或值列表作为单个数组参数传递:

    $redis->hmset("hash", array("field:1" => "value:1", "field:2" => "value:2"));
    $values = $redis->hmget("hash", array("field:1", "field:2"));
    

    选择使用哪一个实际上只是一个偏好问题。

    【讨论】:

    • 对不起@nrk,只有第二种方法对我有用。文档github.com/phpredis/phpredis#hmget 建议它是一个数组。第一种方法返回错误。是否依赖于特定版本?
    • @SanathBallal phpredis 不是 Predis,问题(和我的回答)与后者有关。
    【解决方案2】:

    来自 Predis 存储库

    $redis->hmset('metavars', 'foo', 'bar', 'hoge', 'piyo', 'lol', 'wut');
    
    $redis->hmget('metavars', 'foo', 'hoge', 'unknown'));
    

    【讨论】:

    • 对这个问题投反对票是不好的。当您不是 100% 确定并且只想澄清 1% 的不确定性时,出了什么问题
    【解决方案3】:

    你可以试试这个:

    $pd =  $redis->hmget("regconfig" ,array("cont_mgr"));
    print_r($pd);
    

    【讨论】:

      猜你喜欢
      • 2011-01-24
      • 2012-09-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-20
      • 1970-01-01
      相关资源
      最近更新 更多