Redis中Hash数据类型有哪些应用场景?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1702个文字,预计阅读时间需要7分钟。
哈希在众多编程语言中都有广泛应用,在Redis中也是如此。在Redis中,哈希类型是键值对集合,形式为value=[{field1,value1},{field2,value2},...,{fieldN,valueN}],其中value是键值对列表。
哈希在很多编程语言中都有着很广泛的应用,而在Redis中也是如此,在redis中,哈希类型是指Redis键值对中的值本身又是一个键值对结构,形如value=[{field1,value1},...{fieldN,valueN}],其与Redis字符串对象的区别如下图所示:
一:内部编码
哈希类型的内部编码有两种:ziplist(压缩列表),hashtable(哈希表)。只有当存储的数据量比较小的情况下,Redis 才使用压缩列表来实现字典类型。具体需要满足两个条件:
- 当哈希类型元素个数小于hash-max-ziplist-entries配置(默认512个)
- 所有值都小于hash-max-ziplist-value配置(默认64字节)ziplist使用更加紧凑的结构实现多个元素的连续存储,所以在节省内存方面比hashtable更加优秀。当哈希类型无法满足ziplist的条件时,Redis会使用hashtable作为哈希的内部实现,因为此时ziplist的读写效率会下降,而hashtable的读写时间复杂度为O(1)。
有关ziplist和hashtable这两种redis底层数据结构的具体实现可以参考我的另外两篇文章。
Redis数据结构——压缩列表
Redis数据结构——字典。
本文共计1702个文字,预计阅读时间需要7分钟。
哈希在众多编程语言中都有广泛应用,在Redis中也是如此。在Redis中,哈希类型是键值对集合,形式为value=[{field1,value1},{field2,value2},...,{fieldN,valueN}],其中value是键值对列表。
哈希在很多编程语言中都有着很广泛的应用,而在Redis中也是如此,在redis中,哈希类型是指Redis键值对中的值本身又是一个键值对结构,形如value=[{field1,value1},...{fieldN,valueN}],其与Redis字符串对象的区别如下图所示:
一:内部编码
哈希类型的内部编码有两种:ziplist(压缩列表),hashtable(哈希表)。只有当存储的数据量比较小的情况下,Redis 才使用压缩列表来实现字典类型。具体需要满足两个条件:
- 当哈希类型元素个数小于hash-max-ziplist-entries配置(默认512个)
- 所有值都小于hash-max-ziplist-value配置(默认64字节)ziplist使用更加紧凑的结构实现多个元素的连续存储,所以在节省内存方面比hashtable更加优秀。当哈希类型无法满足ziplist的条件时,Redis会使用hashtable作为哈希的内部实现,因为此时ziplist的读写效率会下降,而hashtable的读写时间复杂度为O(1)。
有关ziplist和hashtable这两种redis底层数据结构的具体实现可以参考我的另外两篇文章。
Redis数据结构——压缩列表
Redis数据结构——字典。

