redis hash类型

field 或者 value的大小超出一定限制后,Redis 会在内部自动将 zipmap 替换成正常的 hash 实现. 这个限制可以在配置文件中指定hash 对象时开始是用 zipmap(又称为 small hash)来存储的。这个 zipmap 其实并不是 hash table,但是 zipmap 相比正常的 hash 实现可以节省不少 hash 本身需要的一些元数据存储开销。

hash-max-zipmap-entries 64 #配置字段最多 64 个

hash-max-zipmap-value 512 #配置 value 最大为 512 字节

1 hset

设置 hash field 为指定值,如果 key 不存在,则先创建。

127.0.0.1:6379> hset hash name wxc

(integer) 1

2 hsetnx

置 hash field 为指定值,如果 key 不存在,则先创建。如果 field 已经存在,返回 0。

127.0.0.1:6379> hset hash name wxc

(integer) 1

127.0.0.1:6379> hsetnx hash eamil [email protected]

(integer) 1

127.0.0.1:6379> hsetnx hash name wxcc

(integer) 0

3 hmset

存在即覆盖

127.0.0.1:6379> hmset hash name wxc email [email protected]

OK

4 hget

获取指定的 hash field。

5 hmget

获取全部指定的 hash filed

127.0.0.1:6379> hmget hash name email

1) "wxc"

2) "[email protected]"

6 hincrby

指定的 hash filed 加上给定值。类似incrby。默认为0。

127.0.0.1:6379> hincrby hash age 4

(integer) 4

7 hexists

测试指定 field 是否存在。

8 hlen

返回指定 hash 的 field 数量。

127.0.0.1:6379> hmset hash name wxc email [email protected] age 13

OK

127.0.0.1:6379> hmget hash name email age

1) "wxc"

2) "[email protected]"

3) "13"

127.0.0.1:6379> hlen hash

(integer) 3

9 hdel

删除指定 hash 的 field 。

127.0.0.1:6379> hlen hash

(integer) 3

127.0.0.1:6379> hdel hash name

(integer) 1

127.0.0.1:6379> hlen hash

(integer) 2

10 hkeys

返回 hash 的所有 field。

127.0.0.1:6379> hkeys hash

1) "email"

2) "age"

11 hvals

返回 hash 的所有 value。

127.0.0.1:6379> hkeys hash

1) "email"

2) "age"

127.0.0.1:6379> hvals hash

1) "[email protected]"

2) "13"

12 hgetall

获取某个 hash 中全部的 filed 及 value。

127.0.0.1:6379> hgetall hash

1) "email"

2) "[email protected]"

3) "age"

4) "13"

13 hscan

14 hincrbyfloat

为哈希表key中的域field加上浮点数增量increment。

如果哈希表中没有域field,那么hincrbyfloat会先将域field的值设为0,然后再执行加法操作。

如果键key不存在,那么hincrbyfloat会先创建一个哈希表,再创建域field,最后再执行加法操作。

你可能感兴趣的:(redis hash类型)