簡體   English   中英

將具有多個值的多個鍵設置為Redis

[英]Set multiple keys having multiple values to Redis

我有一個使用phpredis (redis服務器的php客戶端)的php后端將鍵值對存儲到Redis服務器。 我需要存儲的數據具有以下形式:

"key1" => "v1", "v2", "v3"
"key2" => "m1", "m2", "m3"
"key3" => "n1", "n2", "n3"
...

根據我的研究,我可以使用mset命令在redis中設置多個鍵,如下所示:

$redis->mSet(array('key0' => 'value0', 'key1' => 'value1'));

但是我真正需要的是這樣的東西:

$redis->mSet(array('key0' => array('v1','v2','v3') , 'key1' => array('m1', 'm2', 'm3')));

但這只是將每個鍵的值存儲為“數組”,而不是指定的實際數組。

是否可以使用單個命令(例如mset來完成此操作,還是需要使用lPush類的命令來迭代數據並分別設置每個鍵?

phpredis文檔: https : //github.com/phpredis/phpredis

因此,您可以使用sADD來獲得所需的功能,而不是使用mSet

$redis->sAdd($key, ...$data);

完整的文檔在這里

這意味着要迭代並執行多個步驟,因此建議閱讀Redis Pipelines和包含更多信息的無恥插件鏈接

看起來像什么;

$redis    = new Redis();
$pipeline = $redis->multi(Redis::PIPELINE);

foreach ($dataset as $data) {
    $pipeline->sAdd($data['key'], ...$data['values']);
}

$pipeline->exec();

我想不出一種方法來執行此操作,盡管其他人可能比我更了解:)


編輯:看起來我有點誤解了您的問題,因為它更專注於在單個操作中執行此操作。 希望以上內容仍然有用,但是據我所知,您必須多次執行此操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM