Redis数据结构和操作 - Hash

分类:技术文档 - Redis | 阅读(4300) | 发布于:2014-12-18 17:12

Redis数据结构和操作 - Hash

hash读写函数:
hDel :删除一个多个域
hExists :判断一个hash域是否存在
hGet :获取hash域的值
hGetAll :获取所有域值
hIncrBy :自增长一个hash int域的值
hKeys :获取hash 所有域
hLen :获取域个数
hMGet :批量获取域的值
hMSet :批量设置域的值
hSet :设置域的值
hVals:得到所有域的值


#---------------
# hSet
#---------------
添加一个VALUE到HASH中。如果VALUE已经存在于HASH中,则返回FALSE。
$redis->delete('h')

$redis->hSet('h', 'key1', 'hello'); /* 1, 'key1' => 'hello' in the hash at "h" */

$redis->hGet('h', 'key1'); /* returns "hello" */

$redis->hSet('h', 'key1', 'plop'); /* 0, value was replaced. */

$redis->hGet('h', 'key1'); /* returns "plop" */


#---------------
# hGet
#---------------
取得HASH中的VALUE,如何HASH不存在,或者KEY不存在返回FLASE。
$redis->hSet('h', 'key1', 'plop'); /* 0, value was replaced. */

$redis->hGet('h', 'key1'); /* returns "plop" */


#---------------
# hSetNx
#---------------
添加一个VALUE到HASH STORE中,如果FIELD不存在。
$redis->delete('h')

$redis->hSetNx('h', 'key1', 'hello'); /* TRUE, 'key1' => 'hello' in the hash at "h" */

$redis->hSetNx('h', 'key1', 'world'); 

/* FALSE, 'key1' => 'hello' in the hash at "h". No change since the field wasn't replaced. */


#---------------
# hLen
#---------------
取得HASH表的长度。
$redis->delete('h')

$redis->hSet('h', 'key1', 'hello');

$redis->hSet('h', 'key2', 'plop');

$redis->hLen('h'); /* returns 2 */


#---------------
# hDel
#---------------
删除指定的元素。


#---------------
# hKeys
#---------------
取得HASH表中的KEYS,以数组形式返回。
$redis->delete('h');

$redis->hSet('h', 'a', 'x');

$redis->hSet('h', 'b', 'y');

$redis->hSet('h', 'c', 'z');

$redis->hSet('h', 'd', 't');

var_dump($redis->hKeys('h')); 

// array(4) {  [0]=>  string(1) "a" , [1]=>  string(1) "b" ,[2]=>  string(1) "c" ,[3]=>  string(1) "d"  }

#---------------
# hVals
#---------------
取得HASH表中所有的VALUE,以数组形式返回。
$redis->delete('h');

$redis->hSet('h', 'a', 'x');

$redis->hSet('h', 'b', 'y');

$redis->hSet('h', 'c', 'z');

$redis->hSet('h', 'd', 't');

var_dump($redis->hVals('h'));

//array(4) {[0]=>string(1) "x",[1]=>string(1) "y",[2]=>string(1) "z",[3]=>string(1) "t",}

#---------------
# hGetAll
#---------------
取得整个HASH表的信息,返回一个以KEY为索引VALUE为内容的数组。
$redis->delete('h');

$redis->hSet('h', 'a', 'x');

$redis->hSet('h', 'b', 'y');

$redis->hSet('h', 'c', 'z');

$redis->hSet('h', 'd', 't');

var_dump($redis->hGetAll('h'));

/* array(4) {["a"]=>string(1) "x",["b"]=>string(1) "y",["c"]=>string(1) "z",["d"]=>string(1) "t"} */

#---------------
# hExists
#---------------
验证HASH表中是否存在指定的KEY-VALUE
$redis->hSet('h', 'a', 'x');

$redis->hExists('h', 'a'); /*  TRUE */

$redis->hExists('h', 'NonExistingKey'); /* FALSE */

#---------------
# hIncrBy
#---------------
根据HASH表的KEY,为KEY对应的VALUE自增参数VALUE
$redis->delete('h');

$redis->hIncrBy('h', 'x', 2); /* returns 2: h[x] = 2 now. */

$redis->hIncrBy('h', 'x', 1); /* h[x] ← 2 + 1. Returns 3 */

#---------------
# hIncrByFloat
#---------------
根据HASH表的KEY,为KEY对应的VALUE自增参数VALUE。浮点型
$redis->delete('h');

$redis->hIncrByFloat('h','x', 1.5); /* returns 1.5: h[x] = 1.5 now */

$redis->hIncrByFLoat('h', 'x', 1.5); /* returns 3.0: h[x] = 3.0 now */

$redis->hIncrByFloat('h', 'x', -3.0); /* returns 0.0: h[x] = 0.0 now */


#---------------
# hMset
#---------------
批量填充HASH表。不是字符串类型的VALUE,自动转换成字符串类型。
使用标准的值。NULL值将被储存为一个空的字符串。
$redis->delete('user:1');

$redis->hMset('user:1', array('name' => 'Joe', 'salary' => 2000));

$redis->hIncrBy('user:1', 'salary', 100); // Joe earns 100 more now.

#---------------
# hMGet
#---------------
批量取得HASH表中的VALUE。
$redis->delete('h');

$redis->hSet('h', 'field1', 'value1');

$redis->hSet('h', 'field2', 'value2');

$redis->hmGet('h', array('field1', 'field2'));

/* returns array('field1' => 'value1', 'field2' => 'value2') */

标签:redis