我使用以下方法为几个项目设置哈希表:
RPUSH itemList:0 A
RPUSH itemList:0 B
RPUSH itemList:0 C
HSET items item:A A_VALUE
HSET items item:B B_VALUE
HSET items item:C C_VALUE
我目前正在使用:
LRANGE itemList:0 0 5
取回项目列表["A", "B", "C"]
如何通过{"A":"A_VALUE", "B":"B_VALUE", "C":"C_VALUE"}
修改此对象以获取对象?
答案 0 :(得分:1)
没有脚本就无法做到这一点。
如果您的redis版本低于2.6,则只能使用这样的代码(简单的php版本):
$data = $redis->lRange('itemList:0', 0, 5);
$valueKeys = array_map(
function($key) {
return 'item:' . $key;
}
, array_unique($data)
);
$values = $redis->hMGet('items', $valueKeys);
$ret = [];
foreach ($data as $key) {
$ret[$key] = $values['item:' . $key];
}
如果您使用的是Redis 2.6+,您可以编写LUA存储过程来获取数据(与php逻辑相同)。