2010-10-27 24 views
6

Tôi đang xem tài liệu và tôi hơi bối rối về cách memcache cân bằng tải nội bộ nếu nhiều máy chủ được chỉ định. Ví dụ:Sử dụng nhiều máy chủ memcache trong một hồ bơi

import memcache 
mc.set_servers(['127.0.0.1:11211','127.0.0.1:11212',]) 
mc.set("some_key", "Some value") 
print mc.get("some_key") 

Việc cài đặt và truy xuất khóa "some_key" có luôn xảy ra cùng một máy chủ không? Cài đặt và truy xuất các khóa thay thế, chẳng hạn như "some_key_2" hoặc "some_key_3", tự động được phân phối trong số các máy chủ có phải không? Điều gì sẽ xảy ra nếu một máy chủ được thêm vào hoặc bị xóa?

Tương tự như vậy, những gì xảy ra với get_multi:

import memcache 
mc.set_servers(['127.0.0.1:11211','127.0.0.1:11212',]) 
mc.set_multi({42: 'adams', 46 : 'and of me'}) 
print mc.get_multi([46, 42]) 

Liệu điều này tự động thiết lập và lấy mỗi phím từ máy chủ phải không? Có cần phải viết một lớp bao bọc?

Cảm ơn.

Trả lời

9

phím địa điểm ghi nhớ trên máy chủ dựa trên mã băm của khóa. Miễn là cài đặt máy chủ của bạn không thay đổi, khi đó một khóa nhất định sẽ luôn nằm trên một máy chủ nhất định.

+0

Phải, vì vậy nó sẽ minh bạch làm điều này nếu có nhiều máy chủ trong hồ bơi? get_multi() sẽ tự động truy xuất các khóa bên phải từ các máy chủ phù hợp? – ensnare

+0

Đó là những gì nó phải làm - thư viện memcached làm điều đó dưới bao gồm. Nếu nó không làm, thì có một lỗi ở đâu đó. –

+0

Thật tuyệt ... Tôi không biết nó tự động làm điều này. Tôi nghĩ tôi phải viết một lớp bao bọc. Cảm ơn. – ensnare

Các vấn đề liên quan