[![Build Status](https://travis-ci.org/shogo82148/p5-Redis-Script.svg?branch=master)](https://travis-ci.org/shogo82148/p5-Redis-Script) # NAME Redis::Script - wrapper class for Redis' script # SYNOPSIS # OO-interface use Redis; use Redis::Script; my $script = Redis::Script->new(script => "return {KEYS[1],KEYS[2],ARGV[1],ARGV[2]}"); my ($key1, $key2, $arg1, $arg2) = $script->eval(Redis->new, ['key1', 'key2'], ['arg1', 'arg2']); # Functional use Redis::Script qw/redis_eval/; my ($key1, $key2, $arg1, $arg2) = redis_eval(Redis->new, "return {KEYS[1],KEYS[2],ARGV[1],ARGV[2]}", ['key1', 'key2'], ['arg1', 'arg2']); # DESCRIPTION Redis::Script is wrapper class for Redis' script. # FUNCTIONS ## `$script->eval($redis:Redis, $keys:ArrayRef, $args:ArrayRef)` `eval` executes the script by `EVALSHA` command. If `EVALSHA` reports "No matching script", use `EVAL` instead of `EVALSHA`. Redis will cache the script of `EVAL` command, so `EVALSHA` will succeed next time. If `use_evalsha` option is false, `eval` does not use `EVALSHA` command. ## `$script->exists($redis:Redis)` `exists` reports if `$redis` caches the script. ## `$script->load($redis:Redis)` Load a script into the scripts cache, without executing it. # SEE ALSO - [Redis.pm](https://metacpan.org/pod/Redis) - [Redis::Fast](https://metacpan.org/pod/Redis::Fast) - [Description of EVAL](http://redis.io/commands/eval#bandwidth-and-evalsha) # LICENSE Copyright (C) Ichinose Shogo. This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. # AUTHOR Ichinose Shogo