A fast and robust Common Lisp client for Redis, providing full protocol support with pipelining and PubSub.
CL-REDIS is a Redis client library for Common Lisp that provides a complete interface to Redis servers. It allows Common Lisp applications to execute Redis commands, manage connections, and leverage advanced features like pipelining and PubSub. The library solves the problem of integrating Redis—a fast in-memory data store—into Common Lisp projects with minimal overhead.
Common Lisp developers building applications that require Redis for caching, real-time messaging, or data storage. It's particularly useful for those needing high-performance database interactions with features like command pipelining.
Developers choose CL-REDIS for its robustness, full protocol compliance, and performance optimizations like pipelining. Its error recovery mechanisms and dual-package design reduce integration headaches, making it a reliable choice for production Common Lisp systems.
Redis client for Common Lisp
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Implements all standard Redis commands through a clean API, ensuring compatibility with Redis servers as per the protocol spec.
The with-pipelining macro enables batch command execution, drastically reducing latency for bulk operations, as shown in the README's timing example.
Mimics PostgreSQL-style error handling with automatic reconnection restarts and persistent connection macros, enhancing reliability in production.
Provides both REDIS (prefixed) and RED (unprefixed) packages to avoid symbol conflicts, offering syntactic sugar without importing issues.
Lacks support for Unix domain sockets and built-in clustering mechanisms like consistent hashing, which may limit use in specialized Redis deployments.
Relies on external libraries such as usocket, flexi-streams, and rutils, adding complexity and potential version management challenges.
The error recovery system, while robust, requires understanding of condition handling and restarts in Common Lisp, which can be steep for those unfamiliar.