table of contents
Mojo::Redis(3) | User Contributed Perl Documentation | Mojo::Redis(3) |
NAME¶
Mojo::Redis - Redis driver based on Mojo::IOLoop
SYNOPSIS¶
Blocking¶
use Mojo::Redis; my $redis = Mojo::Redis->new; $redis->db->set(foo => 42); $redis->db->expire(foo => 600); warn $redis->db->get('foo');
Promises¶
$redis->db->get_p("mykey")->then(sub { print "mykey=$_[0]\n"; })->catch(sub { warn "Could not fetch mykey: $_[0]"; })->wait;
Pipelining¶
Pipelining is built into the API by sending a lot of commands and then use "all" in Mojo::Promise to wait for all the responses.
Mojo::Promise->all( $db->set_p($key, 10), $db->incrby_p($key, 9), $db->incr_p($key), $db->get_p($key), $db->incr_p($key), $db->get_p($key), )->then(sub { @res = map {@$_} @_; })->wait;
DESCRIPTION¶
Mojo::Redis is a Redis driver that use the Mojo::IOLoop, which makes it integrate easily with the Mojolicious framework.
It tries to mimic the same interface as Mojo::Pg, Mojo::mysql and Mojo::SQLite, but the methods for talking to the database vary.
This module is in no way compatible with the 1.xx version of "Mojo::Redis" and this version also tries to fix a lot of the confusing methods in "Mojo::Redis2" related to pubsub.
This module is currently EXPERIMENTAL, and bad design decisions will be fixed without warning. Please report at <https://github.com/jhthorsen/mojo-redis/issues> if you find this module useful, annoying or if you simply find bugs. Feedback can also be sent to "jhthorsen@cpan.org".
EVENTS¶
connection¶
$cb = $redis->on(connection => sub { my ($redis, $connection) = @_; });
Emitted when Mojo::Redis::Connection connects to the Redis.
ATTRIBUTES¶
encoding¶
$str = $redis->encoding; $redis = $redis->encoding("UTF-8");
The value of this attribute will be passed on to "encoding" in Mojo::Redis::Connection when a new connection is created. This means that updating this attribute will not change any connection that is in use.
Default value is "UTF-8".
max_connections¶
$int = $redis->max_connections; $redis = $redis->max_connections(5);
Maximum number of idle database handles to cache for future use, defaults to 5. (Default is subject to change)
protocol_class¶
$str = $redis->protocol_class; $redis = $redis->protocol_class("Protocol::Redis::XS");
Default to Protocol::Redis::XS if the optional module is available and at least version 0.06, or falls back to Protocol::Redis::Faster.
pubsub¶
$pubsub = $redis->pubsub;
Lazy builds an instance of Mojo::Redis::PubSub for this object, instead of returning a new instance like "db" does.
url¶
$url = $redis->url; $redis = $redis->url(Mojo::URL->new("redis://localhost/3"));
Holds an instance of Mojo::URL that describes how to connect to the Redis server.
METHODS¶
db¶
$db = $redis->db;
Returns an instance of Mojo::Redis::Database.
cache¶
$cache = $redis->cache(%attrs);
Returns an instance of Mojo::Redis::Cache.
cursor¶
$cursor = $redis->cursor(@command);
Returns an instance of Mojo::Redis::Cursor with "command" in Mojo::Redis::Cursor set to the arguments passed. See "new" in Mojo::Redis::Cursor. for possible commands.
new¶
$redis = Mojo::Redis->new("redis://localhost:6379/1"); $redis = Mojo::Redis->new(Mojo::URL->new->host("/tmp/redis.sock")); $redis = Mojo::Redis->new(\%attrs); $redis = Mojo::Redis->new(%attrs);
Object constructor. Can coerce a string into a Mojo::URL and set "url" if present.
AUTHORS¶
Jan Henning Thorsen - "jhthorsen@cpan.org"
Dan Book - "grinnz@grinnz.com"
COPYRIGHT AND LICENSE¶
Copyright (C) 2018, Jan Henning Thorsen.
This program is free software, you can redistribute it and/or modify it under the terms of the Artistic License version 2.0.
2022-02-24 | perl v5.40.0 |