summaryrefslogtreecommitdiff
path: root/django/core/cache/backends/memcached.py
AgeCommit message (Collapse)Author
2025-07-23Refs #36500 -- Shortened some long docstrings and comments.Mike Edmunds
Manually reformatted some long docstrings and comments that would be damaged by the to-be-applied autofixer script, in cases where editorial judgment seemed necessary for style or wording changes.
2023-01-18Refs #34233 -- Used str.removeprefix()/removesuffix().Mariusz Felisiak
2022-02-07Refs #33476 -- Refactored code to strictly match 88 characters line length.Mariusz Felisiak
2022-02-07Refs #33476 -- Reformatted code with Black.django-bot
2021-09-20Refs #32193 -- Removed MemcachedCache per deprecation timeline.Mariusz Felisiak
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-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.
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-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-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-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-02-14Fixed #30181 -- Made cache.get() with default work correctly on PyLibMCCache ↵Jakub Szafrański
if None is cached.
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é
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-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-06-01Refs #23968 -- Removed unnecessary lists, generators, and tuple calls.Jon Dufresne
2017-02-21Refs #27656 -- Updated django.core docstring verbs according to PEP 257.Anton Samarchyan
2017-02-03Fixed spelling of "nonexistent".Tim Graham
2017-01-25Refs #23919 -- Replaced super(ClassName, self) with super().chillaranand
2017-01-20Refs #23919 -- Removed unneeded force_str callsClaude Paroz
2017-01-18Refs #23919 -- Removed six.<various>_types usageClaude Paroz
Thanks Tim Graham and Simon Charette for the reviews.
2016-09-02Fixed #11331 -- Stopped closing pylibmc connections after each request.Ed Morley
libmemcached manages its own connections, so isn't affected by refs #5133.
2016-08-31Fixed #27152 -- Supported comma delimiter in memcached LOCATION string.Ed Morley
2016-08-31Fixed #20892 -- Allowed configuring memcached client using OPTIONS.Ed Morley
Previously, the MemcachedCache backend ignored `OPTIONS` and PyLibMCCache used them to set pylibmc behaviors. Both backends now pass `OPTIONS` as keyword arguments to the client constructors.
2016-06-15Fixed broken links in docs and comments.Ville Skyttä
2016-01-25Fixed #26125 -- Fixed E731 flake warnings.userimack
2015-07-06Updated Memcached get_backend_timeout() comment.Karol Duleba
2015-05-13Removed unnecessary arguments in .get method callsPiotr Jakimiak
2015-02-06Sorted imports with isort; refs #23860.Tim Graham
2015-01-17Removed BaseMemcachedCacheMethods._get_memcache_timeout backwards ↵Tim Graham
compatibility shim. Per deprecation timeline; refs #21147.
2014-11-13Fixed #16358 - Made memcache backend delete old value on a failure to set.Michael Manfre
Default Memcached configuration allows for a maximum object of 1MB and will fail to set the key if it is too large. The key will be deleted from memcached if it fails to be set. This is needed to avoid an issue with cache_db session backend using the old value stored in memcached, instead of the newer value stored in the database.
2014-06-16Fixed #22845 -- Correctly handled memcached default timeout value.Vincent-Vega
2014-03-08Fixed #21188 -- Introduced subclasses for to-be-removed-in-django-XX warningsClaude Paroz
Thanks Anssi Kääriäinen for the idea and Simon Charette for the review.
2013-11-23Fixed #21012 -- New API to access cache backends.Curtis Maloney
Thanks Curtis Malony and Florian Apolloner. Squashed commit of the following: commit 3380495e93f5e81b80a251b03ddb0a80b17685f5 Author: Aymeric Augustin <aymeric.augustin@m4x.org> Date: Sat Nov 23 14:18:07 2013 +0100 Looked up the template_fragments cache at runtime. commit 905a74f52b24a198f802520ff06290a94dedc687 Author: Aymeric Augustin <aymeric.augustin@m4x.org> Date: Sat Nov 23 14:19:48 2013 +0100 Removed all uses of create_cache. Refactored the cache tests significantly. Made it safe to override the CACHES setting. commit 35e289fe9285feffed3c60657af9279a6a2cfccc Author: Aymeric Augustin <aymeric.augustin@m4x.org> Date: Sat Nov 23 12:23:57 2013 +0100 Removed create_cache function. commit 8e274f747a1f1c0c0e6c37873e29067f7fa022e8 Author: Aymeric Augustin <aymeric.augustin@m4x.org> Date: Sat Nov 23 12:04:52 2013 +0100 Updated docs to describe a simplified cache backend API. commit ee7eb0f73e6d4699edcf5d357dce715224525cf6 Author: Curtis Maloney <curtis@tinbrain.net> Date: Sat Oct 19 09:49:24 2013 +1100 Fixed #21012 -- Thread-local caches, like databases.
2013-11-02Fixed all E261 warningscoagulant
2013-11-02More attacking E302 violatorsAlex Gaynor
2013-10-01Fixed #21147 -- Avoided time.time precision issue with cache backends.Michael Manfre
The precision of time.time() is OS specific and it is possible for the resolution to be low enough to allow reading a cache key previously set with a timeout of 0.
2013-07-09Fixed #20722 -- Fixed MemcachedCache backend get_many on Python 3.Tim Graham
2013-05-18Fixed #9595 -- Allow non-expiring cache timeouts.Jacob Burch
Also, streamline the use of 0 and None between cache backends.
2013-02-24Fixed #19810 -- MemcachedCache now uses pickle.HIGHEST_PROTOCOLBas Peschier
2012-12-29Removed django.core.cache.backends.memcached.CacheClass.Aymeric Augustin