常用php操作redis命令整理(二)哈希类型详解
HSET
将哈希表key中的域field的值设为value;如果field是哈希表中的一个新建域,并且值设置成功,返回1;如果哈希表中域field已经存在且旧值已被新值覆盖,返回0。
<?php
$redis->hset('hash1','key1','val1');
var_dump($redis->hset('hash1','key1','val1_new')); //将key为'key1' value为'val1_new'覆盖。返回0
var_dump($redis->hset('hash1','key2','val2')); //返回1
HGET
返回哈希表key中给定域field的值。当给定域不存在或是给定key不存在时,返回nil。
<?php
$res = $redis->hget('hash1','key1'); //取出表'hash1'中的key 'key1'的值,返回'val1_new'
var_dump($redis->hget('hash1','key3')); //不存在返回false
HMGET
返回哈希表key中,一个或多个给定域的值。
如果给定的域不存在于哈希表,那么返回一个nil值。
因为不存在的key被当作一个空哈希表来处理,所以对一个不存在的key进行HMGET操作将返回一个只带有nil值的表。
<?php
$redis->hset('hash1','key1','val1');
$arr = ['key1', 'key6'];
var_dump($redis->hmget('hash1',$arr)); //array(2) { ["key1"]=> string(4) "val1" ["key6"]=> bool(false) }
HGETALL
返回哈希表key中,所有的域和值。
在返回值里,紧跟每个域名(field name)之后是域的值(value),所以返回值的长度是哈希表大小的两倍。
以列表形式返回哈希表的域和域的值。 若key不存在,返回空列表。
<?php
$redis->hset('hash1','key1','val1');
$redis->hset('hash1','key2','val2');
var_dump($redis->hGetAll('hash1')); //array(2) { ["key1"]=> string(4) "val1" ["key2"]=> string(4) "val2" }
HDEL
删除哈希表key中的一个或多个指定域,不存在的域将被忽略。
<?php
var_dump($redis->hdel('hash1','key2')); //int(1) 删除成功返回1
HLEN
返回哈希表key中域的数量。
<?php
var_dump($redis->hlen('hash1')); //int(1)
HEXISTS
查看哈希表key中,给定域field是否存在。
如果哈希表含有给定域,返回1;不含有给定域,或key不存在,返回0。
<?php
var_dump($redis->HEXISTS('hash1','key1')); //bool(true)
var_dump($redis->HEXISTS('hash1','key6')); // bool(false)
HINCRBY
为哈希表key中的域field的值加上增量increment,也可以为负数,相当于对给定域进行减法操作。
如果key不存在,一个新的哈希表被创建并执行HINCRBY命令。
如果域field不存在,那么在执行命令前,域的值被初始化为0。
<?php
$redis->hset('hash1','key1','val1');
$redis->hset('hash1','key2','val2');
$redis->hincrby('hash1','key3',3);
$redis->hincrby('hash1','key4',-3);
var_dump($redis->hgetall('hash1')); //array(4) { ["key1"]=> string(4) "val1" ["key2"]=> string(4) "val2" ["key3"]=> string(1) "3" ["key4"]=> string(2) "-3" }
HKEYS
返回哈希表key中的所有域。当key不存在时,返回一个空表。
<?php
var_dump($redis->hkeys('hash1')); //array(4) { [0]=> string(4) "key1" [1]=> string(4) "key2" [2]=> string(4) "key3" [3]=> string(4) "key4" }
var_dump($redis->hkeys('hash6')); //array(0) { }
HVALS
返回哈希表key中的所有值。当key不存在时,返回一个空表。
<?php
var_dump($redis->hvals('hash1')); //array(4) { [0]=> string(4) "val1" [1]=> string(4) "val2" [2]=> string(1) "3" [3]=> string(2) "-3" }
var_dump($redis->hvals('hash5')); // array(0) { }
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。