-
Notifications
You must be signed in to change notification settings - Fork 1.7k
/
resp2_replies.json
1320 lines (1320 loc) · 72.4 KB
/
resp2_replies.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
{
"ACL": [],
"ACL CAT": [
"One of the following:",
"* [Array reply](/docs/reference/protocol-spec#arrays): an array of [Bulk string reply](/docs/reference/protocol-spec#bulk-strings) elements representing ACL categories or commands in a given category.",
"* [Simple error reply](/docs/reference/protocol-spec#simple-errors): the command returns an error if an invalid category name is given."
],
"ACL DELUSER": [
"[Integer reply](/docs/reference/protocol-spec#integers): the number of users that were deleted. This number will not always match the number of arguments since certain users may not exist."
],
"ACL DRYRUN": [
"Any of the following:",
"* [Simple string reply](/docs/reference/protocol-spec#simple-strings): `OK` on success.",
"* [Bulk string reply](/docs/reference/protocol-spec#bulk-strings): an error describing why the user can't execute the command."
],
"ACL GENPASS": [
"[Bulk string reply](/docs/reference/protocol-spec#bulk-strings): pseudorandom data. By default it contains 64 bytes, representing 256 bits of data. If `bits` was given, the output string length is the number of specified bits (rounded to the next multiple of 4) divided by 4."
],
"ACL GETUSER": [
"One of the following:",
"* [Array reply](/docs/reference/protocol-spec#arrays): a list of ACL rule definitions for the user.",
"* [Nil reply](/docs/reference/protocol-spec#bulk-strings): if user does not exist."
],
"ACL HELP": [
"[Array reply](/docs/reference/protocol-spec#arrays): a list of subcommands and their descriptions."
],
"ACL LIST": [
"[Array reply](/docs/reference/protocol-spec#arrays): an array of [Bulk string reply](/docs/reference/protocol-spec#bulk-strings) elements."
],
"ACL LOG": [
"When called to show security events:",
"* [Array reply](/docs/reference/protocol-spec#arrays): an array of [Bulk string reply](/docs/reference/protocol-spec#bulk-strings) elements representing ACL security events.",
"When called with `RESET`:",
"* [Simple string reply](/docs/reference/protocol-spec#simple-strings): `OK` if the security log was cleared."
],
"ACL SAVE": [
"[Simple string reply](/docs/reference/protocol-spec#simple-strings): `OK`.",
"The command may fail with an error for several reasons: if the file cannot be written or if the server is not configured to use an external ACL file."
],
"ACL SETUSER": [
"[Simple string reply](/docs/reference/protocol-spec#simple-strings): `OK`.",
"If the rules contain errors, the error is returned."
],
"ACL USERS": [
"[Array reply](/docs/reference/protocol-spec#arrays): list of existing ACL users."
],
"ACL WHOAMI": [
"[Bulk string reply](/docs/reference/protocol-spec#bulk-strings): the username of the current connection."
],
"ACL-LOAD": [
"[Simple string reply](/docs/reference/protocol-spec#simple-strings): `OK` on success.",
"",
"The command may fail with an error for several reasons: if the file is not readable, if there is an error inside the file, and in such cases, the error will be reported to the user in the error.",
"Finally, the command will fail if the server is not configured to use an external ACL file."
],
"APPEND": [
"[Integer reply](/docs/reference/protocol-spec#integers): the length of the string after the append operation."
],
"ASKING": [
"[Simple string reply](/docs/reference/protocol-spec#simple-strings): `OK`."
],
"AUTH": [
"[Simple string reply](/docs/reference/protocol-spec#simple-strings): `OK`, or an error if the password, or username/password pair, is invalid."
],
"BGREWRITEAOF": [
"[Simple string reply](/docs/reference/protocol-spec#simple-strings): a simple string reply indicating that the rewriting started or is about to start ASAP when the call is executed with success.",
"",
"The command may reply with an error in certain cases, as documented above."
],
"BGSAVE": [
"One of the following:",
"* [Simple string reply](/docs/reference/protocol-spec#simple-strings): `Background saving started`.",
"* [Simple string reply](/docs/reference/protocol-spec#simple-strings): `Background saving scheduled`."
],
"BITCOUNT": [
"[Integer reply](/docs/reference/protocol-spec#integers): the number of bits set to 1."
],
"BITFIELD": [
"One of the following:",
"* [Array reply](/docs/reference/protocol-spec#arrays): each entry being the corresponding result of the sub-command given at the same position.",
"* [Nil reply](/docs/reference/protocol-spec#bulk-strings): if OVERFLOW FAIL was given and overflows or underflows are detected."
],
"BITFIELD_RO": [
"[Array reply](/docs/reference/protocol-spec#arrays): each entry being the corresponding result of the sub-command given at the same position."
],
"BITOP": [
"[Integer reply](/docs/reference/protocol-spec#integers): the size of the string stored in the destination key is equal to the size of the longest input string."
],
"BITPOS": [
"One of the following:",
"* [Integer reply](/docs/reference/protocol-spec#integers): the position of the first bit set to 1 or 0 according to the request",
"* [Integer reply](/docs/reference/protocol-spec#integers): `-1`. In case the `bit` argument is 1 and the string is empty or composed of just zero bytes",
"",
"If we look for set bits (the bit argument is 1) and the string is empty or composed of just zero bytes, -1 is returned.",
"",
"If we look for clear bits (the bit argument is 0) and the string only contains bits set to 1, the function returns the first bit not part of the string on the right. So if the string is three bytes set to the value `0xff` the command `BITPOS key 0` will return 24, since up to bit 23 all the bits are 1.",
"",
"The function considers the right of the string as padded with zeros if you look for clear bits and specify no range or the _start_ argument **only**.",
"",
"However, this behavior changes if you are looking for clear bits and specify a range with both _start_ and _end_.",
"If a clear bit isn't found in the specified range, the function returns -1 as the user specified a clear range and there are no 0 bits in that range."
],
"BLMOVE": [
"One of the following:",
"* [Bulk string reply](/docs/reference/protocol-spec#bulk-strings): the element being popped from the _source_ and pushed to the _destination_.",
"* [Nil reply](/docs/reference/protocol-spec#bulk-strings): the operation timed-out"
],
"BLMPOP": [
"One of the following:",
"* [Nil reply](/docs/reference/protocol-spec#bulk-strings): when no element could be popped and the _timeout_ is reached.",
"* [Array reply](/docs/reference/protocol-spec#arrays): a two-element array with the first element being the name of the key from which elements were popped, and the second element being an array of the popped elements."
],
"BLPOP": [
"One of the following:",
"* [Nil reply](/docs/reference/protocol-spec#bulk-strings): no element could be popped and the timeout expired",
"* [Array reply](/docs/reference/protocol-spec#arrays): the key from which the element was popped and the value of the popped element."
],
"BRPOP": [
"One of the following:",
"* [Nil reply](/docs/reference/protocol-spec#bulk-strings): no element could be popped and the timeout expired.",
"* [Array reply](/docs/reference/protocol-spec#arrays): the key from which the element was popped and the value of the popped element"
],
"BRPOPLPUSH": [
"One of the following:",
"* [Bulk string reply](/docs/reference/protocol-spec#bulk-strings): the element being popped from _source_ and pushed to _destination_.",
"* [Nil reply](/docs/reference/protocol-spec#bulk-strings): the timeout is reached."
],
"BZMPOP": [
"One of the following:",
"* [Nil reply](/docs/reference/protocol-spec#bulk-strings): when no element could be popped.",
"* [Array reply](/docs/reference/protocol-spec#arrays): a two-element array with the first element being the name of the key from which elements were popped, and the second element is an array of the popped elements. Every entry in the elements array is also an array that contains the member and its score."
],
"BZPOPMAX": [
"One of the following:",
"* [Nil reply](/docs/reference/protocol-spec#bulk-strings): when no element could be popped and the _timeout_ expired.",
"* [Array reply](/docs/reference/protocol-spec#arrays): the keyname, popped member, and its score."
],
"BZPOPMIN": [
"One of the following:",
"* [Nil reply](/docs/reference/protocol-spec#bulk-strings): when no element could be popped and the _timeout_ expired.",
"* [Array reply](/docs/reference/protocol-spec#arrays): the keyname, popped member, and its score."
],
"CLIENT": [],
"CLIENT CACHING": [
"[Simple string reply](/docs/reference/protocol-spec#simple-strings): `OK` or an error if the argument is not \"yes\" or \"no\"."
],
"CLIENT GETNAME": [
"One of the following:",
"* [Bulk string reply](/docs/reference/protocol-spec#bulk-strings): the connection name of the current connection.",
"* [Nil reply](/docs/reference/protocol-spec#bulk-strings): the connection name was not set."
],
"CLIENT GETREDIR": [
"One of the following:",
"* [Integer reply](/docs/reference/protocol-spec#integers): `0` when not redirecting notifications to any client.",
"* [Integer reply](/docs/reference/protocol-spec#integers): `-1` if client tracking is not enabled.",
"* [Integer reply](/docs/reference/protocol-spec#integers): the ID of the client to which notification are being redirected."
],
"CLIENT HELP": [
"[Array reply](/docs/reference/protocol-spec#arrays): a list of subcommands and their descriptions."
],
"CLIENT ID": [
"[Integer reply](/docs/reference/protocol-spec#integers): the ID of the client."
],
"CLIENT INFO": [
"[Bulk string reply](/docs/reference/protocol-spec#bulk-strings): a unique string for the current client, as described at the `CLIENT LIST` page."
],
"CLIENT KILL": [
"One of the following:",
"* [Simple string reply](/docs/reference/protocol-spec#simple-strings): `OK` when called in 3 argument format and the connection has been closed.",
"* [Integer reply](/docs/reference/protocol-spec#integers): when called in filter/value format, the number of clients killed."
],
"CLIENT LIST": [
"[Bulk string reply](/docs/reference/protocol-spec#bulk-strings): information and statistics about client connections."
],
"CLIENT NO-EVICT": [
"[Simple string reply](/docs/reference/protocol-spec#simple-strings): `OK`."
],
"CLIENT NO-TOUCH": [
"[Simple string reply](/docs/reference/protocol-spec#simple-strings): `OK`."
],
"CLIENT PAUSE": [
"[Simple string reply](/docs/reference/protocol-spec#simple-strings): `OK` or an error if the timeout is invalid."
],
"CLIENT REPLY": [
"[Simple string reply](/docs/reference/protocol-spec#simple-strings): `OK` when called with `ON`. When called with either `OFF` or `SKIP` sub-commands, no reply is made."
],
"CLIENT SETINFO": [
"[Simple string reply](/docs/reference/protocol-spec#simple-strings): `OK` if the attribute name was successfully set."
],
"CLIENT SETNAME": [
"[Simple string reply](/docs/reference/protocol-spec#simple-strings): `OK` if the connection name was successfully set."
],
"CLIENT TRACKING": [
"[Simple string reply](/docs/reference/protocol-spec#simple-strings): `OK` if the connection was successfully put in tracking mode or if the tracking mode was successfully disabled. Otherwise, an error is returned."
],
"CLIENT TRACKINGINFO": [
"[Array reply](/docs/reference/protocol-spec#arrays): a list of tracking information sections and their respective values."
],
"CLIENT UNBLOCK": [
"One of the following:",
"* [Integer reply](/docs/reference/protocol-spec#integers): `0` if the client was unblocked successfully.",
"* [Integer reply](/docs/reference/protocol-spec#integers): `1` if the client wasn't unblocked."
],
"CLIENT UNPAUSE": [
"[Simple string reply](/docs/reference/protocol-spec#simple-strings): `OK`."
],
"CLUSTER": [],
"CLUSTER ADDSLOTS": [
"[Simple string reply](/docs/reference/protocol-spec#simple-strings): `OK` if the command was successful. Otherwise an error is returned."
],
"CLUSTER ADDSLOTSRANGE": [
"[Simple string reply](/docs/reference/protocol-spec#simple-strings): `OK` if the command was successful. Otherwise an error is returned."
],
"CLUSTER BUMPEPOCH": [
"One of the following:",
"* [Bulk string reply](/docs/reference/protocol-spec#bulk-strings): `BUMPED` if the epoch was incremented.",
"* [Bulk string reply](/docs/reference/protocol-spec#bulk-strings): `STILL` if the node already has the greatest configured epoch in the cluster."
],
"CLUSTER COUNT-FAILURE-REPORTS": [
"[Integer reply](/docs/reference/protocol-spec#integers): the number of active failure reports for the node."
],
"CLUSTER COUNTKEYSINSLOT": [
"[Integer reply](/docs/reference/protocol-spec#integers): The number of keys in the specified hash slot, or an error if the hash slot is invalid."
],
"CLUSTER DELSLOTS": [
"[Simple string reply](/docs/reference/protocol-spec#simple-strings): `OK` if the command was successful. Otherwise an error is returned."
],
"CLUSTER DELSLOTSRANGE": [
"[Simple string reply](/docs/reference/protocol-spec#simple-strings): `OK` if the command was successful. Otherwise an error is returned."
],
"CLUSTER FAILOVER": [
"[Simple string reply](/docs/reference/protocol-spec#simple-strings): `OK` if the command was accepted and a manual failover is going to be attempted. An error if the operation cannot be executed, for example if the client is connected to a node that is already a master."
],
"CLUSTER FLUSHSLOTS": [
"[Simple string reply](/docs/reference/protocol-spec#simple-strings): `OK`"
],
"CLUSTER FORGET": [
"[Simple string reply](/docs/reference/protocol-spec#simple-strings): `OK` if the command was executed successfully. Otherwise an error is returned."
],
"CLUSTER GETKEYSINSLOT": [
"[Array reply](/docs/reference/protocol-spec#arrays): an array with up to count elements."
],
"CLUSTER HELP": [
"[Array reply](/docs/reference/protocol-spec#arrays): a list of subcommands and their descriptions."
],
"CLUSTER INFO": [
"[Bulk string reply](/docs/reference/protocol-spec#bulk-strings): A map between named fields and values in the form of `<field>:<value>` lines separated by newlines composed by the two bytes `CRLF`."
],
"CLUSTER KEYSLOT": [
"[Integer reply](/docs/reference/protocol-spec#integers): The hash slot number for the specified key"
],
"CLUSTER LINKS": [
"[Array reply](/docs/reference/protocol-spec#arrays): an array of maps where each map contains various attributes and their values of a cluster link."
],
"CLUSTER MEET": [
"[Simple string reply](/docs/reference/protocol-spec#simple-strings): `OK` if the command was successful. If the address or port specified are invalid an error is returned."
],
"CLUSTER MYID": [
"[Bulk string reply](/docs/reference/protocol-spec#bulk-strings): the node ID."
],
"CLUSTER MYSHARDID": [
"[Bulk string reply](/docs/reference/protocol-spec#bulk-strings): the node's shard ID."
],
"CLUSTER NODES": [
"[Bulk string reply](/docs/reference/protocol-spec#bulk-strings): the serialized cluster configuration."
],
"CLUSTER REPLICAS": [
"[Array reply](/docs/reference/protocol-spec#arrays): a list of replica nodes replicating from the specified master node provided in the same format used by `CLUSTER NODES`."
],
"CLUSTER REPLICATE": [
"[Simple string reply](/docs/reference/protocol-spec#simple-strings): `OK` if the command was successful. Otherwise an error is returned."
],
"CLUSTER RESET": [
"[Simple string reply](/docs/reference/protocol-spec#simple-strings): `OK` if the command was successful. Otherwise an error is returned."
],
"CLUSTER SAVECONFIG": [
"[Simple string reply](/docs/reference/protocol-spec#simple-strings): `OK` if the command was successful. Otherwise an error is returned."
],
"CLUSTER SET-CONFIG-EPOCH": [
"[Simple string reply](/docs/reference/protocol-spec#simple-strings): `OK` if the command was successful. Otherwise an error is returned."
],
"CLUSTER SETSLOT": [
"[Simple string reply](/docs/reference/protocol-spec#simple-strings): all the sub-commands return `OK` if the command was successful. Otherwise an error is returned."
],
"CLUSTER SHARDS": [
"[Array reply](/docs/reference/protocol-spec#arrays): a nested list of a map of hash ranges and shard nodes describing individual shards."
],
"CLUSTER SLAVES": [
"[Array reply](/docs/reference/protocol-spec#arrays): a list of replica nodes replicating from the specified master node provided in the same format used by `CLUSTER NODES`."
],
"CLUSTER SLOTS": [
"[Array reply](/docs/reference/protocol-spec#arrays): nested list of slot ranges with networking information."
],
"COMMAND": [
"[Array reply](/docs/reference/protocol-spec#arrays): a nested list of command details. The order of the commands in the array is random."
],
"COMMAND COUNT": [
"[Integer reply](/docs/reference/protocol-spec#integers): the number of commands returned by `COMMAND`."
],
"COMMAND DOCS": [
"[Array reply](/docs/reference/protocol-spec#arrays): a map, as a flattened array, where each key is a command name, and each value is the documentary information."
],
"COMMAND GETKEYS": [
"[Array reply](/docs/reference/protocol-spec#arrays): list of keys from the given command."
],
"COMMAND GETKEYSANDFLAGS": [
"[Array reply](/docs/reference/protocol-spec#arrays): a list of keys from the given command and their usage flags."
],
"COMMAND HELP": [
"[Array reply](/docs/reference/protocol-spec#arrays): a list of sub-commands and their descriptions."
],
"COMMAND INFO": [
"[Array reply](/docs/reference/protocol-spec#arrays): a nested list of command details."
],
"COMMAND LIST": [
"[Array reply](/docs/reference/protocol-spec#arrays): a list of command names."
],
"CONFIG": [],
"CONFIG GET": [
"[Array reply](/docs/reference/protocol-spec#arrays): a list of configuration parameters matching the provided arguments."
],
"CONFIG HELP": [
"[Array reply](/docs/reference/protocol-spec#arrays): a list of sub-commands and their descriptions."
],
"CONFIG RESETSTAT": [
"[Simple string reply](/docs/reference/protocol-spec#simple-strings): `OK`."
],
"CONFIG REWRITE": [
"[Simple string reply](/docs/reference/protocol-spec#simple-strings): `OK` when the configuration was rewritten properly. Otherwise an error is returned."
],
"CONFIG SET": [
"[Simple string reply](/docs/reference/protocol-spec#simple-strings): `OK` when the configuration was set properly. Otherwise an error is returned."
],
"COPY": [
"One of the following:",
"* [Integer reply](/docs/reference/protocol-spec#integers): `1` if _source_ was copied.",
"* [Integer reply](/docs/reference/protocol-spec#integers): `0` if _source_ was not copied."
],
"DBSIZE": [
"[Integer reply](/docs/reference/protocol-spec#integers): the number of keys in the currently-selected database."
],
"DEBUG": [],
"DECR": [
"[Integer reply](/docs/reference/protocol-spec#integers): the value of the key after decrementing it."
],
"DECRBY": [
"[Integer reply](/docs/reference/protocol-spec#integers): the value of the key after decrementing it."
],
"DEL": [
"[Integer reply](/docs/reference/protocol-spec#integers): the number of keys that were removed."
],
"DISCARD": [
"[Simple string reply](/docs/reference/protocol-spec#simple-strings): `OK`."
],
"DUMP": [
"One of the following:",
"* [Bulk string reply](/docs/reference/protocol-spec#bulk-strings): The serialized value of the key.",
"* [Nil reply](/docs/reference/protocol-spec#bulk-strings): the key does not exist."
],
"ECHO": [
"[Bulk string reply](/docs/reference/protocol-spec#bulk-strings): the given string."
],
"EVAL": [
"The return value depends on the script that was executed."
],
"EVALSHA": [
"The return value depends on the script that was executed."
],
"EVALSHA_RO": [
"The return value depends on the script that was executed."
],
"EVAL_RO": [
"The return value depends on the script that was executed."
],
"EXEC": [
"One of the following:",
"* [Array reply](/docs/reference/protocol-spec#arrays): each element being the reply to each of the commands in the atomic transaction.",
"* [Nil reply](/docs/reference/protocol-spec#bulk-strings): the transaction was aborted because a `WATCH`ed key was touched."
],
"EXISTS": [
"[Integer reply](/docs/reference/protocol-spec#integers): the number of keys that exist from those specified as arguments."
],
"EXPIRE": [
"One of the following:",
"* [Integer reply](/docs/reference/protocol-spec#integers): `0` if the timeout was not set; for example, the key doesn't exist, or the operation was skipped because of the provided arguments.",
"* [Integer reply](/docs/reference/protocol-spec#integers): `1` if the timeout was set."
],
"EXPIREAT": [
"One of the following:",
"* [Integer reply](/docs/reference/protocol-spec#integers): `0` if the timeout was not set; for example, the key doesn't exist, or the operation was skipped because of the provided arguments.",
"* [Integer reply](/docs/reference/protocol-spec#integers): `1` if the timeout was set."
],
"EXPIRETIME": [
"One of the following:",
"* [Integer reply](/docs/reference/protocol-spec#integers): the expiration Unix timestamp in seconds.",
"* [Integer reply](/docs/reference/protocol-spec#integers): `-1` if the key exists but has no associated expiration time.",
"* [Integer reply](/docs/reference/protocol-spec#integers): `-2` if the key does not exist."
],
"FAILOVER": [
"[Simple string reply](/docs/reference/protocol-spec#simple-strings): `OK` if the command was accepted and a coordinated failover is in progress. An error if the operation cannot be executed."
],
"FCALL": [
"The return value depends on the function that was executed."
],
"FCALL_RO": [
"The return value depends on the function that was executed."
],
"FLUSHALL": [
"[Simple string reply](/docs/reference/protocol-spec#simple-strings): `OK`."
],
"FLUSHDB": [
"[Simple string reply](/docs/reference/protocol-spec#simple-strings): `OK`."
],
"FUNCTION": [],
"FUNCTION DELETE": [
"[Simple string reply](/docs/reference/protocol-spec#simple-strings): `OK`."
],
"FUNCTION DUMP": [
"[Bulk string reply](/docs/reference/protocol-spec#bulk-strings): the serialized payload"
],
"FUNCTION FLUSH": [
"[Simple string reply](/docs/reference/protocol-spec#simple-strings): `OK`."
],
"FUNCTION HELP": [
"[Array reply](/docs/reference/protocol-spec#arrays): a list of sub-commands and their descriptions"
],
"FUNCTION KILL": [
"[Simple string reply](/docs/reference/protocol-spec#simple-strings): `OK`."
],
"FUNCTION LIST": [
"[Array reply](/docs/reference/protocol-spec#arrays): information about functions and libraries."
],
"FUNCTION LOAD": [
"[Bulk string reply](/docs/reference/protocol-spec#bulk-strings): the library name that was loaded."
],
"FUNCTION RESTORE": [
"[Simple string reply](/docs/reference/protocol-spec#simple-strings): `OK`."
],
"FUNCTION STATS": [
"[Array reply](/docs/reference/protocol-spec#arrays): information about the function that's currently running and information about the available execution engines."
],
"GEOADD": [
"[Integer reply](/docs/reference/protocol-spec#integers): When used without optional arguments, the number of elements added to the sorted set (excluding score updates). If the CH option is specified, the number of elements that were changed (added or updated)."
],
"GEODIST": [
"One of the following:",
"* [Nil reply](/docs/reference/protocol-spec#bulk-strings): one or both of the elements are missing.",
"* [Bulk string reply](/docs/reference/protocol-spec#bulk-strings): distance as a double (represented as a string) in the specified units."
],
"GEOHASH": [
"[Array reply](/docs/reference/protocol-spec#arrays): an array where each element is the Geohash corresponding to each member name passed as an argument to the command."
],
"GEOPOS": [
"[Array reply](/docs/reference/protocol-spec#arrays): An array where each element is a two elements array representing longitude and latitude (x,y) of each member name passed as argument to the command. Non-existing elements are reported as [Nil reply](/docs/reference/protocol-spec#bulk-strings) elements of the array."
],
"GEORADIUS": [
"One of the following:",
"* If no `WITH*` option is specified, an [Array reply](/docs/reference/protocol-spec#arrays) of matched member names",
"* If `WITHCOORD`, `WITHDIST`, or `WITHHASH` options are specified, the command returns an [Array reply](/docs/reference/protocol-spec#arrays) of arrays, where each sub-array represents a single item:",
" 1. The distance from the center as a floating point number, in the same unit specified in the radius.",
" 1. The Geohash integer.",
" 1. The coordinates as a two items x,y array (longitude,latitude).",
"",
"For example, the command `GEORADIUS Sicily 15 37 200 km WITHCOORD WITHDIST` will return each item in the following way:",
"",
"`[\"Palermo\",\"190.4424\",[\"13.361389338970184\",\"38.115556395496299\"]]`"
],
"GEORADIUSBYMEMBER": [
"One of the following:",
"* If no `WITH*` option is specified, an [Array reply](/docs/reference/protocol-spec#arrays) of matched member names",
"* If `WITHCOORD`, `WITHDIST`, or `WITHHASH` options are specified, the command returns an [Array reply](/docs/reference/protocol-spec#arrays) of arrays, where each sub-array represents a single item:",
" * The distance from the center as a floating point number, in the same unit specified in the radius.",
" * The Geohash integer.",
" * The coordinates as a two items x,y array (longitude,latitude)."
],
"GEORADIUSBYMEMBER_RO": [
"One of the following:",
"* If no `WITH*` option is specified, an [Array reply](/docs/reference/protocol-spec#arrays) of matched member names",
"* If `WITHCOORD`, `WITHDIST`, or `WITHHASH` options are specified, the command returns an [Array reply](/docs/reference/protocol-spec#arrays) of arrays, where each sub-array represents a single item:",
" * The distance from the center as a floating point number, in the same unit specified in the radius.",
" * The Geohash integer.",
" * The coordinates as a two items x,y array (longitude,latitude)."
],
"GEORADIUS_RO": [
"One of the following:",
"* If no `WITH*` option is specified, an [Array reply](/docs/reference/protocol-spec#arrays) of matched member names",
"* If `WITHCOORD`, `WITHDIST`, or `WITHHASH` options are specified, the command returns an [Array reply](/docs/reference/protocol-spec#arrays) of arrays, where each sub-array represents a single item:",
" * The distance from the center as a floating point number, in the same unit specified in the radius.",
" * The Geohash integer.",
" * The coordinates as a two items x,y array (longitude,latitude)."
],
"GEOSEARCH": [
"One of the following:",
"* If no `WITH*` option is specified, an [Array reply](/docs/reference/protocol-spec#arrays) of matched member names",
"* If `WITHCOORD`, `WITHDIST`, or `WITHHASH` options are specified, the command returns an [Array reply](/docs/reference/protocol-spec#arrays) of arrays, where each sub-array represents a single item:",
" * The distance from the center as a floating point number, in the same unit specified in the radius.",
" * The Geohash integer.",
" * The coordinates as a two items x,y array (longitude,latitude)."
],
"GEOSEARCHSTORE": [
"[Integer reply](/docs/reference/protocol-spec#integers): the number of elements in the resulting set"
],
"GET": [
"One of the following:",
"* [Bulk string reply](/docs/reference/protocol-spec#bulk-strings): the value of the key.",
"* [Nil reply](/docs/reference/protocol-spec#bulk-strings): if the key does not exist."
],
"GETBIT": [
"The bit value stored at _offset_, one of the following:",
"* [Integer reply](/docs/reference/protocol-spec#integers): `0`.",
"* [Integer reply](/docs/reference/protocol-spec#integers): `1`."
],
"GETDEL": [
"One of the following:",
"* [Bulk string reply](/docs/reference/protocol-spec#bulk-strings): the value of the key.",
"* [Nil reply](/docs/reference/protocol-spec#bulk-strings): if the key does not exist or if the key's value type is not a string."
],
"GETEX": [
"[Bulk string reply](/docs/reference/protocol-spec#bulk-strings): the value of `key`",
"[Nil reply](/docs/reference/protocol-spec#bulk-strings): if `key` does not exist."
],
"GETRANGE": [
"[Bulk string reply](/docs/reference/protocol-spec#bulk-strings): The substring of the string value stored at key, determined by the offsets start and end (both are inclusive)."
],
"GETSET": [
"One of the following:",
"* [Bulk string reply](/docs/reference/protocol-spec#bulk-strings): the old value stored at the key.",
"* [Nil reply](/docs/reference/protocol-spec#bulk-strings): if the key does not exist."
],
"HDEL": [
"[Integer reply](/docs/reference/protocol-spec#integers): the number of fields that were removed from the hash, excluding any specified but non-existing fields."
],
"HELLO": [
"[Map reply](/docs/reference/protocol-spec#maps): a list of server properties.",
"[Simple error reply](/docs/reference/protocol-spec#simple-errors): if the `protover` requested does not exist."
],
"HEXISTS": [
"One of the following:",
"* [Integer reply](/docs/reference/protocol-spec#integers): `0` if the hash does not contain the field, or the key does not exist.",
"* [Integer reply](/docs/reference/protocol-spec#integers): `1` if the hash contains the field."
],
"HGET": [
"One of the following:",
"* [Bulk string reply](/docs/reference/protocol-spec#bulk-strings): The value associated with the field.",
"* [Nil reply](/docs/reference/protocol-spec#bulk-strings): If the field is not present in the hash or key does not exist."
],
"HGETALL": [
"[Array reply](/docs/reference/protocol-spec#arrays): a list of fields and their values stored in the hash, or an empty list when key does not exist."
],
"HINCRBY": [
"[Integer reply](/docs/reference/protocol-spec#integers): the value of the field after the increment operation."
],
"HINCRBYFLOAT": [
"[Bulk string reply](/docs/reference/protocol-spec#bulk-strings): the value of the field after the increment operation."
],
"HKEYS": [
"[Array reply](/docs/reference/protocol-spec#arrays): a list of fields in the hash, or an empty list when the key does not exist"
],
"HLEN": [
"[Integer reply](/docs/reference/protocol-spec#integers): the number of fields in the hash, or 0 when the key does not exist."
],
"HMGET": [
"[Array reply](/docs/reference/protocol-spec#arrays): a list of values associated with the given fields, in the same order as they are requested."
],
"HMSET": [
"[Simple string reply](/docs/reference/protocol-spec#simple-strings): `OK`."
],
"HRANDFIELD": [
"Any of the following:",
"* [Nil reply](/docs/reference/protocol-spec#bulk-strings): if the key doesn't exist",
"* [Bulk string reply](/docs/reference/protocol-spec#bulk-strings): a single, randomly selected field when the `count` option is not used",
"* [Array reply](/docs/reference/protocol-spec#arrays): a list containing `count` fields when the `count` option is used, or an empty array if the key does not exists.",
"* [Array reply](/docs/reference/protocol-spec#arrays): a list of fields and their values when `count` and `WITHVALUES` were both used."
],
"HSCAN": [
"[Array reply](/docs/reference/protocol-spec#arrays): a two-element array.",
"* The first element is a [Bulk string reply](/docs/reference/protocol-spec#bulk-strings) that represents an unsigned 64-bit number, the cursor.",
"* The second element is an [Array reply](/docs/reference/protocol-spec#arrays) of field/value pairs that were scanned."
],
"HSET": [
"[Integer reply](/docs/reference/protocol-spec#integers): the number of fields that were added."
],
"HSETNX": [
"One of the following:",
"* [Integer reply](/docs/reference/protocol-spec#integers): `0` if the field already exists in the hash and no operation was performed.",
"* [Integer reply](/docs/reference/protocol-spec#integers): `1` if the field is a new field in the hash and the value was set."
],
"HSTRLEN": [
"[Integer reply](/docs/reference/protocol-spec#integers): the string length of the value associated with the _field_, or zero when the _field_ isn't present in the hash or the _key_ doesn't exist at all."
],
"HVALS": [
"[Array reply](/docs/reference/protocol-spec#arrays): a list of values in the hash, or an empty list when the key does not exist"
],
"INCR": [
"[Integer reply](/docs/reference/protocol-spec#integers): the value of the key after the increment."
],
"INCRBY": [
"[Integer reply](/docs/reference/protocol-spec#integers): the value of the key after the increment."
],
"INCRBYFLOAT": [
"[Bulk string reply](/docs/reference/protocol-spec#bulk-strings): the value of the key after the increment."
],
"INFO": [
"[Bulk string reply](/docs/reference/protocol-spec#bulk-strings): a map of info fields, one field per line in the form of `<field>:<value>` where the value can be a comma separated map like `<key>=<val>`. Also contains section header lines starting with `#` and blank lines.",
"",
"Lines can contain a section name (starting with a `#` character) or a property. All the properties are in the form of `field:value` terminated by `\\r\\n`."
],
"KEYS": [
"[Array reply](/docs/reference/protocol-spec#arrays): a list of keys matching _pattern_."
],
"LASTSAVE": [
"[Integer reply](/docs/reference/protocol-spec#integers): UNIX TIME of the last DB save executed with success."
],
"LATENCY": [],
"LATENCY DOCTOR": [
"[Bulk string reply](/docs/reference/protocol-spec#bulk-strings): a human readable latency analysis report."
],
"LATENCY GRAPH": [
"[Bulk string reply](/docs/reference/protocol-spec#bulk-strings): Latency graph"
],
"LATENCY HELP": [
"[Array reply](/docs/reference/protocol-spec#arrays): a list of sub-commands and their descriptions."
],
"LATENCY HISTOGRAM": [
"[Array reply](/docs/reference/protocol-spec#arrays): a map where each key is a command name, and each value is a map with the total calls, and an inner map of the histogram time buckets."
],
"LATENCY HISTORY": [
"[Array reply](/docs/reference/protocol-spec#arrays): an array where each element is a two elements array representing the timestamp and the latency of the event."
],
"LATENCY LATEST": [
"[Array reply](/docs/reference/protocol-spec#arrays): an array where each element is a four elements array representing the event's name, timestamp, latest and all-time latency measurements."
],
"LATENCY RESET": [
"[Integer reply](/docs/reference/protocol-spec#integers): the number of event time series that were reset."
],
"LCS": [
"One of the following:",
"* [Bulk string reply](/docs/reference/protocol-spec#bulk-strings): the longest common subsequence.",
"* [Integer reply](/docs/reference/protocol-spec#integers): the length of the longest common subsequence when _LEN_ is given.",
"* [Array reply](/docs/reference/protocol-spec#arrays): an array with the LCS length and all the ranges in both the strings when _IDX_ is given."
],
"LINDEX": [
"One of the following:",
"* [Nil reply](/docs/reference/protocol-spec#bulk-strings): when _index_ is out of range.",
"* [Bulk string reply](/docs/reference/protocol-spec#bulk-strings): the requested element."
],
"LINSERT": [
"One of the following:",
"* [Integer reply](/docs/reference/protocol-spec#integers): the list length after a successful insert operation.",
"* [Integer reply](/docs/reference/protocol-spec#integers): `0` when the key doesn't exist.",
"* [Integer reply](/docs/reference/protocol-spec#integers): `-1` when the pivot wasn't found."
],
"LLEN": [
"[Integer reply](/docs/reference/protocol-spec#integers): the length of the list."
],
"LMOVE": [
"[Bulk string reply](/docs/reference/protocol-spec#bulk-strings): the element being popped and pushed."
],
"LMPOP": [
"One of the following:",
"* [Nil reply](/docs/reference/protocol-spec#bulk-strings): if no element could be popped.",
"* [Array reply](/docs/reference/protocol-spec#arrays): a two-element array with the first element being the name of the key from which elements were popped and the second element being an array of elements."
],
"LOLWUT": [
"[Bulk string reply](/docs/reference/protocol-spec#bulk-strings): a string containing generative computer art and the Redis version."
],
"LPOP": [
"One of the following:",
"* [Nil reply](/docs/reference/protocol-spec#bulk-strings): if the key does not exist.",
"* [Bulk string reply](/docs/reference/protocol-spec#bulk-strings): when called without the _count_ argument, the value of the first element.",
"* [Array reply](/docs/reference/protocol-spec#arrays): when called with the _count_ argument, a list of popped elements."
],
"LPOS": [
"Any of the following:",
"* [Nil reply](/docs/reference/protocol-spec#bulk-strings): if there is no matching element.",
"* [Integer reply](/docs/reference/protocol-spec#integers): an integer representing the matching element.",
"* [Array reply](/docs/reference/protocol-spec#arrays): If the COUNT option is given, an array of integers representing the matching elements (or an empty array if there are no matches)."
],
"LPUSH": [
"[Integer reply](/docs/reference/protocol-spec#integers): the length of the list after the push operation."
],
"LPUSHX": [
"[Integer reply](/docs/reference/protocol-spec#integers): the length of the list after the push operation."
],
"LRANGE": [
"[Array reply](/docs/reference/protocol-spec#arrays): a list of elements in the specified range, or an empty array if the key doesn't exist."
],
"LREM": [
"[Integer reply](/docs/reference/protocol-spec#integers): the number of removed elements."
],
"LSET": [
"[Simple string reply](/docs/reference/protocol-spec#simple-strings): `OK`."
],
"LTRIM": [
"[Simple string reply](/docs/reference/protocol-spec#simple-strings): `OK`."
],
"MEMORY": [],
"MEMORY DOCTOR": [
"[Bulk string reply](/docs/reference/protocol-spec#bulk-strings): a memory problems report."
],
"MEMORY HELP": [
"[Array reply](/docs/reference/protocol-spec#arrays): a list of sub-commands and their descriptions"
],
"MEMORY MALLOC-STATS": [
"[Bulk string reply](/docs/reference/protocol-spec#bulk-strings): the memory allocator's internal statistics report"
],
"MEMORY PURGE": [
"[Simple string reply](/docs/reference/protocol-spec#simple-strings): `OK`."
],
"MEMORY STATS": [
"[Array reply](/docs/reference/protocol-spec#arrays): a nested list of memory usage metrics and their values."
],
"MEMORY USAGE": [
"One of the following:",
"* [Integer reply](/docs/reference/protocol-spec#integers): the memory usage in bytes.",
"* [Nil reply](/docs/reference/protocol-spec#bulk-strings): if the key does not exist."
],
"MGET": [
"[Array reply](/docs/reference/protocol-spec#arrays): a list of values at the specified keys."
],
"MIGRATE": [
"One of the following:",
"* [Simple string reply](/docs/reference/protocol-spec#simple-strings): `OK` on success.",
"* [Simple string reply](/docs/reference/protocol-spec#simple-strings): `NOKEY` when no keys were found in the source instance."
],
"MODULE": [],
"MODULE HELP": [
"[Array reply](/docs/reference/protocol-spec#arrays): a list of sub-commands and their descriptions."
],
"MODULE LIST": [
"[Array reply](/docs/reference/protocol-spec#arrays): list of loaded modules. Each element in the list represents a represents a module, and is in itself a list of property names and their values. The following properties is reported for each loaded module:",
"* name: the name of the module.",
"* ver: the version of the module."
],
"MODULE LOAD": [
"[Simple string reply](/docs/reference/protocol-spec#simple-strings): `OK` if the module was loaded."
],
"MODULE LOADEX": [
"[Simple string reply](/docs/reference/protocol-spec#simple-strings): `OK` if the module was loaded."
],
"MODULE UNLOAD": [
"[Simple string reply](/docs/reference/protocol-spec#simple-strings): `OK` if the module was unloaded."
],
"MONITOR": [
"**Non-standard return value**. Dumps the received commands in an infinite flow."
],
"MOVE": [
"One of the following:",
"* [Integer reply](/docs/reference/protocol-spec#integers): `1` if _key_ was moved.",
"* [Integer reply](/docs/reference/protocol-spec#integers): `0` if _key_ wasn't moved."
],
"MSET": [
"[Simple string reply](/docs/reference/protocol-spec#simple-strings): always `OK` because `MSET` can't fail."
],
"MSETNX": [
"One of the following:",
"* [Integer reply](/docs/reference/protocol-spec#integers): `0` if no key was set (at least one key already existed).",
"* [Integer reply](/docs/reference/protocol-spec#integers): `1` if all the keys were set."
],
"MULTI": [
"[Simple string reply](/docs/reference/protocol-spec#simple-strings): `OK`."
],
"OBJECT": [],
"OBJECT ENCODING": [
"One of the following:",
"* [Nil reply](/docs/reference/protocol-spec#bulk-strings): if the key doesn't exist.",
"* [Bulk string reply](/docs/reference/protocol-spec#bulk-strings): the encoding of the object."
],
"OBJECT FREQ": [
"One of the following:",
"[Integer reply](/docs/reference/protocol-spec#integers): the counter's value.",
"[Nil reply](/docs/reference/protocol-spec#bulk-strings): if _key_ doesn't exist."
],
"OBJECT HELP": [
"[Array reply](/docs/reference/protocol-spec#arrays): a list of sub-commands and their descriptions"
],
"OBJECT IDLETIME": [
"One of the following:",
"[Integer reply](/docs/reference/protocol-spec#integers): the idle time in seconds.",
"[Nil reply](/docs/reference/protocol-spec#bulk-strings): if _key_ doesn't exist."
],
"OBJECT REFCOUNT": [
"One of the following:",
"[Integer reply](/docs/reference/protocol-spec#integers): the number of references.",
"[Nil reply](/docs/reference/protocol-spec#bulk-strings): if _key_ doesn't exist."
],
"PERSIST": [
"One of the following:",
"* [Integer reply](/docs/reference/protocol-spec#integers): `0` if _key_ does not exist or does not have an associated timeout.",
"* [Integer reply](/docs/reference/protocol-spec#integers): `1` if the timeout has been removed."
],
"PEXPIRE": [
"One of the following:",
"* [Integer reply](/docs/reference/protocol-spec#integers): `0`if the timeout was not set. For example, if the key doesn't exist, or the operation skipped because of the provided arguments.",
"* [Integer reply](/docs/reference/protocol-spec#integers): `1` if the timeout was set."
],
"PEXPIREAT": [
"One of the following:",
"* [Integer reply](/docs/reference/protocol-spec#integers): `1` if the timeout was set.",
"* [Integer reply](/docs/reference/protocol-spec#integers): `0` if the timeout was not set. For example, if the key doesn't exist, or the operation was skipped due to the provided arguments."
],
"PEXPIRETIME": [
"One of the following:",
"* [Integer reply](/docs/reference/protocol-spec#integers): Expiration Unix timestamp in milliseconds.",
"* [Integer reply](/docs/reference/protocol-spec#integers): `-1` if the key exists but has no associated expiration time.",
"* [Integer reply](/docs/reference/protocol-spec#integers): `-2` if the key does not exist."
],
"PFADD": [
"One of the following:",
"* [Integer reply](/docs/reference/protocol-spec#integers): `1` if at least one HyperLogLog internal register was altered.",
"* [Integer reply](/docs/reference/protocol-spec#integers): `0` if no HyperLogLog internal registers were altered."
],
"PFCOUNT": [
"[Integer reply](/docs/reference/protocol-spec#integers): the approximated number of unique elements observed via `PFADD`."
],
"PFDEBUG": [],
"PFMERGE": [
"[Simple string reply](/docs/reference/protocol-spec#simple-strings): `OK`."
],
"PFSELFTEST": [
"[Simple string reply](/docs/reference/protocol-spec#simple-strings): `OK`."
],
"PING": [
"Any of the following:",
"* [Simple string reply](/docs/reference/protocol-spec#simple-strings): `PONG` when no argument is provided.",
"* [Bulk string reply](/docs/reference/protocol-spec#bulk-strings): the provided argument."
],
"PSETEX": [
"[Simple string reply](/docs/reference/protocol-spec#simple-strings): `OK`."
],
"PSUBSCRIBE": [
"When successful, this command doesn't return anything. Instead, for each pattern, one message with the first element being the string `psubscribe` is pushed as a confirmation that the command succeeded."
],
"PSYNC": [
"**Non-standard return value**, a bulk transfer of the data followed by `PING` and write requests from the master."
],
"PTTL": [
"One of the following:",
"* [Integer reply](/docs/reference/protocol-spec#integers): TTL in milliseconds.",
"* [Integer reply](/docs/reference/protocol-spec#integers): `-1` if the key exists but has no associated expiration.",
"* [Integer reply](/docs/reference/protocol-spec#integers): `-2` if the key does not exist."
],
"PUBLISH": [
"[Integer reply](/docs/reference/protocol-spec#integers): the number of clients that received the message. Note that in a Redis Cluster, only clients that are connected to the same node as the publishing client are included in the count."
],
"PUBSUB": [],
"PUBSUB CHANNELS": [
"[Array reply](/docs/reference/protocol-spec#arrays): a list of active channels, optionally matching the specified pattern."
],
"PUBSUB HELP": [
"[Array reply](/docs/reference/protocol-spec#arrays): a list of sub-commands and their descriptions."
],
"PUBSUB NUMPAT": [
"[Integer reply](/docs/reference/protocol-spec#integers): the number of patterns all the clients are subscribed to."
],
"PUBSUB NUMSUB": [
"[Array reply](/docs/reference/protocol-spec#arrays): the number of subscribers per channel, each even element (including the 0th) is channel name, each odd element is the number of subscribers"
],
"PUBSUB SHARDCHANNELS": [
"[Array reply](/docs/reference/protocol-spec#arrays): a list of active channels, optionally matching the specified pattern."
],
"PUBSUB SHARDNUMSUB": [
"[Array reply](/docs/reference/protocol-spec#arrays): the number of subscribers per shard channel, each even element (including the 0th) is channel name, each odd element is the number of subscribers."
],
"PUNSUBSCRIBE": [
"When successful, this command doesn't return anything. Instead, for each pattern, one message with the first element being the string `punsubscribe` is pushed as a confirmation that the command succeeded."
],
"QUIT": [
"[Simple string reply](/docs/reference/protocol-spec#simple-strings): OK."
],
"RANDOMKEY": [
"One of the following:",
"* [Nil reply](/docs/reference/protocol-spec#bulk-strings): when the database is empty.",
"* [Bulk string reply](/docs/reference/protocol-spec#bulk-strings): a random key in database."
],
"READONLY": [
"[Simple string reply](/docs/reference/protocol-spec#simple-strings): `OK`."
],
"READWRITE": [
"[Simple string reply](/docs/reference/protocol-spec#simple-strings): `OK`."
],
"RENAME": [
"[Simple string reply](/docs/reference/protocol-spec#simple-strings): `OK`."
],
"RENAMENX": [
"One of the following:",
"* [Integer reply](/docs/reference/protocol-spec#integers): `1` if _key_ was renamed to _newkey_.",
"* [Integer reply](/docs/reference/protocol-spec#integers): `0` if _newkey_ already exists."
],
"REPLCONF": [
"[Simple string reply](/docs/reference/protocol-spec#simple-strings): `OK`."
],
"REPLICAOF": [
"[Simple string reply](/docs/reference/protocol-spec#simple-strings): `OK`."
],
"RESET": [
"[Simple string reply](/docs/reference/protocol-spec#simple-strings): `RESET`."
],
"RESTORE": [
"[Simple string reply](/docs/reference/protocol-spec#simple-strings): `OK`."
],
"RESTORE-ASKING": [
"[Simple string reply](/docs/reference/protocol-spec#simple-strings): `OK`."
],
"ROLE": [
"[Array reply](/docs/reference/protocol-spec#arrays): where the first element is one of `master`, `slave`, or `sentinel`, and the additional elements are role-specific as illustrated above."
],
"RPOP": [
"One of the following:",
"* [Nil reply](/docs/reference/protocol-spec#bulk-strings): if the key does not exist.",
"* [Bulk string reply](/docs/reference/protocol-spec#bulk-strings): when called without the _count_ argument, the value of the last element.",
"* [Array reply](/docs/reference/protocol-spec#arrays): when called with the _count_ argument, a list of popped elements."
],
"RPOPLPUSH": [
"One of the following:",
"* [Bulk string reply](/docs/reference/protocol-spec#bulk-strings): the element being popped and pushed.",
"* [Nil reply](/docs/reference/protocol-spec#bulk-strings): if the source list is empty."
],
"RPUSH": [
"[Integer reply](/docs/reference/protocol-spec#integers): the length of the list after the push operation."
],
"RPUSHX": [
"[Integer reply](/docs/reference/protocol-spec#integers): the length of the list after the push operation."
],
"SADD": [
"[Integer reply](/docs/reference/protocol-spec#integers): the number of elements that were added to the set, not including all the elements already present in the set."
],
"SAVE": [
"[Simple string reply](/docs/reference/protocol-spec#simple-strings): `OK`."
],
"SCAN": [
"[Array reply](/docs/reference/protocol-spec#arrays): specifically, an array with two elements.",
"* The first element is a [Bulk string reply](/docs/reference/protocol-spec#bulk-strings) that represents an unsigned 64-bit number, the cursor.",
"* The second element is an [Array reply](/docs/reference/protocol-spec#arrays) with the names of scanned keys."
],
"SCARD": [
"[Integer reply](/docs/reference/protocol-spec#integers): the cardinality (number of elements) of the set, or `0` if the key does not exist."
],
"SCRIPT": [],
"SCRIPT DEBUG": [
"[Simple string reply](/docs/reference/protocol-spec#simple-strings): `OK`."
],
"SCRIPT EXISTS": [
"[Array reply](/docs/reference/protocol-spec#arrays): an array of integers that correspond to the specified SHA1 digest arguments."
],
"SCRIPT FLUSH": [
"[Simple string reply](/docs/reference/protocol-spec#simple-strings): `OK`."
],
"SCRIPT HELP": [
"[Array reply](/docs/reference/protocol-spec#arrays): a list of sub-commands and their descriptions."
],
"SCRIPT KILL": [
"[Simple string reply](/docs/reference/protocol-spec#simple-strings): `OK`."
],
"SCRIPT LOAD": [
"[Bulk string reply](/docs/reference/protocol-spec#bulk-strings): the SHA1 digest of the script added into the script cache."
],
"SDIFF": [
"[Array reply](/docs/reference/protocol-spec#arrays): a list with members of the resulting set."
],
"SDIFFSTORE": [
"[Integer reply](/docs/reference/protocol-spec#integers): the number of elements in the resulting set."
],
"SELECT": [
"[Simple string reply](/docs/reference/protocol-spec#simple-strings): `OK`."
],
"SET": [
"Any of the following:",
"* [Nil reply](/docs/reference/protocol-spec#bulk-strings): `GET` not given: Operation was aborted (conflict with one of the `XX`/`NX` options).",
"* [Simple string reply](/docs/reference/protocol-spec#simple-strings): `OK`. `GET` not given: The key was set.",
"* [Nil reply](/docs/reference/protocol-spec#bulk-strings): `GET` given: The key didn't exist before the `SET`.",
"* [Bulk string reply](/docs/reference/protocol-spec#bulk-strings): `GET` given: The previous value of the key."
],
"SETBIT": [
"[Integer reply](/docs/reference/protocol-spec#integers): the original bit value stored at _offset_."
],
"SETEX": [
"[Simple string reply](/docs/reference/protocol-spec#simple-strings): `OK`."
],
"SETNX": [
"One of the following:",
"* [Integer reply](/docs/reference/protocol-spec#integers): `0` if the key was not set.",
"* [Integer reply](/docs/reference/protocol-spec#integers): `1` if the key was set."
],
"SETRANGE": [
"[Integer reply](/docs/reference/protocol-spec#integers): the length of the string after it was modified by the command."
],
"SHUTDOWN": [
"[Simple string reply](/docs/reference/protocol-spec#simple-strings): `OK` if _ABORT_ was specified and shutdown was aborted. On successful shutdown, nothing is returned because the server quits and the connection is closed. On failure, an error is returned."
],
"SINTER": [
"[Array reply](/docs/reference/protocol-spec#arrays): a list with the members of the resulting set."
],
"SINTERCARD": [
"[Integer reply](/docs/reference/protocol-spec#integers): the number of elements in the resulting intersection."
],
"SINTERSTORE": [
"[Integer reply](/docs/reference/protocol-spec#integers): the number of elements in the resulting set."
],
"SISMEMBER": [