summaryrefslogtreecommitdiff
path: root/django/core/cache/backends
AgeCommit message (Collapse)Author
2021-09-14Fixed #33012 -- Added Redis cache backend.Daniyal
Thanks Carlton Gibson, Chris Jerdonek, David Smith, Keryn Knight, Mariusz Felisiak, and Nick Pope for reviews and mentoring this Google Summer of Code 2021 project.
2021-09-07Fixed #32076 -- Added async methods to BaseCache.Andrew-Chen-Wang
This also makes DummyCache async-compatible.
2021-09-07Fixed #33060 -- Added BaseCache.make_and_validate_key() hook.Nick Pope
This helper function reduces the amount of duplicated code and makes it easier to ensure that we always validate the keys.
2021-09-07Refs #33060 -- Ensured cache backends validate keys.Nick Pope
The validate_key() function should be called after make_key() to ensure that the validation is performed on the key that will actually be stored in the cache. Co-authored-by: Mariusz Felisiak <felisiak.mariusz@gmail.com>
2021-09-03Refs #33060 -- Added .make_key() in .touch() for dummy cache backend.Nick Pope
All cache operations should use make_key().
2021-08-31Refs #33061 -- Removed unnecessary BaseMemcachedCache.decr().Mariusz Felisiak
2021-08-31Fixed #33061 -- Fixed handling nonexistent keys with negative deltas in ↵Sondre Lillebø Gundersen
incr()/decr() in memcached backends. Thanks Chris Jerdonek for the review.
2021-05-26Fixed #32772 -- Made database cache count size once per set.Michael Lissner
2021-05-12Fixed #32366 -- Updated datetime module usage to recommended approach.Nick Pope
- Replaced datetime.utcnow() with datetime.now(). - Replaced datetime.utcfromtimestamp() with datetime.fromtimestamp(). - Replaced datetime.utctimetuple() with datetime.timetuple(). - Replaced calendar.timegm() and datetime.utctimetuple() with datetime.timestamp().
2021-05-05Fixed #32705 -- Prevented database cache backend from checking .rowcount on ↵ecogels
closed cursor. Co-authored-by: Mariusz Felisiak <felisiak.mariusz@gmail.com>
2020-12-17Fixed #29867 -- Added support for storing None value in caches.Nick Pope
Many of the cache operations make use of the default argument to the .get() operation to determine whether the key was found in the cache. The default value of the default argument is None, so this results in these operations assuming that None is not stored in the cache when it actually is. Adding a sentinel object solves this issue. Unfortunately the unmaintained python-memcached library does not support a default argument to .get(), so the previous behavior is preserved for the deprecated MemcachedCache backend.
2020-12-15Fixed typo in django/core/cache/backends/base.py docstring.Abhishek Ghaskata
2020-12-09Fixed #32193 -- Deprecated MemcachedCache.Mariusz Felisiak
2020-09-16Fixed #29887 -- Added a cache backend for pymemcache.Nick Pope
2020-09-02Refs #29887, Refs #24212 -- Added servers configuration hook for memcached ↵Nick Pope
backends. The servers property can be overridden to allow memcached backends to alter the server configuration prior to it being passed to instantiate the client. This allows avoidance of documentation for per-backend differences, e.g. stripping the 'unix:' prefix for pylibmc.
2020-09-01Refs #29887 -- Simplified memcached client instantiation.Nick Pope
2020-09-01Fixed CVE-2020-24584 -- Fixed permission escalation in intermediate-level ↵Mariusz Felisiak
directories of the file system cache on Python 3.7+.
2020-08-24Fixed #31907 -- Fixed missing validate_key() calls in cache backends.Nick Pope
2020-08-20Refs #29887, #27480 -- Moved touch() to BaseMemcachedCache.Nick Pope
2020-08-20Fixed comments related to nonexistent keys for incr()/decr() in memcached ↵Nick Pope
backends.
2020-06-22Fixed #31728 -- Fixed cache culling when no key is found for deletion.Guillermo Bonvehí
DatabaseCache._cull implementation could fail if no key was found to perform a deletion in the table. This prevented the new cache key/value from being correctly added.
2020-06-05Fixed #31654 -- Fixed cache key validation messages.Mariusz Felisiak
2020-06-03Fixed CVE-2020-13254 -- Enforced cache key validation in memcached backends.Dan Palmer
2019-11-14Fixed #30759 -- Made cache.delete() return whether it succeeded.daniel a rios
Thanks Simon Charette for the review.
2019-04-24Removed unnecessary assignments in various code.Jon Dufresne
2019-02-14Fixed #30181 -- Made cache.get() with default work correctly on PyLibMCCache ↵Jakub Szafrański
if None is cached.
2019-02-08Simplified FileBasedCache.clear().Jon Dufresne
glob.glob1() ignores missing paths.
2019-01-31Fixed #30147 -- Simplified directory creation with os.makedirs(..., ↵Jon Dufresne
exist_ok=True).
2019-01-17Refs #28370 -- Removed support for the context arg of Field.from_db_value() ↵Tim Graham
and Expression.convert_value(). Per deprecation timeline.
2018-08-17Fixed #29626, #29584 -- Added optimized versions of get_many() and ↵oliver
delete_many() for the db cache backend.
2018-07-09Fixed #29550 -- Eased overriding pickle.dumps() protocol in cache backends ↵Simon Charette
and session serializer.
2018-07-09Refs #27480 -- Moved FileBasedCache content writing logic to a method.Simon Charette
2018-07-09Fixed #20584 -- Fixed memcached's get_many() with single-use iterators.Christian Barcenas
Thanks Guyon Morée for the report.
2018-04-27Fixed #27480 -- Added cache.touch().Nicolas Noé
2018-03-13Quoted field names in cache db backend SQL.Hajime Nakagami
On Firebird, 'value' is a reserved word and must be quoted.
2018-02-02Refs #27795 -- Replaced force_bytes() usage in django.core.cache.Jon Dufresne
2018-01-24Fixed #28977 -- Changed local-memory cache to use LRU culling.Grant Jenks
LRU culling turns every read into a kind of write to the cache: cache keys are moved to the first position in the OrderedDict when they are retrieved. The RWLock which permitted multiple readers while prioritizing a single writer is obsolete since all accesses are now writes.
2018-01-03Fixed #28982 -- Simplified code with and/or.Дилян Палаузов
2017-12-07Refs #23919 -- Replaced super() calls for old-style classes.Nick Pope
2017-10-31Fixed #28760 -- Removed DummyCache's unnecessary get/set/delete_many().Adam Johnson
2017-10-30Refs #27318 -- Made DummyCache.set_many() return a list for consistency with ↵Adam Johnson
other backends.
2017-10-10Fixed #28601 -- Prevented cache.get_or_set() from caching None if default is ↵Daniel Tao
a callable that returns None.
2017-09-22Refs #20892 -- Removed support for passing pylibmc behavior settings as ↵Tim Graham
top-level attributes of CACHES['OPTIONS']. Per deprecation timeline.
2017-09-07Reverted "Fixed #27818 -- Replaced try/except/pass with contextlib.suppress()."Tim Graham
This reverts commit 550cb3a365dee4edfdd1563224d5304de2a57fda because try/except performs better.
2017-09-06Fixed #27318 -- Made cache.set_many() return the list of failed keys.Olivier Tabone
2017-09-05Used dict comprehensions in BaseMemcachedCache.get_many() and set_many() for ↵Sergey Fedoseev
better readability.
2017-09-03Fixed #28500 -- Fixed crash in FileBasedCache._is_expired() if the cache ↵caleb logan
file is empty.
2017-07-20Fixed #28370 -- Deprecated the context arg of Field.from_db_value() and ↵Tim Graham
Expression.convert_value(). Unused since a0d166306fbdc41f49e6fadf4ec84b17eb147daa.
2017-07-14Fixed #28397 -- Removed django.core.exceptions.DjangoRuntimeWarning.Tim Graham
2017-06-28Fixed #27818 -- Replaced try/except/pass with contextlib.suppress().Mads Jensen