redis字典的內部實作方式
高洛峰
高洛峰 2017-04-24 16:00:29
0
4
764

最近在看redis的設計與實作一書,看到字典這一章節時,發現redis字典的增刪改查操作的複雜度都是O(1):

對此不太懂,看了它的資料結構,感覺不應該是O(1)的複雜度,給定一個key,去查value的話如果不是定長並且有序的儲存結構,怎麼可能是O (1)的複雜度?

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回覆(4)
伊谢尔伦

下圖是Hash Table的示意圖:

主要是優化Hash Function,尽可能的减少冲突。也就是防止不同的key映射到相同的value上了,雖說即使衝突了也沒什麼。 。 。

參考:
http://www.tutorialspoint.com/data_structures_algorithms/hash_data_structure.htm 不確定是否需要翻牆。

PS:演算法導論可以看看。 。 。

仅有的幸福

看來題主是不知道什麼是hash啊,建議把資料結構的基礎先打好,再去研究redis基於資料結構的應用。

當然,hash的複雜度O(1)是指的平均複雜度,同時也是最理想狀態下的,最壞情況下是O(n)

習慣沉默

我也不是很懂,遍歷鍊錶,複雜度怎麼會是1呢?

某草草

所謂字典為非也就是一個hash table, 而hashmap在沒有太多collision的情況下增查刪改複雜度都是線性的。 ~~

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!