listy-django-cache là một cơ chế bộ nhớ đệm xác định cho các dự án Django & nbsp;. Nó sẽ cố gắng để giữ cho bộ nhớ cache trong đồng bộ với cơ sở dữ liệu bằng cách cập nhật trong quá trình thay đổi, thay vì dựa trên timeout. Như ngụ ý bởi cái tên, Listy hỗ trợ nhìn lên danh sách các đối tượng.
Cài đặt
& Nbsp; pip cài đặt listy-django-cache
Cách sử dụng
Sử dụng Listy là đơn giản như thay đổi người quản mô hình mặc định với một CachingManager và cung cấp nó với danh sách các phím mà bạn sẽ muốn truy vấn với.
Trong ví dụ này giả tạo, tôi có thể nhìn lên dựa trên pk, chỉ cần đi theo, hoặc cả hai người đi theo và followee:
listy nhập khẩu
lớp Follow (models.Model):
& Nbsp; # Cấu hình bộ nhớ cache này để hỗ trợ tra cứu bằng 'pk' hoặc 'theo'
& Nbsp; đối tượng = listy.CachingManager ([('pk',), ('tín đồ',), ('tín đồ', 'followee')])
& Nbsp; tạo = models.DateTimeField (auto_now_add = True)
& Nbsp; theo = models.ForeignKey ('tài', related_name = 'sau')
& Nbsp; followee = models.ForeignKey ('tài', related_name = 'tín đồ')
# Thực hiện theo một người nào đó
Follow.cache.add (theo = tôi, followee = bạn)
# Hủy theo dõi một ai đó
Follow.cache.delete (theo = tôi, followee = bạn)
# Lấy người sử dụng tôi làm theo
Follow.cache.get (theo = tôi)
# Nhận dù tôi theo bạn
Follow.cache.get (theo = tôi, đi theo bạn =)
# Lấy tính cho người sử dụng tôi làm theo
từ ngày nhập khẩu datetime, timedelta
từ dateutil.rrule rrule nhập khẩu, NGÀY, TUẦN, THÁNG, Hàng năm
bắt đầu, kết thúc = date.today () - timedelta (ngày = 100), date.today ()
Follow.cache.daily_counts (tạo = rrule (NGÀY, dtstart = bắt đầu, cho đến khi kết thúc =))
Bạn có thể thấy một bộ đầy đủ các ví dụ trong test_django_app / bộ nhớ đệm / tests.py.
Lập luận để CachingManager:
- Cache - một danh sách của các bộ mô tả các lĩnh vực cần được phím vào bộ nhớ cache
- Soft_delete_field - tên của các lĩnh vực xóa mà có thể được sử dụng để xóa các đối tượng mà không thực sự loại bỏ chúng ra khỏi cơ sở dữ liệu nếu tính năng này được hỗ trợ bởi các mô hình (mặc định None)
- Deleted_timestamp_field - tên của các lĩnh vực cần được thiết lập để một datetime khi xóa một đối tượng (mặc định None)
- Enabled_field - tên của các lĩnh vực trong đó xác định xem một đối tượng được kích hoạt hay không, điều này được đối xử như một xóa mà không thể được hoàn tác trong những hoàn cảnh bình thường (mặc định None)
- Timestamp_field - tên của các lĩnh vực mà giữ những dấu thời gian được sử dụng cho các bộ đếm (mặc định None)
- Disable_cache - tắt bộ nhớ đệm, có thể được sử dụng để gỡ lỗi (mặc định False)
- Địa chỉ - một hàm trả về địa chỉ của memcache (mặc định 127.0.0.1:11211)
- Filter_out_soft_deletes - điều trị xóa mềm mại như xóa sự thật, lọc chúng ra khi trở về danh sách (mặc định True)
Danh sách các bộ dữ liệu được xác định bởi tham số cache là trung tâm của cơ chế bộ nhớ đệm này. Thông qua đó, chúng tôi xác định những gì liệt kê của các đối tượng, chúng tôi muốn lưu trữ và cập nhật, và làm thế nào chúng ta sẽ truy cập vào những danh sách
Tính năng .
- Rất dễ dàng để sử dụng
- xác định
- Truy cập nhanh đến danh sách những thứ
- Gói dữ liệu vào hình thức nhỏ gọn (bản ghi nhỏ nhất đi từ khoảng 1k xuống 10s của byte)
- On-demand deserialization
- Sử dụng lệnh thêm vào trước memcache cho nhanh thêm
- Giữ đường tổng số, hàng năm, số lượng hàng tháng, hàng tuần, và hàng ngày cho mỗi danh sách được lưu trữ
- Tùy chọn mỗi yêu cầu đối tượng đăng ký
- Tùy chọn hỗ trợ cho xóa mềm
Yêu cầu :
- Python
- Django
Bình luận không