获取 hash 指定字段的值
发布时间:2025-06-24 17:51:54 作者:北方职教升学中心 阅读量:166
获取 hash 指定字段的值。它更适合缓存具有多个属性的数据。
redis> HSET myhash field1 "foo"(integer) 1redis> HDEL myhash field1(integer) 1redis> HDEL myhash field2(integer) 0。HINCRBY 浮点数版本。
获取 hash 所有字段在中间。所有值都⼩于 hash-max-ziplist-value 配置(默认 64 字节)时,Redis 会使⽤ ziplist 作为哈希的内部实现,ziplist 使⽤更紧凑的结构实现多元素的连续存储,因此,
获取 hash 所有字段及相应值。
HDEL key field [field ...]。
redis> HSET myhash field1 "Hello"(integer) 1redis> HSET myhash field2 "World"(integer) 1redis> HKEYS myhash1) "field1"#;2) "field2"#;
HINCRBY key field increment。HVALS。
语法。如果字段不存在,设置 hash 中间的字段和值。
时间复杂度:O(N), N 为 field 的个数.。
语法。举例。
HSET。
hashtable(#xfff09;:当哈希类型⽆法满⾜ ziplist 的条件c;Redis 会使⽤ hashtable 作为哈希的内部实现,因为此时 ziplist 读写效率会下降,⽽ hashtable 读写时间的复杂性为 O(1)。举例。
时间复杂度:O(N), N 为 field 的个数.。HINCRBY。
举例。HGET key field。
时间复杂度:O(1)。HINCRBYFLOAT。
举例。redis> HSET myhash field1 "Hello"(integer) 1redis> HSET myhash field2 "World"(integer) 1redis> HGETALL myhash1) "field1"#;2) "Hello"3) "field2"#;4) "World"
HMGET。例如,Hash类型中可以缓存经常访问的商品信息和用户信息c;为了快速读取和响应客户端的要求。举例。
类似String类型,Hash类型也可用于缓存数据。HSETNX。性别等。
HSET。例如,存储ID为1的汽车对象,可分别使用名称为coloror、
HINCRBYFLOAT key field increment。但是,Hash类型可以存储多个字段和字段值,因此,HSET key field value [field value ...]。
HINCRBYFLOAT。同样,用户信息Hash类型的键可以使用用户的IDc;用户的各种属性(如用户名、语法。HSETNX。
127.0.0.1:6379> object encoding hashkey。返回值:字段变化后的值。获取 hash 所有字段的数量。HEXISTS。
redis> HSETNX myhash field "Hello"(integer) 1redis> HSETNX myhash field "World"(integer) 0redis> HGET myhash field"Hello"
HINCRBY。 时间复杂度:O(1)。
时间复杂度:O(N), N 为 field 的个数.。redis> HSET myhash field1 "Hello"(integer) 1redis> HSET myhash field2 "World"(integer) 1redis> HMGET myhash field1 field2 nofield1) "Hello"2) "World"3) (nil)。
举例。HEXISTS key field。
127.0.0.1:6379> object encoding hashkey。返回值:字段个数。内部编码。
时间复杂度:O(1)。1)当 field 个数⽐较少且没有⼤的 value 时,内部编码为 ziplist:
127.0.0.1:6379> hmset hashkey f1 v1 f2 v2。返回值:字段列表。
获取 hash 所有的值。 下⾯的⽰例演⽰哈希类型的内部编码,以及响应的变化。
Hash类型非常适合存储对象的所有属性,如用户信息、redis> HSET mykey field 10.50(integer) 1redis> HINCRBYFLOAT mykey field 0.1"10.6"redis> HINCRBYFLOAT mykey field -5"5.6"redis> HSET mykey field 5.0e3(integer) 0redis> HINCRBYFLOAT mykey field 2.0e2"5200"
内部编码。
127.0.0.1:6379> object encoding hashkey。HGET。name和price的字段存储汽车的颜色、
HKEYS。"ziplist”。举例。HVALS。
HKEYS key。
HDEL。
HDEL。返回值:字段变化后的值。
1.缓存数据。举例。举例。语法。"hashtable"返回值:删除此操作的字段数。
3)当 field 个数超过 512 时,也会将内部编码转换为 hashtable:
127.0.0.1:6379> hmset hashkey f1 v1 h2 v2 f3 v3 ... 省略 ... f513 v513。名称和价格。
时间复杂度:删除⼀个元素为 O(1). 删除 N 个元素为 O(N).。节省内存⽅⾯⽐hashtable 更加优秀。 返回值:1 表⽰设置成功0 表⽰失败。返回值:字段及相应值。
redis> HSET myhash field1 "Hello"(integer) 1redis> HSET myhash field2 "World"(integer) 1redis> HLEN myhash(integer) 2。 时间复杂度:O(1)。
时间复杂度:只查询⼀个元素为 O(1), 查询多个元素为 O(N), N 查询元素数量.。HLEN。redis> HSET myhash field1 "foo"(integer) 1redis> HGET myhash field1"#;foo"redis> HGET myhash field2(nil)。年龄、
HVALS key。
HSETNX key field value。语法。
返回值:字段对应的值或 nil。
语法。举例。删除 hash 中间指定的字段。
获取 hash 指定字段的值。
语法。将 hash 将指定值添加到中间字段对应的值中。语法。redis> HSET myhash field1 "Hello"(integer) 1redis> HSET myhash field2 "World"(integer) 1redis> HVALS myhash1) "Hello"2) "World"
HGETALL。HLEN key。应用场景。
设置 hash #xff08中指定的字段;field)值(value)。商品信息等。
"hashtable"
应用场景。HKEYS。
目录。
有两种内部编码:
ziplist(#xff09压缩列表;:当哈希类型元素的数量⼩于 hash-max-ziplist-entries 配置(默认 512 )、同时,⼀次获取 hash 多个字段的值。
判断 hash 是否有指定的字段。
OK。redis> HSET myhash field1 "Hello"(integer) 1redis> HGET myhash field1"##;Hello"redis> HSET myhash field2 "Hi" field3 "World"(integer) 2redis> HGET myhash field2"##;Hi"redis> HGET myhash field3"##;World"redis> HGETALL myhash1) "field1"##;2) "Hello"3) "field2"##;4) "Hi"5) "field3"##;6) "World"HGET。 时间复杂度:O(1)。
HEXISTS。
返回值:字段对应的值或 nil。
返回值:所有的值。
HGETALL key。
OK。举例。
返回值:添加字段的数量。;存储作为字段和字段值。语法。语法。
时间复杂度:插⼊⼀组 field 为 O(1), 插⼊ N 组 field 为 O(N)。
语法。
语法。redis> HSET myhash field1 "foo"(integer) 1redis> HEXISTS myhash field1(integer) 1redis> HEXISTS myhash field2(integer) 0。
举例。HMGET key field [field ...]。
HGETALL。对象类别和ID可以构成键名,使用字段表示对象的属性,而字段值则存储属性值。
时间复杂度:O(1)。HMGET。
返回值:1 表⽰存在,0 表⽰不存在。
HLEN。
redis> HSET myhash field 5(integer) 1redis> HINCRBY myhash field 1(integer) 6redis> HINCRBY myhash field -1(integer) 5redis> HINCRBY myhash field -10(integer) -5。
2.存储对象属性。2)当有 value ⼤于 64 字节c;将内部编码转换为 hashtable:
127.0.0.1:6379> hset hashkey f3 "one string is bigger than 64 bytes ... 省略 ..."
OK。