Redis避不开的五种数据布局
|
我们看上图执行的呼吁知道,hset 呼吁也是有返回值的。假如 hset 呼吁配置乐成,则返回 1,不然返回 0。除此之外 Redis 也为哈希范例提供了 hsetnx 呼吁。在前文对字符串的先容中,我们知道 nx 呼吁只有当 key 不存在的时辰,才气配置乐成,同样的,hsetnx 呼吁在 field 不存在的时辰,才气配置乐成。 2.获取值 hget key field 我们看 hget 呼吁和 get 有很大的差异,get 呼吁在获取的时辰,只要写一个名字就可以了,而 hget 呼吁则要写两个名字,第一个名字是 key,第二个名字是 field。虽然 key 可能 field 不存在时,返回的功效都是 nil。 3.删除 field hdel key field [field ...] hdel 呼吁删除的时辰,也会有返回值,而且这个返回就是乐成删除 field 的个数。当 field 不存在时,并不会报错,而是直接返回 0。 4.计较 field 个数 hlen key hlen 呼吁返回的就是当前 key 中 field 的个数,假如 key 不存在,则返回 0。 5.批量配置或获取 field-value hmget key field [field ...] hmset key field value [field value ...] hmset 呼吁和 hmget 呼吁别离是批量配置和获取值的,hmset 呼吁没有什么要留意的,但 hmget 呼吁要出格留意,当我们获取一个不存在的 key 可能不存在的 field 时,Redis 并不会报错,而是返回 nil。而且有几个 field 不存在,则 Redis 返回几个 nil。 6.判定 field 是否存在 hexists key field 当执行 hexists 呼吁时,假如当前 key 包罗 field,则返回 1,不然返回 0。 7.获取全部 field hkeys key 8.获取全部 value hvals key 9.获取全部的 field-value hgetall key hgetall 呼吁会返回当前 key 中的全部 field-value,并凭证次序依次返回。 10.计数 hincrby key field increment hincrbyfloat key field increment hincrby 呼吁和 incrby 呼吁的行使成果根基一样,都是对值举办增量操纵的,独一差异的就是 incrby 呼吁的浸染域是 key,而 hincrby 呼吁的浸染域则是 field。 11.计较 value 的字符串长度 hstrlen key field hstrlen 呼吁返回的是当前 key 中 field 中字符串的长度,假如当前 key 中没有 field 则返回 0。 时刻伟大度 内部编码 Redis 哈希范例的内部编码有两种,它们别离是:
下面我们通过以下呼吁来演示一下 ziplist 和 hashtable 这两种内部编码。 当 field 个数较量少而且 value 也不是很大时辰 Redis 哈希范例的内部编码为 ziplist: 当 value 中的字节数大于 64 字节时(可以通过 hash-max-ziplist-value 配置),内部编码会由 ziplist 酿成 hashtable。 当 field 个数高出 512(可以通过 hash-max-ziplist-entries 参数配置),内部编码也会由 ziplist 酿成 hashtable。 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |


