2012-06-07 34 views
5

Tôi đang di trú bộ nhớ từ EhCache đến Memcached. Chỉ với 1 trường hợp Memcached, có cách nào để có nhiều cache (như trong EhCache) không?Nhiều bộ nhớ cache trong Memcached

Ví dụ: tôi muốn có bộ nhớ cache "Người dùng", bộ nhớ cache "Sản phẩm", v.v. Lý do chính là để có thể giám sát và định cấu hình từng bộ nhớ cache riêng biệt và có thể xóa chúng riêng biệt quá.

+0

Bạn đang sử dụng ứng dụng ghi nhớ nào? – cheeken

+0

xmemcached (Java) –

Trả lời

4

Thông thường, loại hành vi này được thực hiện trong memcached qua không gian tên. Trong một cá thể memcached duy nhất, một duy trì nhiều không gian tên, mỗi trong số đó đại diện cho một bộ nhớ cache khác nhau. Tuy nhiên, memcached không hỗ trợ không gian tên - thay vào đó, các không gian tên memcached được mô phỏng bằng các tiền tố khóa với một định danh vùng tên (ví dụ: memcachedClient.get('products.top10')). Một số khách hàng được ghi nhớ, như the Python GAE memcached client, trừu tượng hành vi này cho bạn. Tuy nhiên, xmemcached không, theo như tôi có thể nói.

Bạn còn lại hai tùy chọn.

  • Đặt tiền tố thủ công mỗi phím bạn làm việc.
  • Viết trình bao bọc mỏng quanh XMemcachedClient với hai thay đổi: nó có thành viên String namespace đóng vai trò là giá trị tiền tố và ghi đè get0() để áp dụng tiền tố đó. Đây là một chút nguy hiểm vì nó dựa trên việc thực hiện XMemcached hiện tại.
+0

Cảm ơn bạn, tôi thực sự sẽ viết một dịch vụ tùy chỉnh xử lý các vùng tên bộ nhớ cache xung quanh XMemcachedClient (không ghi đè lớp, thay vì mẫu thiết kế "Mặt tiền") –

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