Redis 的 hash 是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象。Redis 中每个 hash 可以存储 232 - 1 键值对(40多亿)。
命令 | 描述 |
---|---|
HSET KEY field value | 将哈希表 KEY 中的字段 field 的值设为 value 。 |
HSETNX KEY field value | 只有在字段 field 不存在时,设置哈希表字段的值。 |
HMSET KEY field1 value1 field2 value2 | 同时将多个 field-value (域-值)对设置到哈希表 KEY 中。 |
HGET KEY field | 获取存储在哈希表中指定字段的值。 |
HGETALL KEY | 获取在哈希表中指定 KEY 的所有字段和值。 |
HMGET KEY field1 field2 | 获取所有给定字段的值。 |
HKEYS KEY | 获取所有哈希表中的字段。 |
HVALS KEY | 获取哈希表中所有值。 |
HLEN KEY | 获取哈希表中字段的数量。 |
HINCRBY KEY field increment | 为哈希表 KEY 中的指定字段的整数值加上增量 increment 。 |
HINCRBYFLOAT KEY field increment | 为哈希表 KEY 中的指定字段的浮点数值加上增量 increment 。 |
HDEL KEY field1 field2 | 删除一个或多个哈希表字段。 |
HEXISTS KEY field | 查看哈希表 KEY 中,指定的字段是否存在。 |
HSCAN KEY cursor [MATCH pattern] [COUNT count] | 迭代哈希表中的键值对,类似 SCAN 命令。 |
192.168.98.70:6379> HMSET haicoder url "www.haicoder.net" module "Database" category "Redis" OK 192.168.98.70:6379> HGETALL haicoder 1) "url" 2) "www.haicoder.net" 3) "module" 4) "Database" 5) "category" 6) "Redis" 192.168.98.70:6379> HDEL haicoder category (integer) 1 192.168.98.70:6379> HGETALL haicoder 1) "url" 2) "www.haicoder.net" 3) "module" 4) "Database" 192.168.98.70:6379> DEL haicoder (integer) 1
我们首先,使用 HMSET 命令给键 haicoder 的 url 字段,module 字段和 category 字段分别设置值。接着,使用 HGETALL 命令,获取键 haicoder 的所有字段的值。
再次,使用 HDEL 命令,删除键 haicoder 的 category 字段。最后,我们使用 HGETALL 命令,获取键 haicoder 的所有字段的值,此时已经没有了 category 字段。
Redis 的 hash 是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象。