面试官:Redis哈希数据类型是如何在内部进行实现的?

2026-05-23 00:300阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1124个文字,预计阅读时间需要5分钟。

面试官:Redis中基本的数据类型有哪些?我:Redis的基本数据类型包括:字符串(string)、哈希(hash)、列表(list)、集合(set)、有序集合(zset)。面试官:哈希数据类型的内部实现是怎样的?我:哈希数据类型内部实现是通过哈希表来存储数据的,每个哈希表可以存储多个键值对。

面试官:Redis中基本的数据类型有哪些?

我:Redis的基本数据类型有:字符串(string)、哈希(hash)、列表(list)、集合(set)、有序集合(zset)。

面试官:哈希数据类型的内部实现方式是什么?

我还沉浸在上一个问题的沾沾自喜中,顿时表情凝固了,手心开始冒出冷汗。“这个。。没有太深入了解”,我支支吾吾的说到。

面试官:回去等消息吧。

这句话说的干净利落,然后就没有然后了。失败是成功的妈妈,我不气馁,决定马上恶补一下。

哈希的编码

哈希的编码有两种,分别是压缩列表(ziplist)和哈希表(hashtable)。当所有键值对的键和值的长度都小于hash-max-ziplist-value(默认为64字节),并且键值对的数量小于hash-max-ziplist-entries(默认为512个)的时候,哈希就会使用压缩列表作为编码,否则使用哈希表作为编码。

我们来举个例子:

127.0.0.1:6379> hset one-more-hash name "万猫学社" (integer) 1 127.0.0.1:6379> hset one-more-hash gender "男" (integer) 1 127.0.0.1:6379> object encoding one-more-hash "ziplist"

此时,所有键值对的键和值的长度和键值对的数量都比较小,哈希使用压缩列表作为编码。

阅读全文
标签:内部实现

本文共计1124个文字,预计阅读时间需要5分钟。

面试官:Redis中基本的数据类型有哪些?我:Redis的基本数据类型包括:字符串(string)、哈希(hash)、列表(list)、集合(set)、有序集合(zset)。面试官:哈希数据类型的内部实现是怎样的?我:哈希数据类型内部实现是通过哈希表来存储数据的,每个哈希表可以存储多个键值对。

面试官:Redis中基本的数据类型有哪些?

我:Redis的基本数据类型有:字符串(string)、哈希(hash)、列表(list)、集合(set)、有序集合(zset)。

面试官:哈希数据类型的内部实现方式是什么?

我还沉浸在上一个问题的沾沾自喜中,顿时表情凝固了,手心开始冒出冷汗。“这个。。没有太深入了解”,我支支吾吾的说到。

面试官:回去等消息吧。

这句话说的干净利落,然后就没有然后了。失败是成功的妈妈,我不气馁,决定马上恶补一下。

哈希的编码

哈希的编码有两种,分别是压缩列表(ziplist)和哈希表(hashtable)。当所有键值对的键和值的长度都小于hash-max-ziplist-value(默认为64字节),并且键值对的数量小于hash-max-ziplist-entries(默认为512个)的时候,哈希就会使用压缩列表作为编码,否则使用哈希表作为编码。

我们来举个例子:

127.0.0.1:6379> hset one-more-hash name "万猫学社" (integer) 1 127.0.0.1:6379> hset one-more-hash gender "男" (integer) 1 127.0.0.1:6379> object encoding one-more-hash "ziplist"

此时,所有键值对的键和值的长度和键值对的数量都比较小,哈希使用压缩列表作为编码。

阅读全文
标签:内部实现