File Coverage

blib/lib/Async/Redis/Commands.pm
Criterion Covered Total %
statement 11 1135 0.9
branch 0 8 0.0
condition 0 11 0.0
subroutine 4 375 1.0
pod 0 370 0.0
total 15 1899 0.7


line stmt bran cond sub pod time code
1             # lib/Future/IO/Redis/Commands.pm
2             # AUTO-GENERATED - DO NOT EDIT
3             # Generated from redis-doc commands.json
4             #
5             # This module provides async method wrappers for all Redis commands.
6             # Consume this role in Async::Redis.
7              
8             package Async::Redis::Commands;
9              
10 74     74   260998 use strict;
  74         157  
  74         3536  
11 74     74   397 use warnings;
  74         146  
  74         4001  
12 74     74   1174 use 5.018;
  74         255  
13              
14 74     74   783 use Future::AsyncAwait;
  74         18874  
  74         671  
15              
16 0     0 0   async sub acl {
17 0           my $self = shift;
18 0           return await $self->command('ACL', @_);
19             }
20              
21              
22 0     0 0   async sub acl_cat {
23 0           my $self = shift;
24 0           return await $self->command('ACL', 'CAT', @_);
25             }
26              
27              
28 0     0 0   async sub acl_deluser {
29 0           my $self = shift;
30 0           return await $self->command('ACL', 'DELUSER', @_);
31             }
32              
33              
34 0     0 0   async sub acl_dryrun {
35 0           my $self = shift;
36 0           return await $self->command('ACL', 'DRYRUN', @_);
37             }
38              
39              
40 0     0 0   async sub acl_genpass {
41 0           my $self = shift;
42 0           return await $self->command('ACL', 'GENPASS', @_);
43             }
44              
45              
46 0     0 0   async sub acl_getuser {
47 0           my $self = shift;
48 0           return await $self->command('ACL', 'GETUSER', @_);
49             }
50              
51              
52 0     0 0   async sub acl_help {
53 0           my $self = shift;
54 0           return await $self->command('ACL', 'HELP', @_);
55             }
56              
57              
58 0     0 0   async sub acl_list {
59 0           my $self = shift;
60 0           return await $self->command('ACL', 'LIST', @_);
61             }
62              
63              
64 0     0 0   async sub acl_load {
65 0           my $self = shift;
66 0           return await $self->command('ACL', 'LOAD', @_);
67             }
68              
69              
70 0     0 0   async sub acl_log {
71 0           my $self = shift;
72 0           return await $self->command('ACL', 'LOG', @_);
73             }
74              
75              
76 0     0 0   async sub acl_save {
77 0           my $self = shift;
78 0           return await $self->command('ACL', 'SAVE', @_);
79             }
80              
81              
82 0     0 0   async sub acl_setuser {
83 0           my $self = shift;
84 0           return await $self->command('ACL', 'SETUSER', @_);
85             }
86              
87              
88 0     0 0   async sub acl_users {
89 0           my $self = shift;
90 0           return await $self->command('ACL', 'USERS', @_);
91             }
92              
93              
94 0     0 0   async sub acl_whoami {
95 0           my $self = shift;
96 0           return await $self->command('ACL', 'WHOAMI', @_);
97             }
98              
99              
100 0     0 0   async sub append {
101 0           my $self = shift;
102 0           return await $self->command('APPEND', @_);
103             }
104              
105              
106 0     0 0   async sub asking {
107 0           my $self = shift;
108 0           return await $self->command('ASKING', @_);
109             }
110              
111              
112 0     0 0   async sub auth {
113 0           my $self = shift;
114 0           return await $self->command('AUTH', @_);
115             }
116              
117              
118 0     0 0   async sub bgrewriteaof {
119 0           my $self = shift;
120 0           return await $self->command('BGREWRITEAOF', @_);
121             }
122              
123              
124 0     0 0   async sub bgsave {
125 0           my $self = shift;
126 0           return await $self->command('BGSAVE', @_);
127             }
128              
129              
130 0     0 0   async sub bitcount {
131 0           my $self = shift;
132 0           return await $self->command('BITCOUNT', @_);
133             }
134              
135              
136 0     0 0   async sub bitfield {
137 0           my $self = shift;
138 0           return await $self->command('BITFIELD', @_);
139             }
140              
141              
142 0     0 0   async sub bitfield_ro {
143 0           my $self = shift;
144 0           return await $self->command('BITFIELD_RO', @_);
145             }
146              
147              
148 0     0 0   async sub bitop {
149 0           my $self = shift;
150 0           return await $self->command('BITOP', @_);
151             }
152              
153              
154 0     0 0   async sub bitpos {
155 0           my $self = shift;
156 0           return await $self->command('BITPOS', @_);
157             }
158              
159              
160 0     0 0   async sub blmove {
161 0           my $self = shift;
162 0           return await $self->command('BLMOVE', @_);
163             }
164              
165              
166 0     0 0   async sub blmpop {
167 0           my $self = shift;
168 0           return await $self->command('BLMPOP', @_);
169             }
170              
171              
172 0     0 0   async sub blpop {
173 0           my $self = shift;
174 0           return await $self->command('BLPOP', @_);
175             }
176              
177              
178 0     0 0   async sub brpop {
179 0           my $self = shift;
180 0           return await $self->command('BRPOP', @_);
181             }
182              
183              
184 0     0 0   async sub brpoplpush {
185 0           my $self = shift;
186 0           return await $self->command('BRPOPLPUSH', @_);
187             }
188              
189              
190 0     0 0   async sub bzmpop {
191 0           my $self = shift;
192 0           return await $self->command('BZMPOP', @_);
193             }
194              
195              
196 0     0 0   async sub bzpopmax {
197 0           my $self = shift;
198 0           return await $self->command('BZPOPMAX', @_);
199             }
200              
201              
202 0     0 0   async sub bzpopmin {
203 0           my $self = shift;
204 0           return await $self->command('BZPOPMIN', @_);
205             }
206              
207              
208 0     0 0   async sub client {
209 0           my $self = shift;
210 0           return await $self->command('CLIENT', @_);
211             }
212              
213              
214 0     0 0   async sub client_caching {
215 0           my $self = shift;
216 0           return await $self->command('CLIENT', 'CACHING', @_);
217             }
218              
219              
220 0     0 0   async sub client_getname {
221 0           my $self = shift;
222 0           return await $self->command('CLIENT', 'GETNAME', @_);
223             }
224              
225              
226 0     0 0   async sub client_getredir {
227 0           my $self = shift;
228 0           return await $self->command('CLIENT', 'GETREDIR', @_);
229             }
230              
231              
232 0     0 0   async sub client_help {
233 0           my $self = shift;
234 0           return await $self->command('CLIENT', 'HELP', @_);
235             }
236              
237              
238 0     0 0   async sub client_id {
239 0           my $self = shift;
240 0           return await $self->command('CLIENT', 'ID', @_);
241             }
242              
243              
244 0     0 0   async sub client_info {
245 0           my $self = shift;
246 0           return await $self->command('CLIENT', 'INFO', @_);
247             }
248              
249              
250 0     0 0   async sub client_kill {
251 0           my $self = shift;
252 0           return await $self->command('CLIENT', 'KILL', @_);
253             }
254              
255              
256 0     0 0   async sub client_list {
257 0           my $self = shift;
258 0           return await $self->command('CLIENT', 'LIST', @_);
259             }
260              
261              
262 0     0 0   async sub client_no_evict {
263 0           my $self = shift;
264 0           return await $self->command('CLIENT', 'NO-EVICT', @_);
265             }
266              
267              
268 0     0 0   async sub client_no_touch {
269 0           my $self = shift;
270 0           return await $self->command('CLIENT', 'NO-TOUCH', @_);
271             }
272              
273              
274 0     0 0   async sub client_pause {
275 0           my $self = shift;
276 0           return await $self->command('CLIENT', 'PAUSE', @_);
277             }
278              
279              
280 0     0 0   async sub client_reply {
281 0           my $self = shift;
282 0           return await $self->command('CLIENT', 'REPLY', @_);
283             }
284              
285              
286 0     0 0   async sub client_setinfo {
287 0           my $self = shift;
288 0           return await $self->command('CLIENT', 'SETINFO', @_);
289             }
290              
291              
292 0     0 0   async sub client_setname {
293 0           my $self = shift;
294 0           return await $self->command('CLIENT', 'SETNAME', @_);
295             }
296              
297              
298 0     0 0   async sub client_tracking {
299 0           my $self = shift;
300 0           return await $self->command('CLIENT', 'TRACKING', @_);
301             }
302              
303              
304 0     0 0   async sub client_trackinginfo {
305 0           my $self = shift;
306 0           return await $self->command('CLIENT', 'TRACKINGINFO', @_);
307             }
308              
309              
310 0     0 0   async sub client_unblock {
311 0           my $self = shift;
312 0           return await $self->command('CLIENT', 'UNBLOCK', @_);
313             }
314              
315              
316 0     0 0   async sub client_unpause {
317 0           my $self = shift;
318 0           return await $self->command('CLIENT', 'UNPAUSE', @_);
319             }
320              
321              
322 0     0 0   async sub cluster {
323 0           my $self = shift;
324 0           return await $self->command('CLUSTER', @_);
325             }
326              
327              
328 0     0 0   async sub cluster_addslots {
329 0           my $self = shift;
330 0           return await $self->command('CLUSTER', 'ADDSLOTS', @_);
331             }
332              
333              
334 0     0 0   async sub cluster_addslotsrange {
335 0           my $self = shift;
336 0           return await $self->command('CLUSTER', 'ADDSLOTSRANGE', @_);
337             }
338              
339              
340 0     0 0   async sub cluster_bumpepoch {
341 0           my $self = shift;
342 0           return await $self->command('CLUSTER', 'BUMPEPOCH', @_);
343             }
344              
345              
346 0     0 0   async sub cluster_count_failure_reports {
347 0           my $self = shift;
348 0           return await $self->command('CLUSTER', 'COUNT-FAILURE-REPORTS', @_);
349             }
350              
351              
352 0     0 0   async sub cluster_countkeysinslot {
353 0           my $self = shift;
354 0           return await $self->command('CLUSTER', 'COUNTKEYSINSLOT', @_);
355             }
356              
357              
358 0     0 0   async sub cluster_delslots {
359 0           my $self = shift;
360 0           return await $self->command('CLUSTER', 'DELSLOTS', @_);
361             }
362              
363              
364 0     0 0   async sub cluster_delslotsrange {
365 0           my $self = shift;
366 0           return await $self->command('CLUSTER', 'DELSLOTSRANGE', @_);
367             }
368              
369              
370 0     0 0   async sub cluster_failover {
371 0           my $self = shift;
372 0           return await $self->command('CLUSTER', 'FAILOVER', @_);
373             }
374              
375              
376 0     0 0   async sub cluster_flushslots {
377 0           my $self = shift;
378 0           return await $self->command('CLUSTER', 'FLUSHSLOTS', @_);
379             }
380              
381              
382 0     0 0   async sub cluster_forget {
383 0           my $self = shift;
384 0           return await $self->command('CLUSTER', 'FORGET', @_);
385             }
386              
387              
388 0     0 0   async sub cluster_getkeysinslot {
389 0           my $self = shift;
390 0           return await $self->command('CLUSTER', 'GETKEYSINSLOT', @_);
391             }
392              
393              
394 0     0 0   async sub cluster_help {
395 0           my $self = shift;
396 0           return await $self->command('CLUSTER', 'HELP', @_);
397             }
398              
399              
400 0     0 0   async sub cluster_info {
401 0           my $self = shift;
402 0           return await $self->command('CLUSTER', 'INFO', @_);
403             }
404              
405              
406 0     0 0   async sub cluster_keyslot {
407 0           my $self = shift;
408 0           return await $self->command('CLUSTER', 'KEYSLOT', @_);
409             }
410              
411              
412 0     0 0   async sub cluster_links {
413 0           my $self = shift;
414 0           return await $self->command('CLUSTER', 'LINKS', @_);
415             }
416              
417              
418 0     0 0   async sub cluster_meet {
419 0           my $self = shift;
420 0           return await $self->command('CLUSTER', 'MEET', @_);
421             }
422              
423              
424 0     0 0   async sub cluster_myid {
425 0           my $self = shift;
426 0           return await $self->command('CLUSTER', 'MYID', @_);
427             }
428              
429              
430 0     0 0   async sub cluster_myshardid {
431 0           my $self = shift;
432 0           return await $self->command('CLUSTER', 'MYSHARDID', @_);
433             }
434              
435              
436 0     0 0   async sub cluster_nodes {
437 0           my $self = shift;
438 0           return await $self->command('CLUSTER', 'NODES', @_);
439             }
440              
441              
442 0     0 0   async sub cluster_replicas {
443 0           my $self = shift;
444 0           return await $self->command('CLUSTER', 'REPLICAS', @_);
445             }
446              
447              
448 0     0 0   async sub cluster_replicate {
449 0           my $self = shift;
450 0           return await $self->command('CLUSTER', 'REPLICATE', @_);
451             }
452              
453              
454 0     0 0   async sub cluster_reset {
455 0           my $self = shift;
456 0           return await $self->command('CLUSTER', 'RESET', @_);
457             }
458              
459              
460 0     0 0   async sub cluster_saveconfig {
461 0           my $self = shift;
462 0           return await $self->command('CLUSTER', 'SAVECONFIG', @_);
463             }
464              
465              
466 0     0 0   async sub cluster_set_config_epoch {
467 0           my $self = shift;
468 0           return await $self->command('CLUSTER', 'SET-CONFIG-EPOCH', @_);
469             }
470              
471              
472 0     0 0   async sub cluster_setslot {
473 0           my $self = shift;
474 0           return await $self->command('CLUSTER', 'SETSLOT', @_);
475             }
476              
477              
478 0     0 0   async sub cluster_shards {
479 0           my $self = shift;
480 0           return await $self->command('CLUSTER', 'SHARDS', @_);
481             }
482              
483              
484 0     0 0   async sub cluster_slaves {
485 0           my $self = shift;
486 0           return await $self->command('CLUSTER', 'SLAVES', @_);
487             }
488              
489              
490 0     0 0   async sub cluster_slots {
491 0           my $self = shift;
492 0           return await $self->command('CLUSTER', 'SLOTS', @_);
493             }
494              
495              
496 0     0 0   async sub command {
497 0           my $self = shift;
498 0           return await $self->command('COMMAND', @_);
499             }
500              
501              
502 0     0 0   async sub command_count {
503 0           my $self = shift;
504 0           return await $self->command('COMMAND', 'COUNT', @_);
505             }
506              
507              
508 0     0 0   async sub command_docs {
509 0           my $self = shift;
510 0           return await $self->command('COMMAND', 'DOCS', @_);
511             }
512              
513              
514 0     0 0   async sub command_getkeys {
515 0           my $self = shift;
516 0           return await $self->command('COMMAND', 'GETKEYS', @_);
517             }
518              
519              
520 0     0 0   async sub command_getkeysandflags {
521 0           my $self = shift;
522 0           return await $self->command('COMMAND', 'GETKEYSANDFLAGS', @_);
523             }
524              
525              
526 0     0 0   async sub command_help {
527 0           my $self = shift;
528 0           return await $self->command('COMMAND', 'HELP', @_);
529             }
530              
531              
532 0     0 0   async sub command_info {
533 0           my $self = shift;
534 0           return await $self->command('COMMAND', 'INFO', @_);
535             }
536              
537              
538 0     0 0   async sub command_list {
539 0           my $self = shift;
540 0           return await $self->command('COMMAND', 'LIST', @_);
541             }
542              
543              
544 0     0 0   async sub config {
545 0           my $self = shift;
546 0           return await $self->command('CONFIG', @_);
547             }
548              
549              
550 0     0 0   async sub config_get {
551 0           my $self = shift;
552 0           return await $self->command('CONFIG', 'GET', @_);
553             }
554              
555              
556 0     0 0   async sub config_help {
557 0           my $self = shift;
558 0           return await $self->command('CONFIG', 'HELP', @_);
559             }
560              
561              
562 0     0 0   async sub config_resetstat {
563 0           my $self = shift;
564 0           return await $self->command('CONFIG', 'RESETSTAT', @_);
565             }
566              
567              
568 0     0 0   async sub config_rewrite {
569 0           my $self = shift;
570 0           return await $self->command('CONFIG', 'REWRITE', @_);
571             }
572              
573              
574 0     0 0   async sub config_set {
575 0           my $self = shift;
576 0           return await $self->command('CONFIG', 'SET', @_);
577             }
578              
579              
580 0     0 0   async sub copy {
581 0           my $self = shift;
582 0           return await $self->command('COPY', @_);
583             }
584              
585              
586 0     0 0   async sub dbsize {
587 0           my $self = shift;
588 0           return await $self->command('DBSIZE', @_);
589             }
590              
591              
592 0     0 0   async sub debug {
593 0           my $self = shift;
594 0           return await $self->command('DEBUG', @_);
595             }
596              
597              
598 0     0 0   async sub decr {
599 0           my $self = shift;
600 0           return await $self->command('DECR', @_);
601             }
602              
603              
604 0     0 0   async sub decrby {
605 0           my $self = shift;
606 0           return await $self->command('DECRBY', @_);
607             }
608              
609              
610 0     0 0   async sub del {
611 0           my $self = shift;
612 0           return await $self->command('DEL', @_);
613             }
614              
615              
616 0     0 0   async sub discard {
617 0           my $self = shift;
618 0           return await $self->command('DISCARD', @_);
619             }
620              
621              
622 0     0 0   async sub dump {
623 0           my $self = shift;
624 0           return await $self->command('DUMP', @_);
625             }
626              
627              
628 0     0 0   async sub echo {
629 0           my $self = shift;
630 0           return await $self->command('ECHO', @_);
631             }
632              
633              
634 0     0 0   async sub eval {
635 0           my $self = shift;
636 0           return await $self->command('EVAL', @_);
637             }
638              
639              
640 0     0 0   async sub evalsha {
641 0           my $self = shift;
642 0           return await $self->command('EVALSHA', @_);
643             }
644              
645              
646 0     0 0   async sub evalsha_ro {
647 0           my $self = shift;
648 0           return await $self->command('EVALSHA_RO', @_);
649             }
650              
651              
652 0     0 0   async sub eval_ro {
653 0           my $self = shift;
654 0           return await $self->command('EVAL_RO', @_);
655             }
656              
657              
658 0     0 0   async sub exec {
659 0           my $self = shift;
660 0           return await $self->command('EXEC', @_);
661             }
662              
663              
664 0     0 0   async sub exists {
665 0           my $self = shift;
666 0           return await $self->command('EXISTS', @_);
667             }
668              
669              
670 0     0 0   async sub expire {
671 0           my $self = shift;
672 0           return await $self->command('EXPIRE', @_);
673             }
674              
675              
676 0     0 0   async sub expireat {
677 0           my $self = shift;
678 0           return await $self->command('EXPIREAT', @_);
679             }
680              
681              
682 0     0 0   async sub expiretime {
683 0           my $self = shift;
684 0           return await $self->command('EXPIRETIME', @_);
685             }
686              
687              
688 0     0 0   async sub failover {
689 0           my $self = shift;
690 0           return await $self->command('FAILOVER', @_);
691             }
692              
693              
694 0     0 0   async sub fcall {
695 0           my $self = shift;
696 0           return await $self->command('FCALL', @_);
697             }
698              
699              
700 0     0 0   async sub fcall_ro {
701 0           my $self = shift;
702 0           return await $self->command('FCALL_RO', @_);
703             }
704              
705              
706 0     0 0   async sub flushall {
707 0           my $self = shift;
708 0           return await $self->command('FLUSHALL', @_);
709             }
710              
711              
712 0     0 0   async sub flushdb {
713 0           my $self = shift;
714 0           return await $self->command('FLUSHDB', @_);
715             }
716              
717              
718 0     0 0   async sub function {
719 0           my $self = shift;
720 0           return await $self->command('FUNCTION', @_);
721             }
722              
723              
724 0     0 0   async sub function_delete {
725 0           my $self = shift;
726 0           return await $self->command('FUNCTION', 'DELETE', @_);
727             }
728              
729              
730 0     0 0   async sub function_dump {
731 0           my $self = shift;
732 0           return await $self->command('FUNCTION', 'DUMP', @_);
733             }
734              
735              
736 0     0 0   async sub function_flush {
737 0           my $self = shift;
738 0           return await $self->command('FUNCTION', 'FLUSH', @_);
739             }
740              
741              
742 0     0 0   async sub function_help {
743 0           my $self = shift;
744 0           return await $self->command('FUNCTION', 'HELP', @_);
745             }
746              
747              
748 0     0 0   async sub function_kill {
749 0           my $self = shift;
750 0           return await $self->command('FUNCTION', 'KILL', @_);
751             }
752              
753              
754 0     0 0   async sub function_list {
755 0           my $self = shift;
756 0           return await $self->command('FUNCTION', 'LIST', @_);
757             }
758              
759              
760 0     0 0   async sub function_load {
761 0           my $self = shift;
762 0           return await $self->command('FUNCTION', 'LOAD', @_);
763             }
764              
765              
766 0     0 0   async sub function_restore {
767 0           my $self = shift;
768 0           return await $self->command('FUNCTION', 'RESTORE', @_);
769             }
770              
771              
772 0     0 0   async sub function_stats {
773 0           my $self = shift;
774 0           return await $self->command('FUNCTION', 'STATS', @_);
775             }
776              
777              
778 0     0 0   async sub geoadd {
779 0           my $self = shift;
780 0           return await $self->command('GEOADD', @_);
781             }
782              
783              
784 0     0 0   async sub geodist {
785 0           my $self = shift;
786 0           return await $self->command('GEODIST', @_);
787             }
788              
789              
790 0     0 0   async sub geohash {
791 0           my $self = shift;
792 0           return await $self->command('GEOHASH', @_);
793             }
794              
795              
796 0     0 0   async sub geopos {
797 0           my $self = shift;
798 0           return await $self->command('GEOPOS', @_);
799             }
800              
801              
802 0     0 0   async sub georadius {
803 0           my $self = shift;
804 0           return await $self->command('GEORADIUS', @_);
805             }
806              
807              
808 0     0 0   async sub georadiusbymember {
809 0           my $self = shift;
810 0           return await $self->command('GEORADIUSBYMEMBER', @_);
811             }
812              
813              
814 0     0 0   async sub georadiusbymember_ro {
815 0           my $self = shift;
816 0           return await $self->command('GEORADIUSBYMEMBER_RO', @_);
817             }
818              
819              
820 0     0 0   async sub georadius_ro {
821 0           my $self = shift;
822 0           return await $self->command('GEORADIUS_RO', @_);
823             }
824              
825              
826 0     0 0   async sub geosearch {
827 0           my $self = shift;
828 0           return await $self->command('GEOSEARCH', @_);
829             }
830              
831              
832 0     0 0   async sub geosearchstore {
833 0           my $self = shift;
834 0           return await $self->command('GEOSEARCHSTORE', @_);
835             }
836              
837              
838 0     0 0   async sub get {
839 0           my $self = shift;
840 0           return await $self->command('GET', @_);
841             }
842              
843              
844 0     0 0   async sub getbit {
845 0           my $self = shift;
846 0           return await $self->command('GETBIT', @_);
847             }
848              
849              
850 0     0 0   async sub getdel {
851 0           my $self = shift;
852 0           return await $self->command('GETDEL', @_);
853             }
854              
855              
856 0     0 0   async sub getex {
857 0           my $self = shift;
858 0           return await $self->command('GETEX', @_);
859             }
860              
861              
862 0     0 0   async sub getrange {
863 0           my $self = shift;
864 0           return await $self->command('GETRANGE', @_);
865             }
866              
867              
868 0     0 0   async sub getset {
869 0           my $self = shift;
870 0           return await $self->command('GETSET', @_);
871             }
872              
873              
874 0     0 0   async sub hdel {
875 0           my $self = shift;
876 0           return await $self->command('HDEL', @_);
877             }
878              
879              
880 0     0 0   async sub hello {
881 0           my $self = shift;
882 0           return await $self->command('HELLO', @_);
883             }
884              
885              
886 0     0 0   async sub hexists {
887 0           my $self = shift;
888 0           return await $self->command('HEXISTS', @_);
889             }
890              
891              
892 0     0 0   async sub hget {
893 0           my $self = shift;
894 0           return await $self->command('HGET', @_);
895             }
896              
897              
898 0     0 0   async sub hgetall {
899 0           my $self = shift;
900 0           my $arr = await $self->command('HGETALL', @_);
901 0 0 0       return {} unless $arr && ref($arr) eq 'ARRAY' && @$arr && @$arr % 2 == 0;
      0        
      0        
902 0           return { @$arr }; # Convert array to hash
903             }
904              
905              
906 0     0 0   async sub hincrby {
907 0           my $self = shift;
908 0           return await $self->command('HINCRBY', @_);
909             }
910              
911              
912 0     0 0   async sub hincrbyfloat {
913 0           my $self = shift;
914 0           return await $self->command('HINCRBYFLOAT', @_);
915             }
916              
917              
918 0     0 0   async sub hkeys {
919 0           my $self = shift;
920 0           return await $self->command('HKEYS', @_);
921             }
922              
923              
924 0     0 0   async sub hlen {
925 0           my $self = shift;
926 0           return await $self->command('HLEN', @_);
927             }
928              
929              
930 0     0 0   async sub hmget {
931 0           my $self = shift;
932 0           return await $self->command('HMGET', @_);
933             }
934              
935              
936 0     0 0   async sub hmset {
937 0           my $self = shift;
938 0           return await $self->command('HMSET', @_);
939             }
940              
941              
942 0     0 0   async sub hrandfield {
943 0           my $self = shift;
944 0           return await $self->command('HRANDFIELD', @_);
945             }
946              
947              
948 0     0 0   async sub hscan {
949 0           my $self = shift;
950 0           return await $self->command('HSCAN', @_);
951             }
952              
953              
954 0     0 0   async sub hset {
955 0           my $self = shift;
956 0           return await $self->command('HSET', @_);
957             }
958              
959              
960 0     0 0   async sub hsetnx {
961 0           my $self = shift;
962 0           return await $self->command('HSETNX', @_);
963             }
964              
965              
966 0     0 0   async sub hstrlen {
967 0           my $self = shift;
968 0           return await $self->command('HSTRLEN', @_);
969             }
970              
971              
972 0     0 0   async sub hvals {
973 0           my $self = shift;
974 0           return await $self->command('HVALS', @_);
975             }
976              
977              
978 0     0 0   async sub incr {
979 0           my $self = shift;
980 0           return await $self->command('INCR', @_);
981             }
982              
983              
984 0     0 0   async sub incrby {
985 0           my $self = shift;
986 0           return await $self->command('INCRBY', @_);
987             }
988              
989              
990 0     0 0   async sub incrbyfloat {
991 0           my $self = shift;
992 0           return await $self->command('INCRBYFLOAT', @_);
993             }
994              
995              
996 0     0 0   async sub info {
997 0           my $self = shift;
998 0           my $raw = await $self->command('INFO', @_);
999 0           return _parse_info($raw);
1000             }
1001              
1002             sub _parse_info {
1003 0     0     my ($raw) = @_;
1004 0 0         return {} unless defined $raw;
1005              
1006 0           my %info;
1007 0           my $section = 'default';
1008              
1009 0           for my $line (split /\r?\n/, $raw) {
1010 0 0         if ($line =~ /^# (\w+)/) {
    0          
1011 0           $section = lc($1);
1012 0   0       $info{$section} //= {};
1013             }
1014             elsif ($line =~ /^(\w+):(.*)$/) {
1015 0           $info{$section}{$1} = $2;
1016             }
1017             }
1018              
1019 0           return \%info;
1020             }
1021              
1022              
1023 0     0 0   async sub keys {
1024 0           my $self = shift;
1025 0           return await $self->command('KEYS', @_);
1026             }
1027              
1028              
1029 0     0 0   async sub lastsave {
1030 0           my $self = shift;
1031 0           return await $self->command('LASTSAVE', @_);
1032             }
1033              
1034              
1035 0     0 0   async sub latency {
1036 0           my $self = shift;
1037 0           return await $self->command('LATENCY', @_);
1038             }
1039              
1040              
1041 0     0 0   async sub latency_doctor {
1042 0           my $self = shift;
1043 0           return await $self->command('LATENCY', 'DOCTOR', @_);
1044             }
1045              
1046              
1047 0     0 0   async sub latency_graph {
1048 0           my $self = shift;
1049 0           return await $self->command('LATENCY', 'GRAPH', @_);
1050             }
1051              
1052              
1053 0     0 0   async sub latency_help {
1054 0           my $self = shift;
1055 0           return await $self->command('LATENCY', 'HELP', @_);
1056             }
1057              
1058              
1059 0     0 0   async sub latency_histogram {
1060 0           my $self = shift;
1061 0           return await $self->command('LATENCY', 'HISTOGRAM', @_);
1062             }
1063              
1064              
1065 0     0 0   async sub latency_history {
1066 0           my $self = shift;
1067 0           return await $self->command('LATENCY', 'HISTORY', @_);
1068             }
1069              
1070              
1071 0     0 0   async sub latency_latest {
1072 0           my $self = shift;
1073 0           return await $self->command('LATENCY', 'LATEST', @_);
1074             }
1075              
1076              
1077 0     0 0   async sub latency_reset {
1078 0           my $self = shift;
1079 0           return await $self->command('LATENCY', 'RESET', @_);
1080             }
1081              
1082              
1083 0     0 0   async sub lcs {
1084 0           my $self = shift;
1085 0           return await $self->command('LCS', @_);
1086             }
1087              
1088              
1089 0     0 0   async sub lindex {
1090 0           my $self = shift;
1091 0           return await $self->command('LINDEX', @_);
1092             }
1093              
1094              
1095 0     0 0   async sub linsert {
1096 0           my $self = shift;
1097 0           return await $self->command('LINSERT', @_);
1098             }
1099              
1100              
1101 0     0 0   async sub llen {
1102 0           my $self = shift;
1103 0           return await $self->command('LLEN', @_);
1104             }
1105              
1106              
1107 0     0 0   async sub lmove {
1108 0           my $self = shift;
1109 0           return await $self->command('LMOVE', @_);
1110             }
1111              
1112              
1113 0     0 0   async sub lmpop {
1114 0           my $self = shift;
1115 0           return await $self->command('LMPOP', @_);
1116             }
1117              
1118              
1119 0     0 0   async sub lolwut {
1120 0           my $self = shift;
1121 0           return await $self->command('LOLWUT', @_);
1122             }
1123              
1124              
1125 0     0 0   async sub lpop {
1126 0           my $self = shift;
1127 0           return await $self->command('LPOP', @_);
1128             }
1129              
1130              
1131 0     0 0   async sub lpos {
1132 0           my $self = shift;
1133 0           return await $self->command('LPOS', @_);
1134             }
1135              
1136              
1137 0     0 0   async sub lpush {
1138 0           my $self = shift;
1139 0           return await $self->command('LPUSH', @_);
1140             }
1141              
1142              
1143 0     0 0   async sub lpushx {
1144 0           my $self = shift;
1145 0           return await $self->command('LPUSHX', @_);
1146             }
1147              
1148              
1149 0     0 0   async sub lrange {
1150 0           my $self = shift;
1151 0           return await $self->command('LRANGE', @_);
1152             }
1153              
1154              
1155 0     0 0   async sub lrem {
1156 0           my $self = shift;
1157 0           return await $self->command('LREM', @_);
1158             }
1159              
1160              
1161 0     0 0   async sub lset {
1162 0           my $self = shift;
1163 0           return await $self->command('LSET', @_);
1164             }
1165              
1166              
1167 0     0 0   async sub ltrim {
1168 0           my $self = shift;
1169 0           return await $self->command('LTRIM', @_);
1170             }
1171              
1172              
1173 0     0 0   async sub memory {
1174 0           my $self = shift;
1175 0           return await $self->command('MEMORY', @_);
1176             }
1177              
1178              
1179 0     0 0   async sub memory_doctor {
1180 0           my $self = shift;
1181 0           return await $self->command('MEMORY', 'DOCTOR', @_);
1182             }
1183              
1184              
1185 0     0 0   async sub memory_help {
1186 0           my $self = shift;
1187 0           return await $self->command('MEMORY', 'HELP', @_);
1188             }
1189              
1190              
1191 0     0 0   async sub memory_malloc_stats {
1192 0           my $self = shift;
1193 0           return await $self->command('MEMORY', 'MALLOC-STATS', @_);
1194             }
1195              
1196              
1197 0     0 0   async sub memory_purge {
1198 0           my $self = shift;
1199 0           return await $self->command('MEMORY', 'PURGE', @_);
1200             }
1201              
1202              
1203 0     0 0   async sub memory_stats {
1204 0           my $self = shift;
1205 0           return await $self->command('MEMORY', 'STATS', @_);
1206             }
1207              
1208              
1209 0     0 0   async sub memory_usage {
1210 0           my $self = shift;
1211 0           return await $self->command('MEMORY', 'USAGE', @_);
1212             }
1213              
1214              
1215 0     0 0   async sub mget {
1216 0           my $self = shift;
1217 0           return await $self->command('MGET', @_);
1218             }
1219              
1220              
1221 0     0 0   async sub migrate {
1222 0           my $self = shift;
1223 0           return await $self->command('MIGRATE', @_);
1224             }
1225              
1226              
1227 0     0 0   async sub module {
1228 0           my $self = shift;
1229 0           return await $self->command('MODULE', @_);
1230             }
1231              
1232              
1233 0     0 0   async sub module_help {
1234 0           my $self = shift;
1235 0           return await $self->command('MODULE', 'HELP', @_);
1236             }
1237              
1238              
1239 0     0 0   async sub module_list {
1240 0           my $self = shift;
1241 0           return await $self->command('MODULE', 'LIST', @_);
1242             }
1243              
1244              
1245 0     0 0   async sub module_load {
1246 0           my $self = shift;
1247 0           return await $self->command('MODULE', 'LOAD', @_);
1248             }
1249              
1250              
1251 0     0 0   async sub module_loadex {
1252 0           my $self = shift;
1253 0           return await $self->command('MODULE', 'LOADEX', @_);
1254             }
1255              
1256              
1257 0     0 0   async sub module_unload {
1258 0           my $self = shift;
1259 0           return await $self->command('MODULE', 'UNLOAD', @_);
1260             }
1261              
1262              
1263 0     0 0   async sub monitor {
1264 0           my $self = shift;
1265 0           return await $self->command('MONITOR', @_);
1266             }
1267              
1268              
1269 0     0 0   async sub move {
1270 0           my $self = shift;
1271 0           return await $self->command('MOVE', @_);
1272             }
1273              
1274              
1275 0     0 0   async sub mset {
1276 0           my $self = shift;
1277 0           return await $self->command('MSET', @_);
1278             }
1279              
1280              
1281 0     0 0   async sub msetnx {
1282 0           my $self = shift;
1283 0           return await $self->command('MSETNX', @_);
1284             }
1285              
1286              
1287 0     0 0   async sub multi {
1288 0           my $self = shift;
1289 0           return await $self->command('MULTI', @_);
1290             }
1291              
1292              
1293 0     0 0   async sub object {
1294 0           my $self = shift;
1295 0           return await $self->command('OBJECT', @_);
1296             }
1297              
1298              
1299 0     0 0   async sub object_encoding {
1300 0           my $self = shift;
1301 0           return await $self->command('OBJECT', 'ENCODING', @_);
1302             }
1303              
1304              
1305 0     0 0   async sub object_freq {
1306 0           my $self = shift;
1307 0           return await $self->command('OBJECT', 'FREQ', @_);
1308             }
1309              
1310              
1311 0     0 0   async sub object_help {
1312 0           my $self = shift;
1313 0           return await $self->command('OBJECT', 'HELP', @_);
1314             }
1315              
1316              
1317 0     0 0   async sub object_idletime {
1318 0           my $self = shift;
1319 0           return await $self->command('OBJECT', 'IDLETIME', @_);
1320             }
1321              
1322              
1323 0     0 0   async sub object_refcount {
1324 0           my $self = shift;
1325 0           return await $self->command('OBJECT', 'REFCOUNT', @_);
1326             }
1327              
1328              
1329 0     0 0   async sub persist {
1330 0           my $self = shift;
1331 0           return await $self->command('PERSIST', @_);
1332             }
1333              
1334              
1335 0     0 0   async sub pexpire {
1336 0           my $self = shift;
1337 0           return await $self->command('PEXPIRE', @_);
1338             }
1339              
1340              
1341 0     0 0   async sub pexpireat {
1342 0           my $self = shift;
1343 0           return await $self->command('PEXPIREAT', @_);
1344             }
1345              
1346              
1347 0     0 0   async sub pexpiretime {
1348 0           my $self = shift;
1349 0           return await $self->command('PEXPIRETIME', @_);
1350             }
1351              
1352              
1353 0     0 0   async sub pfadd {
1354 0           my $self = shift;
1355 0           return await $self->command('PFADD', @_);
1356             }
1357              
1358              
1359 0     0 0   async sub pfcount {
1360 0           my $self = shift;
1361 0           return await $self->command('PFCOUNT', @_);
1362             }
1363              
1364              
1365 0     0 0   async sub pfdebug {
1366 0           my $self = shift;
1367 0           return await $self->command('PFDEBUG', @_);
1368             }
1369              
1370              
1371 0     0 0   async sub pfmerge {
1372 0           my $self = shift;
1373 0           return await $self->command('PFMERGE', @_);
1374             }
1375              
1376              
1377 0     0 0   async sub pfselftest {
1378 0           my $self = shift;
1379 0           return await $self->command('PFSELFTEST', @_);
1380             }
1381              
1382              
1383 0     0 0   async sub ping {
1384 0           my $self = shift;
1385 0           return await $self->command('PING', @_);
1386             }
1387              
1388              
1389 0     0 0   async sub psetex {
1390 0           my $self = shift;
1391 0           return await $self->command('PSETEX', @_);
1392             }
1393              
1394              
1395 0     0 0   async sub psubscribe {
1396 0           my $self = shift;
1397 0           return await $self->command('PSUBSCRIBE', @_);
1398             }
1399              
1400              
1401 0     0 0   async sub psync {
1402 0           my $self = shift;
1403 0           return await $self->command('PSYNC', @_);
1404             }
1405              
1406              
1407 0     0 0   async sub pttl {
1408 0           my $self = shift;
1409 0           return await $self->command('PTTL', @_);
1410             }
1411              
1412              
1413 0     0 0   async sub publish {
1414 0           my $self = shift;
1415 0           return await $self->command('PUBLISH', @_);
1416             }
1417              
1418              
1419 0     0 0   async sub pubsub {
1420 0           my $self = shift;
1421 0           return await $self->command('PUBSUB', @_);
1422             }
1423              
1424              
1425 0     0 0   async sub pubsub_channels {
1426 0           my $self = shift;
1427 0           return await $self->command('PUBSUB', 'CHANNELS', @_);
1428             }
1429              
1430              
1431 0     0 0   async sub pubsub_help {
1432 0           my $self = shift;
1433 0           return await $self->command('PUBSUB', 'HELP', @_);
1434             }
1435              
1436              
1437 0     0 0   async sub pubsub_numpat {
1438 0           my $self = shift;
1439 0           return await $self->command('PUBSUB', 'NUMPAT', @_);
1440             }
1441              
1442              
1443 0     0 0   async sub pubsub_numsub {
1444 0           my $self = shift;
1445 0           return await $self->command('PUBSUB', 'NUMSUB', @_);
1446             }
1447              
1448              
1449 0     0 0   async sub pubsub_shardchannels {
1450 0           my $self = shift;
1451 0           return await $self->command('PUBSUB', 'SHARDCHANNELS', @_);
1452             }
1453              
1454              
1455 0     0 0   async sub pubsub_shardnumsub {
1456 0           my $self = shift;
1457 0           return await $self->command('PUBSUB', 'SHARDNUMSUB', @_);
1458             }
1459              
1460              
1461 0     0 0   async sub punsubscribe {
1462 0           my $self = shift;
1463 0           return await $self->command('PUNSUBSCRIBE', @_);
1464             }
1465              
1466              
1467 0     0 0   async sub quit {
1468 0           my $self = shift;
1469 0           return await $self->command('QUIT', @_);
1470             }
1471              
1472              
1473 0     0 0   async sub randomkey {
1474 0           my $self = shift;
1475 0           return await $self->command('RANDOMKEY', @_);
1476             }
1477              
1478              
1479 0     0 0   async sub readonly {
1480 0           my $self = shift;
1481 0           return await $self->command('READONLY', @_);
1482             }
1483              
1484              
1485 0     0 0   async sub readwrite {
1486 0           my $self = shift;
1487 0           return await $self->command('READWRITE', @_);
1488             }
1489              
1490              
1491 0     0 0   async sub rename {
1492 0           my $self = shift;
1493 0           return await $self->command('RENAME', @_);
1494             }
1495              
1496              
1497 0     0 0   async sub renamenx {
1498 0           my $self = shift;
1499 0           return await $self->command('RENAMENX', @_);
1500             }
1501              
1502              
1503 0     0 0   async sub replconf {
1504 0           my $self = shift;
1505 0           return await $self->command('REPLCONF', @_);
1506             }
1507              
1508              
1509 0     0 0   async sub replicaof {
1510 0           my $self = shift;
1511 0           return await $self->command('REPLICAOF', @_);
1512             }
1513              
1514              
1515 0     0 0   async sub reset {
1516 0           my $self = shift;
1517 0           return await $self->command('RESET', @_);
1518             }
1519              
1520              
1521 0     0 0   async sub restore {
1522 0           my $self = shift;
1523 0           return await $self->command('RESTORE', @_);
1524             }
1525              
1526              
1527 0     0 0   async sub restore_asking {
1528 0           my $self = shift;
1529 0           return await $self->command('RESTORE-ASKING', @_);
1530             }
1531              
1532              
1533 0     0 0   async sub role {
1534 0           my $self = shift;
1535 0           return await $self->command('ROLE', @_);
1536             }
1537              
1538              
1539 0     0 0   async sub rpop {
1540 0           my $self = shift;
1541 0           return await $self->command('RPOP', @_);
1542             }
1543              
1544              
1545 0     0 0   async sub rpoplpush {
1546 0           my $self = shift;
1547 0           return await $self->command('RPOPLPUSH', @_);
1548             }
1549              
1550              
1551 0     0 0   async sub rpush {
1552 0           my $self = shift;
1553 0           return await $self->command('RPUSH', @_);
1554             }
1555              
1556              
1557 0     0 0   async sub rpushx {
1558 0           my $self = shift;
1559 0           return await $self->command('RPUSHX', @_);
1560             }
1561              
1562              
1563 0     0 0   async sub sadd {
1564 0           my $self = shift;
1565 0           return await $self->command('SADD', @_);
1566             }
1567              
1568              
1569 0     0 0   async sub save {
1570 0           my $self = shift;
1571 0           return await $self->command('SAVE', @_);
1572             }
1573              
1574              
1575 0     0 0   async sub scan {
1576 0           my $self = shift;
1577 0           return await $self->command('SCAN', @_);
1578             }
1579              
1580              
1581 0     0 0   async sub scard {
1582 0           my $self = shift;
1583 0           return await $self->command('SCARD', @_);
1584             }
1585              
1586              
1587 0     0 0   async sub script {
1588 0           my $self = shift;
1589 0           return await $self->command('SCRIPT', @_);
1590             }
1591              
1592              
1593 0     0 0   async sub script_debug {
1594 0           my $self = shift;
1595 0           return await $self->command('SCRIPT', 'DEBUG', @_);
1596             }
1597              
1598              
1599 0     0 0   async sub script_exists {
1600 0           my $self = shift;
1601 0           return await $self->command('SCRIPT', 'EXISTS', @_);
1602             }
1603              
1604              
1605 0     0 0   async sub script_flush {
1606 0           my $self = shift;
1607 0           return await $self->command('SCRIPT', 'FLUSH', @_);
1608             }
1609              
1610              
1611 0     0 0   async sub script_help {
1612 0           my $self = shift;
1613 0           return await $self->command('SCRIPT', 'HELP', @_);
1614             }
1615              
1616              
1617 0     0 0   async sub script_kill {
1618 0           my $self = shift;
1619 0           return await $self->command('SCRIPT', 'KILL', @_);
1620             }
1621              
1622              
1623 0     0 0   async sub script_load {
1624 0           my $self = shift;
1625 0           return await $self->command('SCRIPT', 'LOAD', @_);
1626             }
1627              
1628              
1629 0     0 0   async sub sdiff {
1630 0           my $self = shift;
1631 0           return await $self->command('SDIFF', @_);
1632             }
1633              
1634              
1635 0     0 0   async sub sdiffstore {
1636 0           my $self = shift;
1637 0           return await $self->command('SDIFFSTORE', @_);
1638             }
1639              
1640              
1641 0     0 0   async sub select {
1642 0           my $self = shift;
1643 0           return await $self->command('SELECT', @_);
1644             }
1645              
1646              
1647 0     0 0   async sub set {
1648 0           my $self = shift;
1649 0           return await $self->command('SET', @_);
1650             }
1651              
1652              
1653 0     0 0   async sub setbit {
1654 0           my $self = shift;
1655 0           return await $self->command('SETBIT', @_);
1656             }
1657              
1658              
1659 0     0 0   async sub setex {
1660 0           my $self = shift;
1661 0           return await $self->command('SETEX', @_);
1662             }
1663              
1664              
1665 0     0 0   async sub setnx {
1666 0           my $self = shift;
1667 0           return await $self->command('SETNX', @_);
1668             }
1669              
1670              
1671 0     0 0   async sub setrange {
1672 0           my $self = shift;
1673 0           return await $self->command('SETRANGE', @_);
1674             }
1675              
1676              
1677 0     0 0   async sub shutdown {
1678 0           my $self = shift;
1679 0           return await $self->command('SHUTDOWN', @_);
1680             }
1681              
1682              
1683 0     0 0   async sub sinter {
1684 0           my $self = shift;
1685 0           return await $self->command('SINTER', @_);
1686             }
1687              
1688              
1689 0     0 0   async sub sintercard {
1690 0           my $self = shift;
1691 0           return await $self->command('SINTERCARD', @_);
1692             }
1693              
1694              
1695 0     0 0   async sub sinterstore {
1696 0           my $self = shift;
1697 0           return await $self->command('SINTERSTORE', @_);
1698             }
1699              
1700              
1701 0     0 0   async sub sismember {
1702 0           my $self = shift;
1703 0           return await $self->command('SISMEMBER', @_);
1704             }
1705              
1706              
1707 0     0 0   async sub slaveof {
1708 0           my $self = shift;
1709 0           return await $self->command('SLAVEOF', @_);
1710             }
1711              
1712              
1713 0     0 0   async sub slowlog {
1714 0           my $self = shift;
1715 0           return await $self->command('SLOWLOG', @_);
1716             }
1717              
1718              
1719 0     0 0   async sub slowlog_get {
1720 0           my $self = shift;
1721 0           return await $self->command('SLOWLOG', 'GET', @_);
1722             }
1723              
1724              
1725 0     0 0   async sub slowlog_help {
1726 0           my $self = shift;
1727 0           return await $self->command('SLOWLOG', 'HELP', @_);
1728             }
1729              
1730              
1731 0     0 0   async sub slowlog_len {
1732 0           my $self = shift;
1733 0           return await $self->command('SLOWLOG', 'LEN', @_);
1734             }
1735              
1736              
1737 0     0 0   async sub slowlog_reset {
1738 0           my $self = shift;
1739 0           return await $self->command('SLOWLOG', 'RESET', @_);
1740             }
1741              
1742              
1743 0     0 0   async sub smembers {
1744 0           my $self = shift;
1745 0           return await $self->command('SMEMBERS', @_);
1746             }
1747              
1748              
1749 0     0 0   async sub smismember {
1750 0           my $self = shift;
1751 0           return await $self->command('SMISMEMBER', @_);
1752             }
1753              
1754              
1755 0     0 0   async sub smove {
1756 0           my $self = shift;
1757 0           return await $self->command('SMOVE', @_);
1758             }
1759              
1760              
1761 0     0 0   async sub sort {
1762 0           my $self = shift;
1763 0           return await $self->command('SORT', @_);
1764             }
1765              
1766              
1767 0     0 0   async sub sort_ro {
1768 0           my $self = shift;
1769 0           return await $self->command('SORT_RO', @_);
1770             }
1771              
1772              
1773 0     0 0   async sub spop {
1774 0           my $self = shift;
1775 0           return await $self->command('SPOP', @_);
1776             }
1777              
1778              
1779 0     0 0   async sub spublish {
1780 0           my $self = shift;
1781 0           return await $self->command('SPUBLISH', @_);
1782             }
1783              
1784              
1785 0     0 0   async sub srandmember {
1786 0           my $self = shift;
1787 0           return await $self->command('SRANDMEMBER', @_);
1788             }
1789              
1790              
1791 0     0 0   async sub srem {
1792 0           my $self = shift;
1793 0           return await $self->command('SREM', @_);
1794             }
1795              
1796              
1797 0     0 0   async sub sscan {
1798 0           my $self = shift;
1799 0           return await $self->command('SSCAN', @_);
1800             }
1801              
1802              
1803 0     0 0   async sub ssubscribe {
1804 0           my $self = shift;
1805 0           return await $self->command('SSUBSCRIBE', @_);
1806             }
1807              
1808              
1809 0     0 0   async sub strlen {
1810 0           my $self = shift;
1811 0           return await $self->command('STRLEN', @_);
1812             }
1813              
1814              
1815 0     0 0   async sub subscribe {
1816 0           my $self = shift;
1817 0           return await $self->command('SUBSCRIBE', @_);
1818             }
1819              
1820              
1821 0     0 0   async sub substr {
1822 0           my $self = shift;
1823 0           return await $self->command('SUBSTR', @_);
1824             }
1825              
1826              
1827 0     0 0   async sub sunion {
1828 0           my $self = shift;
1829 0           return await $self->command('SUNION', @_);
1830             }
1831              
1832              
1833 0     0 0   async sub sunionstore {
1834 0           my $self = shift;
1835 0           return await $self->command('SUNIONSTORE', @_);
1836             }
1837              
1838              
1839 0     0 0   async sub sunsubscribe {
1840 0           my $self = shift;
1841 0           return await $self->command('SUNSUBSCRIBE', @_);
1842             }
1843              
1844              
1845 0     0 0   async sub swapdb {
1846 0           my $self = shift;
1847 0           return await $self->command('SWAPDB', @_);
1848             }
1849              
1850              
1851 0     0 0   async sub sync {
1852 0           my $self = shift;
1853 0           return await $self->command('SYNC', @_);
1854             }
1855              
1856              
1857 0     0 0   async sub time {
1858 0           my $self = shift;
1859 0           my $arr = await $self->command('TIME', @_);
1860             return {
1861 0           seconds => $arr->[0],
1862             microseconds => $arr->[1],
1863             };
1864             }
1865              
1866              
1867 0     0 0   async sub touch {
1868 0           my $self = shift;
1869 0           return await $self->command('TOUCH', @_);
1870             }
1871              
1872              
1873 0     0 0   async sub ttl {
1874 0           my $self = shift;
1875 0           return await $self->command('TTL', @_);
1876             }
1877              
1878              
1879 0     0 0   async sub type {
1880 0           my $self = shift;
1881 0           return await $self->command('TYPE', @_);
1882             }
1883              
1884              
1885 0     0 0   async sub unlink {
1886 0           my $self = shift;
1887 0           return await $self->command('UNLINK', @_);
1888             }
1889              
1890              
1891 0     0 0   async sub unsubscribe {
1892 0           my $self = shift;
1893 0           return await $self->command('UNSUBSCRIBE', @_);
1894             }
1895              
1896              
1897 0     0 0   async sub unwatch {
1898 0           my $self = shift;
1899 0           return await $self->command('UNWATCH', @_);
1900             }
1901              
1902              
1903 0     0 0   async sub wait {
1904 0           my $self = shift;
1905 0           return await $self->command('WAIT', @_);
1906             }
1907              
1908              
1909 0     0 0   async sub waitaof {
1910 0           my $self = shift;
1911 0           return await $self->command('WAITAOF', @_);
1912             }
1913              
1914              
1915 0     0 0   async sub watch {
1916 0           my $self = shift;
1917 0           return await $self->command('WATCH', @_);
1918             }
1919              
1920              
1921 0     0 0   async sub xack {
1922 0           my $self = shift;
1923 0           return await $self->command('XACK', @_);
1924             }
1925              
1926              
1927 0     0 0   async sub xadd {
1928 0           my $self = shift;
1929 0           return await $self->command('XADD', @_);
1930             }
1931              
1932              
1933 0     0 0   async sub xautoclaim {
1934 0           my $self = shift;
1935 0           return await $self->command('XAUTOCLAIM', @_);
1936             }
1937              
1938              
1939 0     0 0   async sub xclaim {
1940 0           my $self = shift;
1941 0           return await $self->command('XCLAIM', @_);
1942             }
1943              
1944              
1945 0     0 0   async sub xdel {
1946 0           my $self = shift;
1947 0           return await $self->command('XDEL', @_);
1948             }
1949              
1950              
1951 0     0 0   async sub xgroup {
1952 0           my $self = shift;
1953 0           return await $self->command('XGROUP', @_);
1954             }
1955              
1956              
1957 0     0 0   async sub xgroup_create {
1958 0           my $self = shift;
1959 0           return await $self->command('XGROUP', 'CREATE', @_);
1960             }
1961              
1962              
1963 0     0 0   async sub xgroup_createconsumer {
1964 0           my $self = shift;
1965 0           return await $self->command('XGROUP', 'CREATECONSUMER', @_);
1966             }
1967              
1968              
1969 0     0 0   async sub xgroup_delconsumer {
1970 0           my $self = shift;
1971 0           return await $self->command('XGROUP', 'DELCONSUMER', @_);
1972             }
1973              
1974              
1975 0     0 0   async sub xgroup_destroy {
1976 0           my $self = shift;
1977 0           return await $self->command('XGROUP', 'DESTROY', @_);
1978             }
1979              
1980              
1981 0     0 0   async sub xgroup_help {
1982 0           my $self = shift;
1983 0           return await $self->command('XGROUP', 'HELP', @_);
1984             }
1985              
1986              
1987 0     0 0   async sub xgroup_setid {
1988 0           my $self = shift;
1989 0           return await $self->command('XGROUP', 'SETID', @_);
1990             }
1991              
1992              
1993 0     0 0   async sub xinfo {
1994 0           my $self = shift;
1995 0           return await $self->command('XINFO', @_);
1996             }
1997              
1998              
1999 0     0 0   async sub xinfo_consumers {
2000 0           my $self = shift;
2001 0           return await $self->command('XINFO', 'CONSUMERS', @_);
2002             }
2003              
2004              
2005 0     0 0   async sub xinfo_groups {
2006 0           my $self = shift;
2007 0           return await $self->command('XINFO', 'GROUPS', @_);
2008             }
2009              
2010              
2011 0     0 0   async sub xinfo_help {
2012 0           my $self = shift;
2013 0           return await $self->command('XINFO', 'HELP', @_);
2014             }
2015              
2016              
2017 0     0 0   async sub xinfo_stream {
2018 0           my $self = shift;
2019 0           return await $self->command('XINFO', 'STREAM', @_);
2020             }
2021              
2022              
2023 0     0 0   async sub xlen {
2024 0           my $self = shift;
2025 0           return await $self->command('XLEN', @_);
2026             }
2027              
2028              
2029 0     0 0   async sub xpending {
2030 0           my $self = shift;
2031 0           return await $self->command('XPENDING', @_);
2032             }
2033              
2034              
2035 0     0 0   async sub xrange {
2036 0           my $self = shift;
2037 0           return await $self->command('XRANGE', @_);
2038             }
2039              
2040              
2041 0     0 0   async sub xread {
2042 0           my $self = shift;
2043 0           return await $self->command('XREAD', @_);
2044             }
2045              
2046              
2047 0     0 0   async sub xreadgroup {
2048 0           my $self = shift;
2049 0           return await $self->command('XREADGROUP', @_);
2050             }
2051              
2052              
2053 0     0 0   async sub xrevrange {
2054 0           my $self = shift;
2055 0           return await $self->command('XREVRANGE', @_);
2056             }
2057              
2058              
2059 0     0 0   async sub xsetid {
2060 0           my $self = shift;
2061 0           return await $self->command('XSETID', @_);
2062             }
2063              
2064              
2065 0     0 0   async sub xtrim {
2066 0           my $self = shift;
2067 0           return await $self->command('XTRIM', @_);
2068             }
2069              
2070              
2071 0     0 0   async sub zadd {
2072 0           my $self = shift;
2073 0           return await $self->command('ZADD', @_);
2074             }
2075              
2076              
2077 0     0 0   async sub zcard {
2078 0           my $self = shift;
2079 0           return await $self->command('ZCARD', @_);
2080             }
2081              
2082              
2083 0     0 0   async sub zcount {
2084 0           my $self = shift;
2085 0           return await $self->command('ZCOUNT', @_);
2086             }
2087              
2088              
2089 0     0 0   async sub zdiff {
2090 0           my $self = shift;
2091 0           return await $self->command('ZDIFF', @_);
2092             }
2093              
2094              
2095 0     0 0   async sub zdiffstore {
2096 0           my $self = shift;
2097 0           return await $self->command('ZDIFFSTORE', @_);
2098             }
2099              
2100              
2101 0     0 0   async sub zincrby {
2102 0           my $self = shift;
2103 0           return await $self->command('ZINCRBY', @_);
2104             }
2105              
2106              
2107 0     0 0   async sub zinter {
2108 0           my $self = shift;
2109 0           return await $self->command('ZINTER', @_);
2110             }
2111              
2112              
2113 0     0 0   async sub zintercard {
2114 0           my $self = shift;
2115 0           return await $self->command('ZINTERCARD', @_);
2116             }
2117              
2118              
2119 0     0 0   async sub zinterstore {
2120 0           my $self = shift;
2121 0           return await $self->command('ZINTERSTORE', @_);
2122             }
2123              
2124              
2125 0     0 0   async sub zlexcount {
2126 0           my $self = shift;
2127 0           return await $self->command('ZLEXCOUNT', @_);
2128             }
2129              
2130              
2131 0     0 0   async sub zmpop {
2132 0           my $self = shift;
2133 0           return await $self->command('ZMPOP', @_);
2134             }
2135              
2136              
2137 0     0 0   async sub zmscore {
2138 0           my $self = shift;
2139 0           return await $self->command('ZMSCORE', @_);
2140             }
2141              
2142              
2143 0     0 0   async sub zpopmax {
2144 0           my $self = shift;
2145 0           return await $self->command('ZPOPMAX', @_);
2146             }
2147              
2148              
2149 0     0 0   async sub zpopmin {
2150 0           my $self = shift;
2151 0           return await $self->command('ZPOPMIN', @_);
2152             }
2153              
2154              
2155 0     0 0   async sub zrandmember {
2156 0           my $self = shift;
2157 0           return await $self->command('ZRANDMEMBER', @_);
2158             }
2159              
2160              
2161 0     0 0   async sub zrange {
2162 0           my $self = shift;
2163 0           return await $self->command('ZRANGE', @_);
2164             }
2165              
2166              
2167 0     0 0   async sub zrangebylex {
2168 0           my $self = shift;
2169 0           return await $self->command('ZRANGEBYLEX', @_);
2170             }
2171              
2172              
2173 0     0 0   async sub zrangebyscore {
2174 0           my $self = shift;
2175 0           return await $self->command('ZRANGEBYSCORE', @_);
2176             }
2177              
2178              
2179 0     0 0   async sub zrangestore {
2180 0           my $self = shift;
2181 0           return await $self->command('ZRANGESTORE', @_);
2182             }
2183              
2184              
2185 0     0 0   async sub zrank {
2186 0           my $self = shift;
2187 0           return await $self->command('ZRANK', @_);
2188             }
2189              
2190              
2191 0     0 0   async sub zrem {
2192 0           my $self = shift;
2193 0           return await $self->command('ZREM', @_);
2194             }
2195              
2196              
2197 0     0 0   async sub zremrangebylex {
2198 0           my $self = shift;
2199 0           return await $self->command('ZREMRANGEBYLEX', @_);
2200             }
2201              
2202              
2203 0     0 0   async sub zremrangebyrank {
2204 0           my $self = shift;
2205 0           return await $self->command('ZREMRANGEBYRANK', @_);
2206             }
2207              
2208              
2209 0     0 0   async sub zremrangebyscore {
2210 0           my $self = shift;
2211 0           return await $self->command('ZREMRANGEBYSCORE', @_);
2212             }
2213              
2214              
2215 0     0 0   async sub zrevrange {
2216 0           my $self = shift;
2217 0           return await $self->command('ZREVRANGE', @_);
2218             }
2219              
2220              
2221 0     0 0   async sub zrevrangebylex {
2222 0           my $self = shift;
2223 0           return await $self->command('ZREVRANGEBYLEX', @_);
2224             }
2225              
2226              
2227 0     0 0   async sub zrevrangebyscore {
2228 0           my $self = shift;
2229 0           return await $self->command('ZREVRANGEBYSCORE', @_);
2230             }
2231              
2232              
2233 0     0 0   async sub zrevrank {
2234 0           my $self = shift;
2235 0           return await $self->command('ZREVRANK', @_);
2236             }
2237              
2238              
2239 0     0 0   async sub zscan {
2240 0           my $self = shift;
2241 0           return await $self->command('ZSCAN', @_);
2242             }
2243              
2244              
2245 0     0 0   async sub zscore {
2246 0           my $self = shift;
2247 0           return await $self->command('ZSCORE', @_);
2248             }
2249              
2250              
2251 0     0 0   async sub zunion {
2252 0           my $self = shift;
2253 0           return await $self->command('ZUNION', @_);
2254             }
2255              
2256              
2257 0     0 0   async sub zunionstore {
2258 0           my $self = shift;
2259 0           return await $self->command('ZUNIONSTORE', @_);
2260             }
2261              
2262              
2263             1;
2264              
2265             __END__