Async::Redis
An asynchronous client for Redis including TLS. Support for streaming requests and responses. Built on top of async.
Support
This gem supports both Valkey and Redis. It is designed to be compatible with the latest versions of both libraries. We also test Redis sentinel and cluster configurations.
Usage
Please browse the source code index or refer to the guides below.
Getting Started
This guide explains how to use the async-redis
gem to connect to a Redis server and perform basic operations.
Transactions and Pipelines
This guide explains how to use Redis transactions and pipelines with async-redis
for atomic operations and improved performance.
Subscriptions
This guide explains how to use Redis pub/sub functionality with async-redis
to publish and subscribe to messages.
Data Structures and Operations
This guide explains how to work with Redis data types and operations using async-redis
.
Streams
This guide explains how to use Redis streams with async-redis
for reliable message processing and event sourcing.
Scripting
This guide explains how to use Redis Lua scripting with async-redis
for atomic operations and advanced data processing.
Client Architecture
This guide explains the different client types available in async-redis
and when to use each one.
Releases
Please browse the releases for more details.
v0.13.0
- Fix password with special characters when using sentinels.
- Fix support for UNIX domain socket endpoints. You can now create Unix socket endpoints using
Async::Redis::Endpoint.unix("/path/to/socket.sock")
or parse them from URLs likeredis:/path/to/socket.sock
.
v0.12.0
- Add agent context.
- Add support for pattern pub/sub.
- Add support for sharded pub/sub.
- Add support for
master_options
andslave_options
(and removedprotocol
) fromSentinelClient
.
v0.11.2
- Fix handling of IPv6 address literals, including those returned by Redis Cluster / Sentinel.
v0.11.1
- Correctly pass
@options
toAsync::Redis::Client
instances created byAsync::Redis::ClusterClient
.
v0.10.0
Contributing
We welcome contributions to this project.
- Fork it.
- Create your feature branch (
git checkout -b my-new-feature
). - Commit your changes (
git commit -am 'Add some feature'
). - Push to the branch (
git push origin my-new-feature
). - Create new Pull Request.
Developer Certificate of Origin
In order to protect users of this project, we require all contributors to comply with the Developer Certificate of Origin. This ensures that all contributions are properly licensed and attributed.
Community Guidelines
This project is best served by a collaborative and respectful environment. Treat each other professionally, respect differing viewpoints, and engage constructively. Harassment, discrimination, or harmful behavior is not tolerated. Communicate clearly, listen actively, and support one another. If any issues arise, please inform the project maintainers.