最简单的哈希算法可以用求余方式取哈希值(哈希地址),不同的哈希地址存放不同的数据,由此,需要提供键-值(Key-Value)关系的哈希表,键记录哈希地址、值记录数据。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| def my_hash1(x): return (x % 5)
def my_hash2(x): return (x % 7) ^ 2
print(my_hash1(2)) print(my_hash1(3)) print(my_hash1(4)) print(my_hash1(5))
print(my_hash2(2)) print(my_hash2(3)) print(my_hash2(4)) print(my_hash2(5))
|
利用哈希算法,我们可以实现资源均衡分布处理。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| records = [ [1, 5], [8, 29], [15, 20], [17, 21], [31, 60] ]
server_addr = { 0: '192.168.1.1', 1: '192.168.1.2', 2: '192.168.1.3', 3: '192.168.1.4' } n = len(server_addr) print(n)
for record in records: server_id = record[0] % n print(record[0], '存储到', server_addr[server_id])
|