php redis 扩展类常用操作(3) - hash

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
*/

你可能感兴趣的:(php redis 扩展类常用操作(3) - hash)