Saya mencari pustaka cache Python tetapi sejauh ini tidak dapat menemukan apa pun. Saya memerlukan dict
antarmuka seperti sederhana di mana saya dapat mengatur kunci dan masa berlakunya dan mengembalikannya ke cache. Semacam sesuatu seperti:
cache.get(myfunction, duration=300)
yang akan memberi saya item dari cache jika ada atau memanggil fungsi dan menyimpannya jika tidak atau telah kedaluwarsa. Apakah ada yang tahu sesuatu seperti ini?
item
dalam contoh Anda.Jawaban:
Lihatlah Beaker:
sumber
Dari Python 3.2 Anda dapat menggunakan dekorator @lru_cache dari pustaka functools. Ini adalah cache yang Terakhir Digunakan Baru-Baru Ini, jadi tidak ada waktu kedaluwarsa untuk item di dalamnya, tetapi sebagai peretasan cepat, ini sangat berguna.
sumber
Anda juga dapat melihat dekorator Memoize . Anda mungkin bisa membuatnya melakukan apa yang Anda inginkan tanpa terlalu banyak modifikasi.
sumber
Joblib https://joblib.readthedocs.io mendukung fungsi cache dalam pola Memoize. Sebagian besar, idenya adalah untuk menyimpan fungsi-fungsi yang mahal secara komputasi.
Anda juga dapat melakukan hal-hal mewah seperti menggunakan dekorator @ memory.cache pada fungsi. Dokumentasinya ada di sini: https://joblib.readthedocs.io/en/latest/generated/joblib.Memory.html
sumber
Belum ada yang menyebutkan rak. https://docs.python.org/2/library/shelve.html
Ini tidak memcache, tetapi terlihat jauh lebih sederhana dan mungkin sesuai dengan kebutuhan Anda.
sumber
Saya pikir API memcached python adalah alat yang lazim, tetapi saya belum menggunakannya sendiri dan tidak yakin apakah itu mendukung fitur yang Anda butuhkan.
sumber
sumber
get
metode, ini seharusnya tidak menjadi subkelas dict, itu haruslah sebuah objek dengan dict yang disematkan.Anda dapat menggunakan solusi sederhana saya untuk masalah ini. Ini sangat mudah, tidak ada yang mewah:
Memang tidak memiliki fungsi kedaluwarsa, tetapi Anda dapat dengan mudah memperluasnya dengan menetapkan aturan tertentu di c-tor MemCache.
Kode harapan cukup jelas, tetapi jika tidak, hanya untuk menyebutkan, cache itu diteruskan fungsi terjemahan sebagai salah satu parameter c-tornya. Ini digunakan pada gilirannya untuk menghasilkan output yang di-cache mengenai input.
Semoga membantu
sumber
else
masuk__getitem__
:)else
di__getitem__
? Di situlah dia mengisiCoba redis, ini adalah salah satu solusi terbersih dan termudah bagi aplikasi untuk berbagi data secara atomic atau jika Anda memiliki beberapa platform server web. Sangat mudah untuk mengaturnya, Anda memerlukan klien python redis http://pypi.python.org/pypi/redis
sumber
Lihat gocept.cache di pypi, kelola batas waktu.
sumber
Proyek ini bertujuan untuk menyediakan "Caching untuk manusia" (sepertinya cukup tidak diketahui)
Beberapa info dari halaman proyek:
Instalasi
pip instal cache
Pemakaian:
sumber
Lihat bda.cache http://pypi.python.org/pypi/bda.cache - menggunakan ZCA dan diuji dengan zope dan bfg.
sumber
keyring adalah pustaka cache python terbaik. Kamu bisa memakai
sumber