Redis学习(五)| 哈希 Hash

Redis hash是一个string类型的field(字段)和value(值)的映射表,hash特别适合用于存储对象。

 hash是将任意长度的输入通过散列算法变换成固定长度的输出,最终输出hash值。

一个哈希存储一条数据,一个字段field存储一条数据中的一个属性,字段值value是属性对应的值。

 Redis 中每个 hash 可以存储 232 - 1 键值对(40多亿)。

哈希表hash table是为了将数据映射到数组中某个位置,通过数组下标访问元素以提高数据的查询速度,这种查询的平均期望时间复杂度为0(1)。

例:

127.0.0.1:6379>  HMSET hashkey field1 "value1" field2 "value2 with space but in one str" field3 3 field4 value4
OK
127.0.0.1:6379>  HGETALL runoobkey
1) "field1"
2) "value1"
3) "field2"
4) "value2 with space but in one str"
5) "field3"
6) "3"
7) "field4"
8) "value4"

列举出与Redis Hash相关的基本命令:

序号 命令 描述
1 HDEL key field1 [field2] 删除一个或多个哈希表字段
2 HEXISTS key field 查看哈希表 key 中,指定的字段是否存在
3 HGET key field 获取存储在哈希表中指定字段的值
4 HGETALL key 获取在哈希表中指定 key 的所有字段和值
5 HINCRBY key field increment 为哈希表 key 中的指定字段的整数值加上增量 increment
6 HINCRBYFLOAT key field increment 为哈希表 key 中的指定字段的浮点数值加上增量 increment
7 HKEYS key 获取所有哈希表中的字段
8 HLEN key 获取哈希表中字段的数量
9 HMGET key field1 [field2] 获取所有给定字段的值
10 HMSET key field1 value1 [field2 value2] 同时将多个 field-value (域-值)对设置到哈希表 key 中
11 HSET key field value 将哈希表 key 中的字段 field 的值设为 value
12 HSETNX key field value 只有在字段 field 不存在时,设置哈希表字段的值
13 HVALS key 获取哈希表中所有值
14 HSCAN key cursor [MATCH pattern] [COUNT count] 迭代哈希表中的键值对
原文地址:https://www.cnblogs.com/wangzhilong/p/14620842.html