无情,面试官又让我滚,因为我这样Redis hash类型~

一、简介

1.1 介绍

Hash类型也是一个高频的数据类型,key值为字符串,value值为hash类型(即KV对),一般用于存储对象。

对外呈现数据结构类似Java的Map<String, Map<String, Objct>>集合

hash类型它在redis中内部编码:

listpack(压缩列表):当value中的field个数小于 hash-max-listpack-entries 配置(默认512个)同时所有的filed对应的value值都小于hash-max-listpack-value配置(默认64个字节)时,Redis会使用ziplist作为hash的内部实现。listpack使用更加紧凑的结构实现多个元素的连续存储,所以在节省内存方面比hashtable更加优秀。

hashtable(哈希表):当value中kv对无法满足listpack的条件时,Redis会使用hashtable作为hash的内部实现。因为此时ziplist的读写效率下降,而hashtable的读写时间复杂度为O(1)。

小提示

1>Redis 5之前使用的是ziplist,因为致命的缺陷-连锁更新,在极端条件下会有着极差的性能ÿ

猜你喜欢

转载自blog.csdn.net/langfeiyes/article/details/129764523
今日推荐