我使用以下方法为一些项目设置了哈希表:
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"}
恢复对象?
如果不编写脚本,就无法做到这一点。
如果你的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逻辑相同)。