Bạn có quen thuộc với khái niệm Cặp khóa / Giá trị không? Giả sử bạn đã quen thuộc với Java hoặc C #, đây là ngôn ngữ dưới dạng bản đồ / hàm băm / dữ liệu / KeyValuePair (cuối cùng là trong trường hợp của C #)
Cách thức hoạt động được thể hiện trong biểu đồ mẫu nhỏ này:
Color Red
Age 18
Size Large
Name Smith
Title The Brown Dog
Nơi bạn có khóa (trái) và giá trị (phải) ... chú ý nó có thể là một chuỗi, int hoặc tương tự. Hầu hết các đối tượng KVP cho phép bạn lưu trữ bất kỳ đối tượng nào ở bên phải, vì đó chỉ là một giá trị.
Vì bạn sẽ luôn có một khóa duy nhất cho một đối tượng cụ thể mà bạn muốn trả về, bạn chỉ cần truy vấn cơ sở dữ liệu cho khóa duy nhất đó và lấy lại kết quả từ bất kỳ nút nào có đối tượng (đây là lý do tại sao nó tốt cho các hệ thống phân tán, vì có những thứ khác liên quan như bỏ phiếu cho n nút đầu tiên trả về giá trị khớp với các nút khác trả về).
Bây giờ ví dụ của tôi ở trên rất đơn giản, vì vậy đây là phiên bản KVP tốt hơn một chút
user1923_color Red
user1923_age 18
user3371_color Blue
user4344_color Brackish
user1923_height 6' 0"
user3371_age 34
Vì vậy, như bạn có thể thấy việc tạo khóa đơn giản là đặt "người dùng" số userunique, dấu gạch dưới và đối tượng. Một lần nữa, đây là một biến thể đơn giản, nhưng tôi nghĩ chúng ta bắt đầu hiểu rằng miễn là chúng ta có thể xác định phần bên trái và nó được định dạng nhất quán, chúng ta có thể rút ra giá trị.
Lưu ý rằng không có giới hạn về giá trị khóa (ok, có thể có một số hạn chế, chẳng hạn như chỉ có văn bản) hoặc trên thuộc tính giá trị (có thể có giới hạn kích thước) nhưng cho đến nay tôi chưa có hệ thống thực sự phức tạp. Hãy thử và đi xa hơn một chút:
app_setting_width 450
user1923_color Red
user1923_age 18
user3371_color Blue
user4344_color Brackish
user1923_height 6' 0"
user3371_age 34
error_msg_457 There is no file %1 here
error_message_1 There is no user with %1 name
1923_name Jim
user1923_name Jim Smith
user1923_lname Smith
Application_Installed true
log_errors 1
install_path C:\Windows\System32\Restricted
ServerName localhost
test test
test1 test
test123 Brackish
devonly
wonderwoman
value key
Bạn có ý tưởng ... tất cả những thứ đó sẽ được lưu trữ trong một "bảng" lớn trên các nút phân tán (có toán học đằng sau tất cả) và bạn sẽ chỉ hỏi hệ thống phân tán về giá trị bạn cần theo tên.
Ít nhất, đó là sự hiểu biết của tôi về cách tất cả hoạt động. Tôi có thể có một vài điều sai, nhưng đó là những điều cơ bản.
liên kết wikipedia bắt buộc http://en.wikipedia.org/wiki/Associative_array