Redis Hash

原创
2016/09/30 09:23
阅读数 228

Hash(哈希表)

域-值对,key不会重复,其实哈希表就像是一个只有String类型的Redis。

 

1、基本操作(CURD)

>hmset key field value [field value ...]

将多个 field-value (域-值)对设置到哈希表 key 中,新的域-值对会覆盖哈希表中已存在的域-值对。

 

>hset key field value

将单个 field-value (域-值)对设置到哈希表 key 中,新的域-值对会覆盖哈希表中已存在的域-值对。

 

>hsetnx key field value

将哈希表 key 中的域 field 的值设置为 value ,当且仅当域 field 不存在。若域 field 已经存在,该操作无效。

 

>hmget key field [field ...]

返回哈希表 key 中,一个或多个给定域的值。如果key不存在则返回null.

 

>hget key field

返回哈希表 key 中,一个给定域的值。如果key不存在则返回null.

 

>hdel key field [field ...]

原子操作,删除哈希表 key 中的一个或多个指定域,不存在的域将被忽略。

 

2、扩展操作

>hgetall key

返回哈希表 key 中所有的域-值对,以列表形式返回,奇数索引下的值为域,偶数索引下的值为域对应的值,数据量大时尽量不用。

 

>hkeys key

返回哈希表 key 中的所有域,数据量大时尽量不用。

 

>hvals key

返回哈希表 key 中的所有域对应的值,数据量大时尽量不用。

 

>hexists key field

查看哈希表 key 中,给定域 field 是否存在。

 

>hlen key

返回哈希表 key 中域的数量。

 

>hstrlen key field

返回哈希表 key 中, 与给定域 field 相关联的值的字符串长度(string length)。

 

>hscan key cursor [MATCH pattern] [COUNT count]

通过游标遍历哈希表,每次批量返回一定数量的数据,他比 hkeys hvals hgetall 都要好,原因是数据量大时,他们都会被阻塞。

 

3、修改操作 i++

>hincrby key field increment

为哈希表 key 中的域 field 的值加上增量 increment 。增量也可以为负数,相当于对给定域进行减法操作。如果不存在默认初始化为0然后进行对应的加减操作。

 

>hincrbyfloat key field increment

为哈希表 key 中的域 field 加上浮点数增量 increment,增量也可以为负数,相当于对给定域进行减法操作 。如果哈希表中没有域 field ,那么 hincrbyfloat 会先将域 field 的值设为 0 ,然后再执行加法操作。

 

 

 

 

 

 

 

 

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部