listy-נגו-מטמון הוא מנגנון דטרמיניסטי מטמון לפרויקטי Django & nbsp;. זה ינסה לשמור את המטמון בסנכרון עם מסד הנתונים על ידי עדכון בשינויים במקום להסתמך על פסקי זמן. כפי שמשתמע מהשם, Listy תומך מחפש את הרשימות של אובייקטים.
התקן
& Nbsp; PIP להתקין listy-נגו-מטמון
שימוש
Listy שימוש הוא פשוט כמו החלפת מנהל מודל ברירת מחדל עם CachingManager ומתן זה עם הרשימה של מקשים שאתה רוצה לבצע שאילתה עם.
בדוגמא הזו זה, אני יכול להסתכל למעלה מבוסס על PK, רק החסיד, או שניהם חסיד וfollowee:
listy יבוא
עקוב אחרי כיתה (models.Model):
& Nbsp; # Configure מטמון זה כדי לתמוך בבדיקה על ידי 'PK' או 'חסיד'
& Nbsp; חפצים = listy.CachingManager ([("PK",), ("חסיד",), ("חסיד", "followee ')])
& Nbsp; שנוצר = models.DateTimeField (auto_now_add = True)
& Nbsp; חסיד = models.ForeignKey ('משתמש', related_name = 'להלן)
& Nbsp; followee = models.ForeignKey ('משתמש', = 'חסידים' related_name)
# בצע מישהו
Follow.cache.add (חסיד =, followee =)
מישהו # להפסיק לעקוב
Follow.cache.delete (חסיד =, followee =)
# קבל את המשתמשים אני עוקב
Follow.cache.get (חסיד =)
# קבל אם אני מבין אותך
Follow.cache.get (חסיד =, חסיד =)
# קבל את הספירה למשתמשים אני עוקב
ממועד יבוא datetime, timedelta
מdateutil.rrule rrule יבוא, יומי, שבועי, חודשי, שנתי
להתחיל, סוף = date.today () - timedelta (ימים = 100), date.today ()
Follow.cache.daily_counts (= rrule נוצר (יומי, dtstart = להתחיל, עד הסוף =))
אתה יכול לראות קבוצה של דוגמאות בtest_django_app / מטמון / tests.py מלאה.
טיעונים לCachingManager:
- מטמונים - רשימה של tuples מתאר את השדות שצריך להיות מפתחות למטמון
- Soft_delete_field - שמו של שדה המחיקה שיכול לשמש למחיקת אובייקטים מבלי להסיר אותם מבסיס הנתונים, אם תכונה זו נתמכת על ידי המודל (אין ברירת המחדל)
- Deleted_timestamp_field - שמו של השדה שצריך להיות מוגדר datetime עת מחיקת אובייקט (אין ברירת מחדל)
- Enabled_field - שמו של השדה המגדיר אם אובייקט מופעל או לא, זה מטופל כמו להסיר כי לא ניתן לבטל בנסיבות רגילות (אין ברירת מחדל)
- Timestamp_field - שמו של השדה שמחזיק את חותמת הזמן כדי לשמש למונים (אין ברירת מחדל)
- Disable_cache - לכבות את המטמון, יכול לשמש לאיתור באגים (ברירת מחדל False)
- כתובת - פונקציה המחזירה את הכתובת של Memcache (ברירת מחדל 127.0.0.1:11211)
- Filter_out_soft_deletes - הטיפול מוחק רך כמו מוחק אמיתי, לסנן אותם החוצה בעת החזרת רשימות (ברירת מחדל אמיתי)
הרשימה של tuples שהוגדר על ידי טיעון המטמונים היא לב לבו של מנגנון מטמון זה. דרכו אנו מגדירים מה מפרט של אובייקטים שאנחנו רוצים במטמון ומעודכן, וכיצד אנו לגשת רשימות אלה
תכונות :.
- > קל מאוד לשימוש
- דטרמיניסטי
- גישה מהירה לרשימות של דברים
- חבילות לצורה קומפקטית (רשומות הקטן ביותר ללכת מעל 1k עד 10s של בתים)
- deserialization לפי דרישה
- שימוש בפקודת הצרף בתחילת השורה של Memcache למהיר מוסיפה
- מעקב אחר כולל, שנתי, ספירה חודשית, שבועית, יומית ועבור כל רשימת מטמון
- רישום לכל בקשה אופציונאלי אובייקט
- תמיכה אופציונלית למוחק רך
נתונים
דרישות :
- פייתון
- יחידת
תגובות לא נמצא