redis HASH
时间: 2023-08-26 07:17:34 浏览: 51
回答: Redis中的Hash是一种键值对类型的集合,类似于Java中的Map。它适合用于存储对象,可以将对象的唯一标识作为key,将其他对象信息存储为对应的value。在Redis中,Hash的扩容机制与一般的Hash不同。一般的Hash在扩容时需要一次性将原先的所有数据移动到新的Hash中,这对于Redis的单线程服务器来说会影响吞吐量。因此,Redis的Hash在扩容时采取渐进式的方式,分批次进行迁移,以平摊耗时。在扩容期间,查询需要进行两次,先在原有的Hash中查询,如果没有查询到则在新的Hash中查询。此外,Redis的Hash结构中还有一些特点,例如可以存储各种数据值,采用链式解决Hash冲突时的头插法,刚插入的数据更容易被再次访问。最后,Redis的Hash在有子进程时会禁止扩容,以减少COW(写时复制)时的内存拷贝。但是当Hash的使用率达到阈值时,仍然会进行扩容。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* [redis之hash](https://blog.csdn.net/happytree001/article/details/120121138)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *3* [Redis中的Hash](https://blog.csdn.net/Siebert_Angers/article/details/127188439)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]