Changes for version 0.001003 - 2026-01-18
- New Feature: Enhanced Lua Script Helper API
- define_command() for registering named scripts with metadata
- run_script() for executing registered scripts by name
- get_script(), list_scripts() for registry access
- preload_scripts() for pipeline optimization
- Automatic EVALSHA with EVAL fallback (NOSCRIPT handling)
- Pipeline integration via $pipe->run_script()
- Optional method installation (install => 1)
- Support for fixed or dynamic key counts
- Script.pm Enhancements:
- New run() method with explicit keys/args arrays
- New run_on() method for explicit connection targeting
- Metadata fields: name, num_keys, description
- Documentation:
- New LUA SCRIPTING section in Async::Redis POD
- Comprehensive examples for all script methods
- Pipeline integration examples
- Testing:
- t/60-scripting/define-command.t (18 tests)
- t/60-scripting/script-registry.t (17 tests)
- t/60-scripting/pipeline-scripts.t (16 tests)
- t/60-scripting/pagi-channels.t (16 tests) - realistic channel layer scenarios
Documentation
Auto-generated Redis command methods
Modules
Async Redis client using Future::IO
Automatic command batching
Auto-generated Redis command methods
Base exception class for Redis errors
Connection failure exception
Disconnected exception
Protocol violation exception
Redis server error exception
Timeout exception
Cursor-based SCAN iterator
Key position detection for Redis commands
Command pipelining
Connection pool for Async::Redis
Reusable Lua script wrapper with EVALSHA optimization
PubSub subscription handler
Observability for Redis client
Transaction command collector
Redis connection URI parser
Examples
- examples/README.md
- examples/docker-compose.yml
- examples/pagi-chat/README.md
- examples/pagi-chat/app.pl
- examples/pagi-chat/lib/ChatApp/HTTP.pm
- examples/pagi-chat/public/css/style.css
- examples/pagi-chat/public/index.html
- examples/pagi-chat/public/js/app.js
- examples/pagi-chat/reset-redis.sh
- examples/slow-redis/README.md
- examples/slow-redis/app.pl