ordered_set
时间: 2023-10-15 08:23:56 浏览: 187
OrderedSet是一种静态的、有序的、唯一的对象集合。类似于Array,它的元素具有定义的顺序,但与Set一样,在其成员上强制唯一性。可以使用OrderedSet在需要保持元素顺序和唯一性的情况下。
HashTable是基于hash function对应一个带bucket的数组的数据结构。在读取时,根据随机数和数组索引完成定位;在写入时,通过hash函数定位到bucket,然后通过拉链法解决冲突。当链表变得很长时,影响查找性能,为了减小链表的长度,Redis采用了rehash操作,即扩大当前哈希表的长度。Redis使用渐进式方式进行rehash,以解决长时间阻塞问题。在渐进式rehash的同时,Redis在空闲时间也会进行定时rehash。
Ordered-Set具备Set的基本特点,插入时需要提供score,并基于score排序。它支持并交差补操作,但需要基于score提供聚合方式,如最大、最小、权重,默认方式为求和。在更新score时,会联动更新排序结果。Ordered-Set的使用场景多样。
基于HashTable,与Set不同的是,Hash中的每个Item包括key和value。
总的来说,OrderedSet是一种具有顺序和唯一性的集合,而HashTable是一种基于hash函数的数据结构。它们在使用场景和特点上略有不同。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [OrderedSet:具有定义顺序的集合](https://download.csdn.net/download/weixin_42099176/16148191)[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^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *2* *3* [List, Set, Ordered-Set&Hash](https://blog.csdn.net/weilaizhixing007/article/details/131498006)[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^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文