dw網(wǎng)站建設(shè)怎么放在網(wǎng)上百度收錄入口在哪里查詢
Redis dict使用的哈希算法
前面提到,一個(gè)kv鍵值對(duì),添加到哈希表時(shí),需要用一個(gè)映射函數(shù)將key散列到一個(gè)具體的數(shù)組下標(biāo)。
Redis 目前使用兩種不同的哈希算法:
- MurmurHash2
是種32 bit 算法:這種算法的分布率和速度都非常好;Murmur哈希算法最大的特點(diǎn)是碰撞率低,計(jì)算速度快。Google的Guava庫(kù)包含最新的Murmur3。
具體信息請(qǐng)參考 MurmurHash 的主頁: http://code.google.com/p/smhasher/ 。 - 基于 djb 算法實(shí)現(xiàn)的一個(gè)大小寫無關(guān)散列算法:具體信息請(qǐng)參考 http://www.cse.yorku.ca/~oz/hash.html
關(guān)于使用哪種算法取決于具體應(yīng)用所處理的數(shù)據(jù):
- 命令表以及 Lua 腳本緩存都用到了算法 2 。
- 算法 1 的應(yīng)用則更加廣泛:數(shù)據(jù)庫(kù)、集群、哈希鍵、阻塞操作等功能都用到了這個(gè)算法。
Redis dict各種操作
以下是用于處理 dict 的各種 API , 它們的作用及相應(yīng)的算法復(fù)雜度:
dict的創(chuàng)建(dictCreate)
創(chuàng)建dict
dic