1Redis(3pm) User Contributed Perl Documentation Redis(3pm)
2
3
4
6 Redis - Perl binding for Redis database
7
9 version 1.999
10
12 ## Defaults to $ENV{REDIS_SERVER} or 127.0.0.1:6379
13 my $redis = Redis->new;
14
15 my $redis = Redis->new(server => 'redis.example.com:8080');
16
17 ## Set the connection name (requires Redis 2.6.9)
18 my $redis = Redis->new(
19 server => 'redis.example.com:8080',
20 name => 'my_connection_name',
21 );
22 my $generation = 0;
23 my $redis = Redis->new(
24 server => 'redis.example.com:8080',
25 name => sub { "cache-$$-".++$generation },
26 );
27
28 ## Use UNIX domain socket
29 my $redis = Redis->new(sock => '/path/to/socket');
30
31 ## Connect to Redis over a secure SSL/TLS channel. See
32 ## IO::Socket::SSL documentation for more information
33 ## about SSL_verify_mode parameter.
34 my $redis = Redis->new(
35 server => 'redis.tls.example.com:8080',
36 ssl => 1,
37 SSL_verify_mode => SSL_VERIFY_PEER,
38 );
39
40 ## Enable auto-reconnect
41 ## Try to reconnect every 1s up to 60 seconds until success
42 ## Die if you can't after that
43 my $redis = Redis->new(reconnect => 60, every => 1_000_000);
44
45 ## Try each 100ms up to 2 seconds (every is in microseconds)
46 my $redis = Redis->new(reconnect => 2, every => 100_000);
47
48 ## Enable connection timeout (in seconds)
49 my $redis = Redis->new(cnx_timeout => 60);
50
51 ## Enable read timeout (in seconds)
52 my $redis = Redis->new(read_timeout => 0.5);
53
54 ## Enable write timeout (in seconds)
55 my $redis = Redis->new(write_timeout => 1.2);
56
57 ## Connect via a list of Sentinels to a given service
58 my $redis = Redis->new(sentinels => [ '127.0.0.1:12345' ], service => 'mymaster');
59
60 ## Same, but with connection, read and write timeout on the sentinel hosts
61 my $redis = Redis->new( sentinels => [ '127.0.0.1:12345' ], service => 'mymaster',
62 sentinels_cnx_timeout => 0.1,
63 sentinels_read_timeout => 1,
64 sentinels_write_timeout => 1,
65 );
66
67 ## Use all the regular Redis commands, they all accept a list of
68 ## arguments
69 ## See https://redis.io/commands for full list
70 $redis->get('key');
71 $redis->set('key' => 'value');
72 $redis->sort('list', 'DESC');
73 $redis->sort(qw{list LIMIT 0 5 ALPHA DESC});
74
75 ## Add a coderef argument to run a command in the background
76 $redis->sort(qw{list LIMIT 0 5 ALPHA DESC}, sub {
77 my ($reply, $error) = @_;
78 die "Oops, got an error: $error\n" if defined $error;
79 print "$_\n" for @$reply;
80 });
81 long_computation();
82 $redis->wait_all_responses;
83 ## or
84 $redis->wait_one_response();
85
86 ## Or run a large batch of commands in a pipeline
87 my %hash = _get_large_batch_of_commands();
88 $redis->hset('h', $_, $hash{$_}, sub {}) for keys %hash;
89 $redis->wait_all_responses;
90
91 ## Publish/Subscribe
92 $redis->subscribe(
93 'topic_1',
94 'topic_2',
95 sub {
96 my ($message, $topic, $subscribed_topic) = @_
97
98 ## $subscribed_topic can be different from topic if
99 ## you use psubscribe() with wildcards
100 }
101 );
102 $redis->psubscribe('nasdaq.*', sub {...});
103
104 ## Blocks and waits for messages, calls subscribe() callbacks
105 ## ... forever
106 my $timeout = 10;
107 $redis->wait_for_messages($timeout) while 1;
108
109 ## ... until some condition
110 my $keep_going = 1; ## other code will set to false to quit
111 $redis->wait_for_messages($timeout) while $keep_going;
112
113 $redis->publish('topic_1', 'message');
114
116 Pure perl bindings for <https://redis.io/>
117
118 This version supports protocol 2.x (multi-bulk) or later of Redis
119 available at <https://github.com/antirez/redis/>.
120
121 This documentation lists commands which are exercised in test suite,
122 but additional commands will work correctly since protocol specifies
123 enough information to support almost all commands with same piece of
124 code with a little help of "AUTOLOAD".
125
127 Usually, running a command will wait for a response. However, if
128 you're doing large numbers of requests, it can be more efficient to use
129 what Redis calls pipelining: send multiple commands to Redis without
130 waiting for a response, then wait for the responses that come in.
131
132 To use pipelining, add a coderef argument as the last argument to a
133 command method call:
134
135 $r->set('foo', 'bar', sub {});
136
137 Pending responses to pipelined commands are processed in a single
138 batch, as soon as at least one of the following conditions holds:
139
140 • A non-pipelined (synchronous) command is called on the same
141 connection
142
143 • A pub/sub subscription command (one of "subscribe", "unsubscribe",
144 "psubscribe", or "punsubscribe") is about to be called on the same
145 connection.
146
147 • One of "wait_all_responses" or "wait_one_response" methods is
148 called explicitly.
149
150 The coderef you supply to a pipelined command method is invoked once
151 the response is available. It takes two arguments, $reply and $error.
152 If $error is defined, it contains the text of an error reply sent by
153 the Redis server. Otherwise, $reply is the non-error reply. For almost
154 all commands, that means it's "undef", or a defined but non-reference
155 scalar, or an array ref of any of those; but see "keys", "info", and
156 "exec".
157
158 Note the contrast with synchronous commands, which throw an exception
159 on receipt of an error reply, or return a non-error reply directly.
160
161 The fact that pipelined commands never throw an exception can be
162 particularly useful for Redis transactions; see "exec".
163
165 There is no encoding feature anymore, it has been deprecated and
166 finally removed. This module consider that any data sent to the Redis
167 server is a binary data. And it doesn't do anything when getting data
168 from the Redis server.
169
170 So, if you are working with character strings, you should pre-encode or
171 post-decode it if needed !
172
174 new
175 my $r = Redis->new; # $ENV{REDIS_SERVER} or 127.0.0.1:6379
176
177 my $r = Redis->new( server => '192.168.0.1:6379', debug => 0 );
178 my $r = Redis->new( server => '192.168.0.1:6379', encoding => undef );
179 my $r = Redis->new( server => '192.168.0.1:6379', ssl => 1, SSL_verify_mode => SSL_VERIFY_PEER );
180 my $r = Redis->new( sock => '/path/to/sock' );
181 my $r = Redis->new( reconnect => 60, every => 5000 );
182 my $r = Redis->new( password => 'boo' );
183 my $r = Redis->new( on_connect => sub { my ($redis) = @_; ... } );
184 my $r = Redis->new( name => 'my_connection_name' );
185 my $r = Redis->new( name => sub { "cache-for-$$" });
186
187 my $redis = Redis->new(sentinels => [ '127.0.0.1:12345', '127.0.0.1:23456' ],
188 service => 'mymaster');
189
190 ## Connect via a list of Sentinels to a given service
191 my $redis = Redis->new(sentinels => [ '127.0.0.1:12345' ], service => 'mymaster');
192
193 ## Same, but with connection, read and write timeout on the sentinel hosts
194 my $redis = Redis->new( sentinels => [ '127.0.0.1:12345' ], service => 'mymaster',
195 sentinels_cnx_timeout => 0.1,
196 sentinels_read_timeout => 1,
197 sentinels_write_timeout => 1,
198 );
199
200 "server"
201
202 The "server" parameter specifies the Redis server we should connect to,
203 via TCP. Use the 'IP:PORT' format. If no "server" option is present, we
204 will attempt to use the "REDIS_SERVER" environment variable. If neither
205 of those options are present, it defaults to '127.0.0.1:6379'.
206
207 Alternatively you can use the "sock" parameter to specify the path of
208 the UNIX domain socket where the Redis server is listening.
209
210 Alternatively you can use the "sentinels" parameter and the "service"
211 parameter to specify a list of sentinels to contact and try to get the
212 address of the given service name. "sentinels" must be an ArrayRef and
213 "service" an Str.
214
215 The "REDIS_SERVER" can be used for UNIX domain sockets too. The
216 following formats are supported:
217
218 • /path/to/sock
219
220 • unix:/path/to/sock
221
222 • 127.0.0.1:11011
223
224 • tcp:127.0.0.1:11011
225
226 "reconnect", "every"
227
228 The "reconnect" option enables auto-reconnection mode. If we cannot
229 connect to the Redis server, or if a network write fails, we enter
230 retry mode. We will try a new connection every "every" microseconds (1
231 ms by default), up-to "reconnect" seconds.
232
233 Be aware that read errors will always thrown an exception, and will not
234 trigger a retry until the new command is sent.
235
236 If we cannot re-establish a connection after "reconnect" seconds, an
237 exception will be thrown.
238
239 "conservative_reconnect"
240
241 "conservative_reconnect" option makes sure that reconnection is only
242 attempted when no pending command is ongoing. For instance, if you're
243 doing "<$redis-"incr('key')>>, and if the server properly understood
244 and processed the command, but the network connection is dropped just
245 before the server replies : the command has been processed but the
246 client doesn't know it. In this situation, if reconnect is enabled, the
247 Redis client will reconnect and send the "incr" command *again*. If it
248 succeeds, at the end the key as been incremented *two* times. To avoid
249 this issue, you can set the "conservative_reconnect" option to a true
250 value. In this case, the client will reconnect only if no request is
251 pending. Otherwise it will die with the message: "reconnect disabled
252 while responses are pending and safe reconnect mode enabled".
253
254 "cnx_timeout"
255
256 The "cnx_timeout" option enables connection timeout. The Redis client
257 will wait at most that number of seconds (can be fractional) before
258 giving up connecting to a server.
259
260 "sentinels_cnx_timeout"
261
262 The "sentinels_cnx_timeout" option enables sentinel connection timeout.
263 When using the sentinels feature, Redis client will wait at most that
264 number of seconds (can be fractional) before giving up connecting to a
265 sentinel. Default: 0.1
266
267 "read_timeout"
268
269 The "read_timeout" option enables read timeout. The Redis client will
270 wait at most that number of seconds (can be fractional) before giving
271 up when reading from the server.
272
273 "sentinels_read_timeout"
274
275 The "sentinels_read_timeout" option enables sentinel read timeout. When
276 using the sentinels feature, the Redis client will wait at most that
277 number of seconds (can be fractional) before giving up when reading
278 from a sentinel server. Default: 1
279
280 "write_timeout"
281
282 The "write_timeout" option enables write timeout. The Redis client will
283 wait at most that number of seconds (can be fractional) before giving
284 up when reading from the server.
285
286 "sentinels_write_timeout"
287
288 The "sentinels_write_timeout" option enables sentinel write timeout.
289 When using the sentinels feature, the Redis client will wait at most
290 that number of seconds (can be fractional) before giving up when
291 reading from a sentinel server. Default: 1
292
293 "password"
294
295 If your Redis server requires authentication, you can use the
296 "password" attribute. After each established connection (at the start
297 or when reconnecting), the Redis "AUTH" command will be send to the
298 server. If the password is wrong, an exception will be thrown and
299 reconnect will be disabled.
300
301 "on_connect"
302
303 You can also provide a code reference that will be immediately after
304 each successful connection. The "on_connect" attribute is used to
305 provide the code reference, and it will be called with the first
306 parameter being the Redis object.
307
308 "no_auto_connect_on_new"
309
310 You can also provide "no_auto_connect_on_new" in which case "new" won't
311 call "$obj->connect" for you implicitly, you'll have to do that
312 yourself. This is useful for figuring out how long connection setup
313 takes so you can configure the "cnx_timeout" appropriately.
314
315 "no_sentinels_list_update"
316
317 You can also provide "no_sentinels_list_update". By default (that is,
318 without this option), when successfully contacting a sentinel server,
319 the Redis client will ask it for the list of sentinels known for the
320 given service, and merge it with its list of sentinels (in the
321 "sentinels" attribute). You can disable this behavior by setting
322 "no_sentinels_list_update" to a true value.
323
324 "name"
325
326 You can also set a name for each connection. This can be very useful
327 for debugging purposes, using the "CLIENT LIST" command. To set a
328 connection name, use the "name" parameter. You can use both a scalar
329 value or a CodeRef. If the latter, it will be called after each
330 connection, with the Redis object, and it should return the connection
331 name to use. If it returns a undefined value, Redis will not set the
332 connection name.
333
334 Please note that there are restrictions on the name you can set, the
335 most important of which is, no spaces. See the CLIENT SETNAME
336 documentation <https://redis.io/commands/client-setname> for all the
337 juicy details. This feature is safe to use with all versions of Redis
338 servers. If "CLIENT SETNAME" support is not available (Redis servers
339 2.6.9 and above only), the name parameter is ignored.
340
341 "ssl"
342
343 You can connect to Redis over SSL/TLS by setting this flag if the
344 target Redis server or cluster has been setup to support SSL/TLS. This
345 requires IO::Socket::SSL to be installed on the client. It's off by
346 default.
347
348 "SSL_verify_mode"
349
350 This parameter will be applied when "ssl" flag is set. It sets the
351 verification mode for the peer certificate. It's compatible with the
352 parameter with the same name in IO::Socket::SSL.
353
354 "debug"
355
356 The "debug" parameter enables debug information to STDERR, including
357 all interactions with the server. You can also enable debug with the
358 "REDIS_DEBUG" environment variable.
359
361 connect
362 $r->connect;
363
364 Connects to the Redis server. This is done by default when the obect is
365 constructed using "new()", unless "no_auto_connect_on_new" has been
366 set. See this option in the "new()" constructor.
367
368 quit
369 $r->quit;
370
371 Closes the connection to the server. The "quit" method does not support
372 pipelined operation.
373
374 ping
375 $r->ping || die "no server?";
376
377 The "ping" method does not support pipelined operation.
378
380 wait_all_responses
381 Waits until all pending pipelined responses have been received, and
382 invokes the pipeline callback for each one. See "PIPELINING".
383
384 wait_one_response
385 Waits until the first pending pipelined response has been received, and
386 invokes its callback. See "PIPELINING".
387
389 When one of "subscribe" or "psubscribe" is used, the Redis object will
390 enter PubSub mode. When in PubSub mode only commands in this section,
391 plus "quit", will be accepted.
392
393 If you plan on using PubSub and other Redis functions, you should use
394 two Redis objects, one dedicated to PubSub and the other for regular
395 commands.
396
397 All Pub/Sub commands receive a callback as the last parameter. This
398 callback receives three arguments:
399
400 • The published message.
401
402 • The topic over which the message was sent.
403
404 • The subscribed topic that matched the topic for the message. With
405 "subscribe" these last two are the same, always. But with
406 "psubscribe", this parameter tells you the pattern that matched.
407
408 See the Pub-Sub notes <https://redis.io/topics/pubsub> for more
409 information about the messages you will receive on your callbacks after
410 each "subscribe", "unsubscribe", "psubscribe" and "punsubscribe".
411
412 publish
413 $r->publish($topic, $message);
414
415 Publishes the $message to the $topic.
416
417 subscribe
418 $r->subscribe(
419 @topics_to_subscribe_to,
420 my $savecallback = sub {
421 my ($message, $topic, $subscribed_topic) = @_;
422 ...
423 },
424 );
425
426 Subscribe one or more topics. Messages published into one of them will
427 be received by Redis, and the specified callback will be executed.
428
429 unsubscribe
430 $r->unsubscribe(@topic_list, $savecallback);
431
432 Stops receiving messages via $savecallback for all the topics in
433 @topic_list. WARNING: it is important that you give the same calleback
434 that you used for subscribtion. The value of the CodeRef must be the
435 same, as this is how internally the code identifies it.
436
437 psubscribe
438 my @topic_matches = ('prefix1.*', 'prefix2.*');
439 $r->psubscribe(@topic_matches, my $savecallback = sub { my ($m, $t, $s) = @_; ... });
440
441 Subscribes a pattern of topics. All messages to topics that match the
442 pattern will be delivered to the callback.
443
444 punsubscribe
445 my @topic_matches = ('prefix1.*', 'prefix2.*');
446 $r->punsubscribe(@topic_matches, $savecallback);
447
448 Stops receiving messages via $savecallback for all the topics pattern
449 matches in @topic_list. WARNING: it is important that you give the same
450 calleback that you used for subscribtion. The value of the CodeRef must
451 be the same, as this is how internally the code identifies it.
452
453 is_subscriber
454 if ($r->is_subscriber) { say "We are in Pub/Sub mode!" }
455
456 Returns true if we are in Pub/Sub mode.
457
458 wait_for_messages
459 my $keep_going = 1; ## Set to false somewhere to leave the loop
460 my $timeout = 5;
461 $r->wait_for_messages($timeout) while $keep_going;
462
463 Blocks, waits for incoming messages and delivers them to the
464 appropriate callbacks.
465
466 Requires a single parameter, the number of seconds to wait for
467 messages. Use 0 to wait for ever. If a positive non-zero value is used,
468 it will return after that amount of seconds without a single
469 notification.
470
471 Please note that the timeout is not a commitment to return control to
472 the caller at most each "timeout" seconds, but more a idle timeout,
473 were control will return to the caller if Redis is idle (as in no
474 messages were received during the timeout period) for more than
475 "timeout" seconds.
476
477 The "wait_for_messages" call returns the number of messages processed
478 during the run.
479
481 methods that return multiple values
482 When a method returns more than one value, it checks the context and
483 returns either a list of values or an ArrayRef.
484
485 transaction-handling methods
486 Warning: the behaviour of the TRANSACTIONS commands when combined with
487 pipelining is still under discussion, and you should NOT use them at
488 the same time just now.
489
490 You can follow the discussion to see the open issues with this
491 <https://github.com/PerlRedis/perl-redis/issues/17>.
492
493 exec
494 my @individual_replies = $r->exec;
495
496 "exec" has special behaviour when run in a pipeline: the $reply
497 argument to the pipeline callback is an array ref whose elements are
498 themselves "[$reply, $error]" pairs. This means that you can
499 accurately detect errors yielded by any command in the transaction, and
500 without any exceptions being thrown.
501
502 keys
503 my @keys = $r->keys( '*glob_pattern*' );
504 my $keys = $r->keys( '*glob_pattern*' ); # count of matching keys
505
506 Note that synchronous "keys" calls in a scalar context return the
507 number of matching keys (not an array ref of matching keys as you might
508 expect). This does not apply in pipelined mode: assuming the server
509 returns a list of keys, as expected, it is always passed to the
510 pipeline callback as an array ref.
511
512 hashes
513 Hashes in Redis cannot be nested as in perl, if you want to store a
514 nested hash, you need to serialize the hash first. If you want to have
515 a named hash, you can use Redis-hashes. You will find an example in the
516 tests of this module t/01-basic.t
517
518 eval
519 Note that this commands sends the Lua script every time you call it.
520 See "evalsha" and "script_load" for an alternative.
521
522 info
523 my $info_hash = $r->info;
524
525 The "info" method is unique in that it decodes the server's response
526 into a hashref, if possible. This decoding happens in both synchronous
527 and pipelined modes.
528
530 del
531 $r->del(key [key ...])
532
533 Delete a key (see <https://redis.io/commands/del>)
534
535 dump
536 $r->dump(key)
537
538 Return a serialized version of the value stored at the specified key.
539 (see <https://redis.io/commands/dump>)
540
541 exists
542 $r->exists(key)
543
544 Determine if a key exists (see <https://redis.io/commands/exists>)
545
546 expire
547 $r->expire(key, seconds)
548
549 Set a key's time to live in seconds (see
550 <https://redis.io/commands/expire>)
551
552 expireat
553 $r->expireat(key, timestamp)
554
555 Set the expiration for a key as a UNIX timestamp (see
556 <https://redis.io/commands/expireat>)
557
558 keys
559 $r->keys(pattern)
560
561 Find all keys matching the given pattern (see
562 <https://redis.io/commands/keys>)
563
564 migrate
565 $r->migrate(host, port, key, destination-db, timeout, [COPY], [REPLACE])
566
567 Atomically transfer a key from a Redis instance to another one. (see
568 <https://redis.io/commands/migrate>)
569
570 move
571 $r->move(key, db)
572
573 Move a key to another database (see <https://redis.io/commands/move>)
574
575 object
576 $r->object(subcommand, [arguments [arguments ...]])
577
578 Inspect the internals of Redis objects (see
579 <https://redis.io/commands/object>)
580
581 persist
582 $r->persist(key)
583
584 Remove the expiration from a key (see
585 <https://redis.io/commands/persist>)
586
587 pexpire
588 $r->pexpire(key, milliseconds)
589
590 Set a key's time to live in milliseconds (see
591 <https://redis.io/commands/pexpire>)
592
593 pexpireat
594 $r->pexpireat(key, milliseconds-timestamp)
595
596 Set the expiration for a key as a UNIX timestamp specified in
597 milliseconds (see <https://redis.io/commands/pexpireat>)
598
599 pttl
600 $r->pttl(key)
601
602 Get the time to live for a key in milliseconds (see
603 <https://redis.io/commands/pttl>)
604
605 randomkey
606 $r->randomkey()
607
608 Return a random key from the keyspace (see
609 <https://redis.io/commands/randomkey>)
610
611 rename
612 $r->rename(key, newkey)
613
614 Rename a key (see <https://redis.io/commands/rename>)
615
616 renamenx
617 $r->renamenx(key, newkey)
618
619 Rename a key, only if the new key does not exist (see
620 <https://redis.io/commands/renamenx>)
621
622 restore
623 $r->restore(key, ttl, serialized-value)
624
625 Create a key using the provided serialized value, previously obtained
626 using DUMP. (see <https://redis.io/commands/restore>)
627
628 scan
629 $r->scan(cursor, [MATCH pattern], [COUNT count])
630
631 Incrementally iterate the keys space (see
632 <https://redis.io/commands/scan>)
633
634 sort
635 $r->sort(key, [BY pattern], [LIMIT offset count], [GET pattern [GET pattern ...]], [ASC|DESC], [ALPHA], [STORE destination])
636
637 Sort the elements in a list, set or sorted set (see
638 <https://redis.io/commands/sort>)
639
640 ttl
641 $r->ttl(key)
642
643 Get the time to live for a key (see <https://redis.io/commands/ttl>)
644
645 type
646 $r->type(key)
647
648 Determine the type stored at key (see <https://redis.io/commands/type>)
649
651 append
652 $r->append(key, value)
653
654 Append a value to a key (see <https://redis.io/commands/append>)
655
656 bitcount
657 $r->bitcount(key, [start end])
658
659 Count set bits in a string (see <https://redis.io/commands/bitcount>)
660
661 bitop
662 $r->bitop(operation, destkey, key [key ...])
663
664 Perform bitwise operations between strings (see
665 <https://redis.io/commands/bitop>)
666
667 bitpos
668 $r->bitpos(key, bit, [start], [end])
669
670 Find first bit set or clear in a string (see
671 <https://redis.io/commands/bitpos>)
672
673 blpop
674 $r->blpop(key [key ...], timeout)
675
676 Remove and get the first element in a list, or block until one is
677 available (see <https://redis.io/commands/blpop>)
678
679 brpop
680 $r->brpop(key [key ...], timeout)
681
682 Remove and get the last element in a list, or block until one is
683 available (see <https://redis.io/commands/brpop>)
684
685 brpoplpush
686 $r->brpoplpush(source, destination, timeout)
687
688 Pop a value from a list, push it to another list and return it; or
689 block until one is available (see
690 <https://redis.io/commands/brpoplpush>)
691
692 decr
693 $r->decr(key)
694
695 Decrement the integer value of a key by one (see
696 <https://redis.io/commands/decr>)
697
698 decrby
699 $r->decrby(key, decrement)
700
701 Decrement the integer value of a key by the given number (see
702 <https://redis.io/commands/decrby>)
703
704 get
705 $r->get(key)
706
707 Get the value of a key (see <https://redis.io/commands/get>)
708
709 getbit
710 $r->getbit(key, offset)
711
712 Returns the bit value at offset in the string value stored at key (see
713 <https://redis.io/commands/getbit>)
714
715 getrange
716 $r->getrange(key, start, end)
717
718 Get a substring of the string stored at a key (see
719 <https://redis.io/commands/getrange>)
720
721 getset
722 $r->getset(key, value)
723
724 Set the string value of a key and return its old value (see
725 <https://redis.io/commands/getset>)
726
727 incr
728 $r->incr(key)
729
730 Increment the integer value of a key by one (see
731 <https://redis.io/commands/incr>)
732
733 incrby
734 $r->incrby(key, increment)
735
736 Increment the integer value of a key by the given amount (see
737 <https://redis.io/commands/incrby>)
738
739 incrbyfloat
740 $r->incrbyfloat(key, increment)
741
742 Increment the float value of a key by the given amount (see
743 <https://redis.io/commands/incrbyfloat>)
744
745 mget
746 $r->mget(key [key ...])
747
748 Get the values of all the given keys (see
749 <https://redis.io/commands/mget>)
750
751 mset
752 $r->mset(key value [key value ...])
753
754 Set multiple keys to multiple values (see
755 <https://redis.io/commands/mset>)
756
757 msetnx
758 $r->msetnx(key value [key value ...])
759
760 Set multiple keys to multiple values, only if none of the keys exist
761 (see <https://redis.io/commands/msetnx>)
762
763 psetex
764 $r->psetex(key, milliseconds, value)
765
766 Set the value and expiration in milliseconds of a key (see
767 <https://redis.io/commands/psetex>)
768
769 set
770 $r->set(key, value, ['EX', seconds], ['PX', milliseconds], ['NX'|'XX'])
771
772 Set the string value of a key (see <https://redis.io/commands/set>).
773 Example:
774
775 $r->set('key', 'test', 'EX', 60, 'NX')
776
777 setbit
778 $r->setbit(key, offset, value)
779
780 Sets or clears the bit at offset in the string value stored at key (see
781 <https://redis.io/commands/setbit>)
782
783 setex
784 $r->setex(key, seconds, value)
785
786 Set the value and expiration of a key (see
787 <https://redis.io/commands/setex>)
788
789 setnx
790 $r->setnx(key, value)
791
792 Set the value of a key, only if the key does not exist (see
793 <https://redis.io/commands/setnx>)
794
795 setrange
796 $r->setrange(key, offset, value)
797
798 Overwrite part of a string at key starting at the specified offset (see
799 <https://redis.io/commands/setrange>)
800
801 strlen
802 $r->strlen(key)
803
804 Get the length of the value stored in a key (see
805 <https://redis.io/commands/strlen>)
806
808 hdel
809 $r->hdel(key, field [field ...])
810
811 Delete one or more hash fields (see <https://redis.io/commands/hdel>)
812
813 hexists
814 $r->hexists(key, field)
815
816 Determine if a hash field exists (see
817 <https://redis.io/commands/hexists>)
818
819 hget
820 $r->hget(key, field)
821
822 Get the value of a hash field (see <https://redis.io/commands/hget>)
823
824 hgetall
825 $r->hgetall(key)
826
827 Get all the fields and values in a hash (see
828 <https://redis.io/commands/hgetall>)
829
830 hincrby
831 $r->hincrby(key, field, increment)
832
833 Increment the integer value of a hash field by the given number (see
834 <https://redis.io/commands/hincrby>)
835
836 hincrbyfloat
837 $r->hincrbyfloat(key, field, increment)
838
839 Increment the float value of a hash field by the given amount (see
840 <https://redis.io/commands/hincrbyfloat>)
841
842 hkeys
843 $r->hkeys(key)
844
845 Get all the fields in a hash (see <https://redis.io/commands/hkeys>)
846
847 hlen
848 $r->hlen(key)
849
850 Get the number of fields in a hash (see
851 <https://redis.io/commands/hlen>)
852
853 hmget
854 $r->hmget(key, field [field ...])
855
856 Get the values of all the given hash fields (see
857 <https://redis.io/commands/hmget>)
858
859 hmset
860 $r->hmset(key, field value [field value ...])
861
862 Set multiple hash fields to multiple values (see
863 <https://redis.io/commands/hmset>)
864
865 hscan
866 $r->hscan(key, cursor, [MATCH pattern], [COUNT count])
867
868 Incrementally iterate hash fields and associated values (see
869 <https://redis.io/commands/hscan>)
870
871 hset
872 $r->hset(key, field, value)
873
874 Set the string value of a hash field (see
875 <https://redis.io/commands/hset>)
876
877 hsetnx
878 $r->hsetnx(key, field, value)
879
880 Set the value of a hash field, only if the field does not exist (see
881 <https://redis.io/commands/hsetnx>)
882
883 hvals
884 $r->hvals(key)
885
886 Get all the values in a hash (see <https://redis.io/commands/hvals>)
887
889 sadd
890 $r->sadd(key, member [member ...])
891
892 Add one or more members to a set (see <https://redis.io/commands/sadd>)
893
894 scard
895 $r->scard(key)
896
897 Get the number of members in a set (see
898 <https://redis.io/commands/scard>)
899
900 sdiff
901 $r->sdiff(key [key ...])
902
903 Subtract multiple sets (see <https://redis.io/commands/sdiff>)
904
905 sdiffstore
906 $r->sdiffstore(destination, key [key ...])
907
908 Subtract multiple sets and store the resulting set in a key (see
909 <https://redis.io/commands/sdiffstore>)
910
911 sinter
912 $r->sinter(key [key ...])
913
914 Intersect multiple sets (see <https://redis.io/commands/sinter>)
915
916 sinterstore
917 $r->sinterstore(destination, key [key ...])
918
919 Intersect multiple sets and store the resulting set in a key (see
920 <https://redis.io/commands/sinterstore>)
921
922 sismember
923 $r->sismember(key, member)
924
925 Determine if a given value is a member of a set (see
926 <https://redis.io/commands/sismember>)
927
928 smembers
929 $r->smembers(key)
930
931 Get all the members in a set (see <https://redis.io/commands/smembers>)
932
933 smove
934 $r->smove(source, destination, member)
935
936 Move a member from one set to another (see
937 <https://redis.io/commands/smove>)
938
939 spop
940 $r->spop(key)
941
942 Remove and return a random member from a set (see
943 <https://redis.io/commands/spop>)
944
945 srandmember
946 $r->srandmember(key, [count])
947
948 Get one or multiple random members from a set (see
949 <https://redis.io/commands/srandmember>)
950
951 srem
952 $r->srem(key, member [member ...])
953
954 Remove one or more members from a set (see
955 <https://redis.io/commands/srem>)
956
957 sscan
958 $r->sscan(key, cursor, [MATCH pattern], [COUNT count])
959
960 Incrementally iterate Set elements (see
961 <https://redis.io/commands/sscan>)
962
963 sunion
964 $r->sunion(key [key ...])
965
966 Add multiple sets (see <https://redis.io/commands/sunion>)
967
968 sunionstore
969 $r->sunionstore(destination, key [key ...])
970
971 Add multiple sets and store the resulting set in a key (see
972 <https://redis.io/commands/sunionstore>)
973
975 zadd
976 $r->zadd(key, score member [score member ...])
977
978 Add one or more members to a sorted set, or update its score if it
979 already exists (see <https://redis.io/commands/zadd>)
980
981 zcard
982 $r->zcard(key)
983
984 Get the number of members in a sorted set (see
985 <https://redis.io/commands/zcard>)
986
987 zcount
988 $r->zcount(key, min, max)
989
990 Count the members in a sorted set with scores within the given values
991 (see <https://redis.io/commands/zcount>)
992
993 zincrby
994 $r->zincrby(key, increment, member)
995
996 Increment the score of a member in a sorted set (see
997 <https://redis.io/commands/zincrby>)
998
999 zinterstore
1000 $r->zinterstore(destination, numkeys, key [key ...], [WEIGHTS weight [weight ...]], [AGGREGATE SUM|MIN|MAX])
1001
1002 Intersect multiple sorted sets and store the resulting sorted set in a
1003 new key (see <https://redis.io/commands/zinterstore>)
1004
1005 zlexcount
1006 $r->zlexcount(key, min, max)
1007
1008 Count the number of members in a sorted set between a given
1009 lexicographical range (see <https://redis.io/commands/zlexcount>)
1010
1011 zrange
1012 $r->zrange(key, start, stop, [WITHSCORES])
1013
1014 Return a range of members in a sorted set, by index (see
1015 <https://redis.io/commands/zrange>)
1016
1017 zrangebylex
1018 $r->zrangebylex(key, min, max, [LIMIT offset count])
1019
1020 Return a range of members in a sorted set, by lexicographical range
1021 (see <https://redis.io/commands/zrangebylex>)
1022
1023 zrangebyscore
1024 $r->zrangebyscore(key, min, max, [WITHSCORES], [LIMIT offset count])
1025
1026 Return a range of members in a sorted set, by score (see
1027 <https://redis.io/commands/zrangebyscore>)
1028
1029 zrank
1030 $r->zrank(key, member)
1031
1032 Determine the index of a member in a sorted set (see
1033 <https://redis.io/commands/zrank>)
1034
1035 zrem
1036 $r->zrem(key, member [member ...])
1037
1038 Remove one or more members from a sorted set (see
1039 <https://redis.io/commands/zrem>)
1040
1041 zremrangebylex
1042 $r->zremrangebylex(key, min, max)
1043
1044 Remove all members in a sorted set between the given lexicographical
1045 range (see <https://redis.io/commands/zremrangebylex>)
1046
1047 zremrangebyrank
1048 $r->zremrangebyrank(key, start, stop)
1049
1050 Remove all members in a sorted set within the given indexes (see
1051 <https://redis.io/commands/zremrangebyrank>)
1052
1053 zremrangebyscore
1054 $r->zremrangebyscore(key, min, max)
1055
1056 Remove all members in a sorted set within the given scores (see
1057 <https://redis.io/commands/zremrangebyscore>)
1058
1059 zrevrange
1060 $r->zrevrange(key, start, stop, [WITHSCORES])
1061
1062 Return a range of members in a sorted set, by index, with scores
1063 ordered from high to low (see <https://redis.io/commands/zrevrange>)
1064
1065 zrevrangebylex
1066 $r->zrevrangebylex(key, max, min, [LIMIT offset count])
1067
1068 Return a range of members in a sorted set, by lexicographical range,
1069 ordered from higher to lower strings. (see
1070 <https://redis.io/commands/zrevrangebylex>)
1071
1072 zrevrangebyscore
1073 $r->zrevrangebyscore(key, max, min, [WITHSCORES], [LIMIT offset count])
1074
1075 Return a range of members in a sorted set, by score, with scores
1076 ordered from high to low (see
1077 <https://redis.io/commands/zrevrangebyscore>)
1078
1079 zrevrank
1080 $r->zrevrank(key, member)
1081
1082 Determine the index of a member in a sorted set, with scores ordered
1083 from high to low (see <https://redis.io/commands/zrevrank>)
1084
1085 zscan
1086 $r->zscan(key, cursor, [MATCH pattern], [COUNT count])
1087
1088 Incrementally iterate sorted sets elements and associated scores (see
1089 <https://redis.io/commands/zscan>)
1090
1091 zscore
1092 $r->zscore(key, member)
1093
1094 Get the score associated with the given member in a sorted set (see
1095 <https://redis.io/commands/zscore>)
1096
1097 zunionstore
1098 $r->zunionstore(destination, numkeys, key [key ...], [WEIGHTS weight [weight ...]], [AGGREGATE SUM|MIN|MAX])
1099
1100 Add multiple sorted sets and store the resulting sorted set in a new
1101 key (see <https://redis.io/commands/zunionstore>)
1102
1104 pfadd
1105 $r->pfadd(key, element [element ...])
1106
1107 Adds the specified elements to the specified HyperLogLog. (see
1108 <https://redis.io/commands/pfadd>)
1109
1110 pfcount
1111 $r->pfcount(key [key ...])
1112
1113 Return the approximated cardinality of the set(s) observed by the
1114 HyperLogLog at key(s). (see <https://redis.io/commands/pfcount>)
1115
1116 pfmerge
1117 $r->pfmerge(destkey, sourcekey [sourcekey ...])
1118
1119 Merge N different HyperLogLogs into a single one. (see
1120 <https://redis.io/commands/pfmerge>)
1121
1123 pubsub
1124 $r->pubsub(subcommand, [argument [argument ...]])
1125
1126 Inspect the state of the Pub/Sub subsystem (see
1127 <https://redis.io/commands/pubsub>)
1128
1130 discard
1131 $r->discard()
1132
1133 Discard all commands issued after MULTI (see
1134 <https://redis.io/commands/discard>)
1135
1136 exec
1137 $r->exec()
1138
1139 Execute all commands issued after MULTI (see
1140 <https://redis.io/commands/exec>)
1141
1142 multi
1143 $r->multi()
1144
1145 Mark the start of a transaction block (see
1146 <https://redis.io/commands/multi>)
1147
1148 unwatch
1149 $r->unwatch()
1150
1151 Forget about all watched keys (see <https://redis.io/commands/unwatch>)
1152
1153 watch
1154 $r->watch(key [key ...])
1155
1156 Watch the given keys to determine execution of the MULTI/EXEC block
1157 (see <https://redis.io/commands/watch>)
1158
1160 eval
1161 $r->eval(script, numkeys, key [key ...], arg [arg ...])
1162
1163 Execute a Lua script server side (see <https://redis.io/commands/eval>)
1164
1165 evalsha
1166 $r->evalsha(sha1, numkeys, key [key ...], arg [arg ...])
1167
1168 Execute a Lua script server side (see
1169 <https://redis.io/commands/evalsha>)
1170
1171 script_exists
1172 $r->script_exists(script [script ...])
1173
1174 Check existence of scripts in the script cache. (see
1175 <https://redis.io/commands/script-exists>)
1176
1177 script_flush
1178 $r->script_flush()
1179
1180 Remove all the scripts from the script cache. (see
1181 <https://redis.io/commands/script-flush>)
1182
1183 script_kill
1184 $r->script_kill()
1185
1186 Kill the script currently in execution. (see
1187 <https://redis.io/commands/script-kill>)
1188
1189 script_load
1190 $r->script_load(script)
1191
1192 Load the specified Lua script into the script cache. (see
1193 <https://redis.io/commands/script-load>)
1194
1196 auth
1197 $r->auth(password)
1198
1199 Authenticate to the server (see <https://redis.io/commands/auth>)
1200
1201 echo
1202 $r->echo(message)
1203
1204 Echo the given string (see <https://redis.io/commands/echo>)
1205
1206 ping
1207 $r->ping()
1208
1209 Ping the server (see <https://redis.io/commands/ping>)
1210
1211 quit
1212 $r->quit()
1213
1214 Close the connection (see <https://redis.io/commands/quit>)
1215
1216 select
1217 $r->select(index)
1218
1219 Change the selected database for the current connection (see
1220 <https://redis.io/commands/select>)
1221
1223 bgrewriteaof
1224 $r->bgrewriteaof()
1225
1226 Asynchronously rewrite the append-only file (see
1227 <https://redis.io/commands/bgrewriteaof>)
1228
1229 bgsave
1230 $r->bgsave()
1231
1232 Asynchronously save the dataset to disk (see
1233 <https://redis.io/commands/bgsave>)
1234
1235 client_getname
1236 $r->client_getname()
1237
1238 Get the current connection name (see
1239 <https://redis.io/commands/client-getname>)
1240
1241 client_kill
1242 $r->client_kill([ip:port], [ID client-id], [TYPE normal|slave|pubsub], [ADDR ip:port], [SKIPME yes/no])
1243
1244 Kill the connection of a client (see
1245 <https://redis.io/commands/client-kill>)
1246
1247 client_list
1248 $r->client_list()
1249
1250 Get the list of client connections (see
1251 <https://redis.io/commands/client-list>)
1252
1253 client_pause
1254 $r->client_pause(timeout)
1255
1256 Stop processing commands from clients for some time (see
1257 <https://redis.io/commands/client-pause>)
1258
1259 client_setname
1260 $r->client_setname(connection-name)
1261
1262 Set the current connection name (see
1263 <https://redis.io/commands/client-setname>)
1264
1265 cluster_slots
1266 $r->cluster_slots()
1267
1268 Get array of Cluster slot to node mappings (see
1269 <https://redis.io/commands/cluster-slots>)
1270
1271 command
1272 $r->command()
1273
1274 Get array of Redis command details (see
1275 <https://redis.io/commands/command>)
1276
1277 command_count
1278 $r->command_count()
1279
1280 Get total number of Redis commands (see
1281 <https://redis.io/commands/command-count>)
1282
1283 command_getkeys
1284 $r->command_getkeys()
1285
1286 Extract keys given a full Redis command (see
1287 <https://redis.io/commands/command-getkeys>)
1288
1289 command_info
1290 $r->command_info(command-name [command-name ...])
1291
1292 Get array of specific Redis command details (see
1293 <https://redis.io/commands/command-info>)
1294
1295 config_get
1296 $r->config_get(parameter)
1297
1298 Get the value of a configuration parameter (see
1299 <https://redis.io/commands/config-get>)
1300
1301 config_resetstat
1302 $r->config_resetstat()
1303
1304 Reset the stats returned by INFO (see
1305 <https://redis.io/commands/config-resetstat>)
1306
1307 config_rewrite
1308 $r->config_rewrite()
1309
1310 Rewrite the configuration file with the in memory configuration (see
1311 <https://redis.io/commands/config-rewrite>)
1312
1313 config_set
1314 $r->config_set(parameter, value)
1315
1316 Set a configuration parameter to the given value (see
1317 <https://redis.io/commands/config-set>)
1318
1319 dbsize
1320 $r->dbsize()
1321
1322 Return the number of keys in the selected database (see
1323 <https://redis.io/commands/dbsize>)
1324
1325 debug_object
1326 $r->debug_object(key)
1327
1328 Get debugging information about a key (see
1329 <https://redis.io/commands/debug-object>)
1330
1331 debug_segfault
1332 $r->debug_segfault()
1333
1334 Make the server crash (see <https://redis.io/commands/debug-segfault>)
1335
1336 flushall
1337 $r->flushall()
1338
1339 Remove all keys from all databases (see
1340 <https://redis.io/commands/flushall>)
1341
1342 flushdb
1343 $r->flushdb()
1344
1345 Remove all keys from the current database (see
1346 <https://redis.io/commands/flushdb>)
1347
1348 info
1349 $r->info([section])
1350
1351 Get information and statistics about the server (see
1352 <https://redis.io/commands/info>)
1353
1354 lastsave
1355 $r->lastsave()
1356
1357 Get the UNIX time stamp of the last successful save to disk (see
1358 <https://redis.io/commands/lastsave>)
1359
1360 lindex
1361 $r->lindex(key, index)
1362
1363 Get an element from a list by its index (see
1364 <https://redis.io/commands/lindex>)
1365
1366 linsert
1367 $r->linsert(key, BEFORE|AFTER, pivot, value)
1368
1369 Insert an element before or after another element in a list (see
1370 <https://redis.io/commands/linsert>)
1371
1372 llen
1373 $r->llen(key)
1374
1375 Get the length of a list (see <https://redis.io/commands/llen>)
1376
1377 lpop
1378 $r->lpop(key)
1379
1380 Remove and get the first element in a list (see
1381 <https://redis.io/commands/lpop>)
1382
1383 lpush
1384 $r->lpush(key, value [value ...])
1385
1386 Prepend one or multiple values to a list (see
1387 <https://redis.io/commands/lpush>)
1388
1389 lpushx
1390 $r->lpushx(key, value)
1391
1392 Prepend a value to a list, only if the list exists (see
1393 <https://redis.io/commands/lpushx>)
1394
1395 lrange
1396 $r->lrange(key, start, stop)
1397
1398 Get a range of elements from a list (see
1399 <https://redis.io/commands/lrange>)
1400
1401 lrem
1402 $r->lrem(key, count, value)
1403
1404 Remove elements from a list (see <https://redis.io/commands/lrem>)
1405
1406 lset
1407 $r->lset(key, index, value)
1408
1409 Set the value of an element in a list by its index (see
1410 <https://redis.io/commands/lset>)
1411
1412 ltrim
1413 $r->ltrim(key, start, stop)
1414
1415 Trim a list to the specified range (see
1416 <https://redis.io/commands/ltrim>)
1417
1418 monitor
1419 $r->monitor()
1420
1421 Listen for all requests received by the server in real time (see
1422 <https://redis.io/commands/monitor>)
1423
1424 role
1425 $r->role()
1426
1427 Return the role of the instance in the context of replication (see
1428 <https://redis.io/commands/role>)
1429
1430 rpop
1431 $r->rpop(key)
1432
1433 Remove and get the last element in a list (see
1434 <https://redis.io/commands/rpop>)
1435
1436 rpoplpush
1437 $r->rpoplpush(source, destination)
1438
1439 Remove the last element in a list, append it to another list and return
1440 it (see <https://redis.io/commands/rpoplpush>)
1441
1442 rpush
1443 $r->rpush(key, value [value ...])
1444
1445 Append one or multiple values to a list (see
1446 <https://redis.io/commands/rpush>)
1447
1448 rpushx
1449 $r->rpushx(key, value)
1450
1451 Append a value to a list, only if the list exists (see
1452 <https://redis.io/commands/rpushx>)
1453
1454 save
1455 $r->save()
1456
1457 Synchronously save the dataset to disk (see
1458 <https://redis.io/commands/save>)
1459
1460 shutdown
1461 $r->shutdown([NOSAVE], [SAVE])
1462
1463 Synchronously save the dataset to disk and then shut down the server
1464 (see <https://redis.io/commands/shutdown>)
1465
1466 slaveof
1467 $r->slaveof(host, port)
1468
1469 Make the server a slave of another instance, or promote it as master
1470 (see <https://redis.io/commands/slaveof>)
1471
1472 slowlog
1473 $r->slowlog(subcommand, [argument])
1474
1475 Manages the Redis slow queries log (see
1476 <https://redis.io/commands/slowlog>)
1477
1478 sync
1479 $r->sync()
1480
1481 Internal command used for replication (see
1482 <https://redis.io/commands/sync>)
1483
1484 time
1485 $r->time()
1486
1487 Return the current server time (see <https://redis.io/commands/time>)
1488
1490 The following persons contributed to this project (random order):
1491
1492 • Aaron Crane (pipelining and AUTOLOAD caching support)
1493
1494 • Dirk Vleugels
1495
1496 • Flavio Poletti
1497
1498 • Jeremy Zawodny
1499
1500 • sunnavy at bestpractical.com
1501
1502 • Thiago Berlitz Rondon
1503
1504 • Ulrich Habel
1505
1506 • Ivan Kruglov
1507
1508 • Steffen Mueller <smueller@cpan.org>
1509
1511 • Pedro Melo <melo@cpan.org>
1512
1513 • Damien Krotkine <dams@cpan.org>
1514
1516 This software is Copyright (c) 2015 by Pedro Melo, Damien Krotkine.
1517
1518 This is free software, licensed under:
1519
1520 The Artistic License 2.0 (GPL Compatible)
1521
1522
1523
1524perl v5.34.0 2022-01-21 Redis(3pm)