Hash(哈希表)索引
域-值对,key不会重复,其实哈希表就像是一个只有String类型的Redis。rem
一、基本操做(CURD)字符串
>hmset key field value [field value ...]get
将多个 field-value (域-值)对设置到哈希表 key 中,新的域-值对会覆盖哈希表中已存在的域-值对。string
>hset key field value扩展
将单个 field-value (域-值)对设置到哈希表 key 中,新的域-值对会覆盖哈希表中已存在的域-值对。遍历
>hsetnx key field valuefloat
将哈希表 key 中的域 field 的值设置为 value ,当且仅当域 field 不存在。若域 field 已经存在,该操做无效。数据
>hmget key field [field ...]di
返回哈希表 key 中,一个或多个给定域的值。若是key不存在则返回null.
>hget key field
返回哈希表 key 中,一个给定域的值。若是key不存在则返回null.
>hdel key field [field ...]
原子操做,删除哈希表 key 中的一个或多个指定域,不存在的域将被忽略。
二、扩展操做
>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 都要好,缘由是数据量大时,他们都会被阻塞。
三、修改操做 i++
>hincrby key field increment
为哈希表 key 中的域 field 的值加上增量 increment 。增量也能够为负数,至关于对给定域进行减法操做。若是不存在默认初始化为0而后进行对应的加减操做。
>hincrbyfloat key field increment
为哈希表 key 中的域 field 加上浮点数增量 increment,增量也能够为负数,至关于对给定域进行减法操做 。若是哈希表中没有域 field ,那么 hincrbyfloat 会先将域 field 的值设为 0 ,而后再执行加法操做。