[英]What data structure should i use for caching ordered entities
我需要在緩存中存儲一些項目,例如聊天消息。 我還需要將這些項目切成鍵值范圍。 例如(返回聊天消息),最常見的緩存操作是從開始日期到結束日期獲取聊天消息。
我應該考慮什么數據結構? 我在考慮簡單數組,但它適用於O(n)。 是否有任何可以更快工作的數據結構?
您可以使用像Red-Black Tree這樣的自平衡二進制搜索樹,該樹以有序的方式存儲條目,並在平均和最壞情況下都以O(logn)提供插入,刪除,搜索。
因此,當您需要一個日期間隔之間的聊天消息時,可以在RB樹中搜索已排序的數據范圍。
使用關聯集,將數據存儲在array<data>
,但使用哈希表存儲pair<data , arrayIndex>
。 這樣,您可以使用o(1)搜索,插入和刪除。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.