Redis hash 是一个 string 类型的字段和值的映射表,它适合用于存储对象。每个 hash 可以存储 2的32次方减1个键值对。
1. hset - 用于为哈希表中的字段赋值
// 将哈希表 key 中的字段 field1 的值设为 value1;
// 成功时返回1,失败时返回0; 但是如果 key1已存在,只是重新赋值的话 仍返回0,并覆盖原值
$redis->hSet('key', 'field1', 'value1');
2. hMSet - 同时将多个 field-value (域值)对设置到哈希表中
// 成功返回 true
$redis->hMSet('key', [
'field1' => 'value1',
'field2' => 'value3'
]);
3. hSetNx - 只有当字段 field 不存在时,设置哈希表字段的值
// 成功返回 true, 失败返回 false
$redis->hSetNx('key', 'field3', 'value2');
4. hDel - 删除一个或多个哈希表字段
// 成功时返回删除个数,失败时返回0
$redis->hDel('key','field1');
$redis->hDel('key','field1', 'field2');
5. hExists - 查看哈希表 key 中,指定字段是否存在
$redis->hExists('key', 'field2');
6. hGet - 获取存储在哈希表中指定字段的值
// 成功时返回字段值,失败时返回 false
$redis->hGet('key', 'field2');
7. hGetAll - 获取在哈希表中指定 key 的所有字段和值
$redis->hGetAll('key');
/* 输出
array(2) {
["field2"]=>
string(6) "value3"
["field3"]=>
string(6) "value2"
}
*/
8.hMGet - 获取所有给定字段的值
$redis->hMGet('h', ['x', 'float']);
9. hIncrBy - 为哈希表 key 中的指定字段的整数值加上增量
$redis->hIncrBy('h','x',1); // 返回增量后的结果
10. hIncrByFloat - 为哈希表 key 中的指定字段的浮点数值加上增量
$redis->hIncrByFloat('h', 'x', 1.5); // 返回增量后的结果
11. hkeys - 获取指定哈希表中的所有字段
$redis->hKeys('h');
/* 输出
array(2) {
[0]=>
string(1) "x"
[1]=>
string(5) "float"
}
*/
12. hVals - 获取哈希表中所有值
$redis->hVals('key');
/* 输出
array(3) {
[0]=>
string(6) "value1"
[1]=>
string(6) "value3"
[2]=>
string(6) "value2"
}
*/
13. hlen - 获取哈希表中字段的数量
$redis->hLen('h');
14. hScan - 迭代哈希表中的键值对
$iterator = null;
while ($elements = $redis->hScan('h', $iterator)) {
foreach ($elements as $key => $value) {
echo $key . ' => ' . $value . PHP_EOL;
}
}
/* 输出
x => 9.5
float => 3
*/
网友评论