Async-Redis
view release on metacpan or search on metacpan
lib/Async/Redis.pm view on Meta::CPAN
articulated by the L<trio|https://trio.readthedocs.io/> /
L<asyncio.TaskGroup|https://docs.python.org/3/library/asyncio-task.html#task-groups>
ecosystems:
=over
=item * GC safety - every background task is held by the selector.
=item * Error propagation - any task's failure reaches callers awaiting
the selector via C<run_until_ready>.
=item * Cancellation - socket closure propagates to pending I/O, which
fails the owning task, which the selector propagates.
=item * Scope cleanup - C<disconnect> tears down state; remaining selector
tasks unwind via their existing on_fail handlers.
=item * Local reasoning - all concurrent work on one connection is owned
by one place.
=back
There is no user-facing API for the selector; it is internal
machinery. Clients should not call C<< $redis->{_tasks} >> directly.
I<Note:> the only use of C<< Future->retain >> in this codebase is
avoided in favor of selector ownership. Any patch that introduces
C<< ->retain >> on an Async::Redis-owned Future should instead add
the task to C<< $self->{_tasks} >> so failure propagation and lifetime
ownership are consistent.
=head1 KNOWN LIMITATIONS
=over
=item * Hostname resolution is synchronous. C<connect()> calls
C<inet_aton> before the async connect, which blocks during DNS lookup.
Not covered by C<connect_timeout>.
=item * IPv6 URI hosts are not yet supported.
=item * Some generated wrappers expose mode-changing commands (HELLO,
CLIENT REPLY, MONITOR, SYNC, PSYNC) that interact poorly with the
response model. Avoid them unless you understand the protocol
consequences.
=back
=head1 SEE ALSO
=over 4
=item * L<Future::IO> - The underlying async I/O abstraction
=item * L<Future::AsyncAwait> - Async/await syntax support
=item * L<Async::Redis::Pool> - Connection pooling
=item * L<Async::Redis::Subscription> - PubSub subscriptions
=item * L<Async::Redis::Cookbook> - Practical usage recipes
=item * L<Redis> - Synchronous Redis client
=item * L<Net::Async::Redis> - Another async Redis client
=back
=head1 AUTHOR
John Napiorkowski
=head1 COPYRIGHT AND LICENSE
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
=cut
( run in 1.296 second using v1.01-cache-2.11-cpan-6aa56a78535 )