From 264e9a6ee3e0d4f1eca4f50552ba7253e7dde08c Mon Sep 17 00:00:00 2001 From: Will Hunt Date: Wed, 10 Feb 2021 18:42:59 +0000 Subject: [PATCH] Add delete key to ExternalCache --- synapse/replication/tcp/external_cache.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/synapse/replication/tcp/external_cache.py b/synapse/replication/tcp/external_cache.py index 34fa3ff5b3..b3a1c9a996 100644 --- a/synapse/replication/tcp/external_cache.py +++ b/synapse/replication/tcp/external_cache.py @@ -36,6 +36,12 @@ get_counter = Counter( labelnames=["cache_name", "hit"], ) +delete_counter = Counter( + "synapse_external_cache_delete", + "Number of times we deleted keys from a cache", + labelnames=["cache_name"], +) + logger = logging.getLogger(__name__) @@ -59,6 +65,21 @@ class ExternalCache: """ return self._redis_connection is not None + async def delete(self, cache_name: str, key: str) -> None: + """Delete a key from the named cache + """ + if self._redis_connection is None: + return + delete_counter.labels(cache_name).inc() + + logger.debug("Deleting %s %s: %r", cache_name, key, encoded_value) + + return await make_deferred_yieldable( + self._redis_connection.delete( + self._get_redis_key(cache_name, key), + ) + ) + async def set(self, cache_name: str, key: str, value: Any, expiry_ms: int) -> None: """Add the key/value to the named cache, with the expiry time given. """