Title: feat: Add Redis database provider support
Overview
Redis is a key-value store, which is fundamentally different from SQL databases. This requires a different approach while maintaining the same provider interface.
Requirements
- Implement
RedisProvider class extending BaseDatabaseProvider
- Support Redis commands via query interface
- Map Redis keys/values to table-like schema representation
- Implement basic monitoring (info, memory stats)
- Handle Redis-specific operations
Challenges
- Redis is key-value, not relational - schema representation needs creative mapping
- Commands are different from SQL
- No traditional "tables" - keys act as data containers
- Monitoring uses
INFO command, not SQL queries
Tasks
Dependencies
Query Format
Redis queries could use a simple command format:
{
"command": "GET",
"key": "user:123"
}
Or support direct Redis commands:
GET user:123
SET user:123 "value"
KEYS user:*
Acceptance Criteria
References
Title:
feat: Add Redis database provider supportOverview
Redis is a key-value store, which is fundamentally different from SQL databases. This requires a different approach while maintaining the same provider interface.
Requirements
RedisProviderclass extendingBaseDatabaseProviderChallenges
INFOcommand, not SQL queriesTasks
src/lib/db/providers/keyvalue/redis.tsredisorioredisnpm package dependencygetSchema()- map keys/patterns to "tables"getHealth()usingINFOcommandsrc/lib/db/factory.ts)src/lib/types.ts)Dependencies
{ "ioredis": "^5.3.0" }Query Format
Redis queries could use a simple command format:
{ "command": "GET", "key": "user:123" }Or support direct Redis commands:
Acceptance Criteria
DatabaseProviderinterfaceReferences
src/lib/db/providers/base-provider.ts