Fix: Use SCAN instead of KEYS for Redis cluster compatibility

This commit is contained in:
jolow99 2025-12-11 14:55:03 +08:00
parent 3b3e12b43a
commit a161bff3ef

View file

@ -190,7 +190,9 @@ class YdocManager:
async def remove_user_from_all_documents(self, user_id: str): async def remove_user_from_all_documents(self, user_id: str):
if self._redis: if self._redis:
keys = await self._redis.keys(f"{self._redis_key_prefix}:*") keys = []
async for key in self._redis.scan_iter(match=f"{self._redis_key_prefix}:*", count=100):
keys.append(key)
for key in keys: for key in keys:
if key.endswith(":users"): if key.endswith(":users"):
await self._redis.srem(key, user_id) await self._redis.srem(key, user_id)