Skip to content

Commit 52a223d

Browse files
remove RedisSessionManager
1 parent 1f59611 commit 52a223d

File tree

1 file changed

+0
-124
lines changed

1 file changed

+0
-124
lines changed

src/agents/memory/providers/redis.py

Lines changed: 0 additions & 124 deletions
Original file line numberDiff line numberDiff line change
@@ -243,127 +243,3 @@ async def __aenter__(self):
243243
async def __aexit__(self, exc_type, exc_val, exc_tb):
244244
"""Async context manager exit."""
245245
await self.close()
246-
247-
248-
class RedisSessionManager:
249-
"""Manager class for Redis sessions with connection pooling."""
250-
251-
def __init__(
252-
self,
253-
redis_url: str = "redis://localhost:6379",
254-
db: int = 0,
255-
session_prefix: str = "agent_session",
256-
messages_prefix: str = "agent_messages",
257-
default_ttl: int | None = None,
258-
max_connections: int = 10,
259-
):
260-
"""Initialize the Redis session manager.
261-
262-
Args:
263-
redis_url: Redis connection URL
264-
db: Redis database number
265-
session_prefix: Prefix for session metadata keys
266-
messages_prefix: Prefix for message list keys
267-
default_ttl: Default TTL for sessions in seconds
268-
max_connections: Maximum number of Redis connections in the pool
269-
"""
270-
self.redis_url = redis_url
271-
self.db = db
272-
self.session_prefix = session_prefix
273-
self.messages_prefix = messages_prefix
274-
self.default_ttl = default_ttl
275-
276-
self._redis_pool = redis.ConnectionPool.from_url(
277-
redis_url,
278-
db=db,
279-
max_connections=max_connections,
280-
decode_responses=True,
281-
)
282-
283-
def get_session(
284-
self,
285-
session_id: str,
286-
ttl: int | None = None,
287-
) -> RedisSession:
288-
"""Get a Redis session instance.
289-
290-
Args:
291-
session_id: Unique identifier for the session
292-
ttl: TTL for this session. If None, uses default_ttl
293-
294-
Returns:
295-
RedisSession instance
296-
"""
297-
session = RedisSession(
298-
session_id=session_id,
299-
redis_url=self.redis_url,
300-
db=self.db,
301-
session_prefix=self.session_prefix,
302-
messages_prefix=self.messages_prefix,
303-
ttl=ttl or self.default_ttl,
304-
)
305-
306-
# Share the connection pool
307-
session._redis_client = redis.Redis(connection_pool=self._redis_pool)
308-
309-
return session
310-
311-
async def list_sessions(self, pattern: str | None = None) -> list[str]:
312-
"""List all session IDs.
313-
314-
Args:
315-
pattern: Optional pattern to filter session IDs
316-
317-
Returns:
318-
List of session IDs
319-
"""
320-
client = redis.Redis(connection_pool=self._redis_pool)
321-
322-
if pattern:
323-
search_pattern = f"{self.session_prefix}:{pattern}"
324-
else:
325-
search_pattern = f"{self.session_prefix}:*"
326-
327-
keys = await client.keys(search_pattern)
328-
329-
# Extract session IDs from keys
330-
session_ids = []
331-
prefix_len = len(self.session_prefix) + 1 # +1 for the colon
332-
333-
for key in keys:
334-
session_id = key[prefix_len:]
335-
session_ids.append(session_id)
336-
337-
await client.aclose()
338-
return session_ids
339-
340-
async def delete_session(self, session_id: str) -> bool:
341-
"""Delete a session and all its data.
342-
343-
Args:
344-
session_id: Session ID to delete
345-
346-
Returns:
347-
True if session was deleted, False if it didn't exist
348-
"""
349-
client = redis.Redis(connection_pool=self._redis_pool)
350-
351-
session_key = f"{self.session_prefix}:{session_id}"
352-
messages_key = f"{self.messages_prefix}:{session_id}"
353-
354-
deleted_count: int = await client.delete(session_key, messages_key)
355-
await client.aclose()
356-
357-
return deleted_count > 0
358-
359-
async def close(self) -> None:
360-
"""Close the connection pool."""
361-
await self._redis_pool.aclose()
362-
363-
async def __aenter__(self):
364-
"""Async context manager entry."""
365-
return self
366-
367-
async def __aexit__(self, exc_type, exc_val, exc_tb):
368-
"""Async context manager exit."""
369-
await self.close()

0 commit comments

Comments
 (0)