Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 6 additions & 4 deletions redisvl/extensions/cache/embeddings/embeddings.py
Original file line number Diff line number Diff line change
Expand Up @@ -512,6 +512,8 @@ def drop(self, content: bytes | str, model_name: str) -> None:
def drop_by_key(self, key: str) -> None:
"""Remove an embedding from the cache by its Redis key.

Uses UNLINK instead of DELETE for better performance by freeing memory asynchronously.

Args:
key (str): The full Redis key for the embedding.

Expand All @@ -520,7 +522,7 @@ def drop_by_key(self, key: str) -> None:
cache.drop_by_key("embedcache:1234567890abcdef")
"""
client = self._get_redis_client()
client.delete(key)
client.unlink(key)

def mdrop_by_keys(self, keys: list[str]) -> None:
"""Remove multiple embeddings from the cache by their Redis keys.
Expand All @@ -542,7 +544,7 @@ def mdrop_by_keys(self, keys: list[str]) -> None:

with client.pipeline(transaction=False) as pipeline:
for key in keys:
pipeline.delete(key)
pipeline.unlink(key)
pipeline.execute()

def mdrop(self, contents: Iterable[bytes | str], model_name: str) -> None:
Expand Down Expand Up @@ -883,7 +885,7 @@ async def amdrop_by_keys(self, keys: list[str]) -> None:
return

client = await self._get_async_redis_client()
await client.delete(*keys)
await client.unlink(*keys)

async def amdrop(self, contents: Iterable[bytes | str], model_name: str) -> None:
"""Async remove multiple embeddings from the cache by their contents and model name.
Expand Down Expand Up @@ -982,4 +984,4 @@ async def adrop_by_key(self, key: str) -> None:
await cache.adrop_by_key("embedcache:1234567890abcdef")
"""
client = await self._get_async_redis_client()
await client.delete(key)
await client.unlink(key)
8 changes: 4 additions & 4 deletions redisvl/index/index.py
Original file line number Diff line number Diff line change
Expand Up @@ -833,9 +833,9 @@ def drop_keys(self, keys: str | list[str]) -> int:
int: Count of records deleted from Redis.
"""
if isinstance(keys, list):
return self._redis_client.delete(*keys) # type: ignore
return self._redis_client.unlink(*keys) # type: ignore
else:
return self._redis_client.delete(keys) # type: ignore
return self._redis_client.unlink(keys) # type: ignore

def drop_documents(self, ids: str | list[str]) -> int:
"""Remove documents from the index by their document IDs.
Expand Down Expand Up @@ -1787,9 +1787,9 @@ async def drop_keys(self, keys: str | list[str]) -> int:
"""
client = await self._get_client()
if isinstance(keys, list):
return await client.delete(*keys)
return await client.unlink(*keys)
else:
return await client.delete(keys)
return await client.unlink(keys)

async def drop_documents(self, ids: str | list[str]) -> int:
"""Remove documents from the index by their document IDs.
Expand Down