redis-server 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/LICENSE +38 -0
- data/README.md +33 -0
- data/bin/redis +114 -0
- data/redis/Makefile +5 -0
- data/redis/extconf.rb +3 -0
- data/redis/redis-2.2.11/00-RELEASENOTES +199 -0
- data/redis/redis-2.2.11/BUGS +1 -0
- data/redis/redis-2.2.11/CONTRIBUTING +13 -0
- data/redis/redis-2.2.11/COPYING +10 -0
- data/redis/redis-2.2.11/Changelog +1032 -0
- data/redis/redis-2.2.11/INSTALL +30 -0
- data/redis/redis-2.2.11/Makefile +22 -0
- data/redis/redis-2.2.11/README +83 -0
- data/redis/redis-2.2.11/TODO +4 -0
- data/redis/redis-2.2.11/client-libraries/README +11 -0
- data/redis/redis-2.2.11/deps/hiredis/COPYING +10 -0
- data/redis/redis-2.2.11/deps/hiredis/Makefile +115 -0
- data/redis/redis-2.2.11/deps/hiredis/README.md +311 -0
- data/redis/redis-2.2.11/deps/hiredis/TODO +2 -0
- data/redis/redis-2.2.11/deps/hiredis/adapters/ae.h +95 -0
- data/redis/redis-2.2.11/deps/hiredis/adapters/libev.h +113 -0
- data/redis/redis-2.2.11/deps/hiredis/adapters/libevent.h +76 -0
- data/redis/redis-2.2.11/deps/hiredis/async.c +321 -0
- data/redis/redis-2.2.11/deps/hiredis/async.h +112 -0
- data/redis/redis-2.2.11/deps/hiredis/example-ae.c +53 -0
- data/redis/redis-2.2.11/deps/hiredis/example-libev.c +47 -0
- data/redis/redis-2.2.11/deps/hiredis/example-libevent.c +48 -0
- data/redis/redis-2.2.11/deps/hiredis/example.c +67 -0
- data/redis/redis-2.2.11/deps/hiredis/fmacros.h +15 -0
- data/redis/redis-2.2.11/deps/hiredis/hiredis.c +1058 -0
- data/redis/redis-2.2.11/deps/hiredis/hiredis.h +170 -0
- data/redis/redis-2.2.11/deps/hiredis/net.c +170 -0
- data/redis/redis-2.2.11/deps/hiredis/net.h +43 -0
- data/redis/redis-2.2.11/deps/hiredis/sds.c +479 -0
- data/redis/redis-2.2.11/deps/hiredis/sds.h +77 -0
- data/redis/redis-2.2.11/deps/hiredis/test.c +479 -0
- data/redis/redis-2.2.11/deps/hiredis/util.h +40 -0
- data/redis/redis-2.2.11/deps/linenoise/Makefile +10 -0
- data/redis/redis-2.2.11/deps/linenoise/README.markdown +45 -0
- data/redis/redis-2.2.11/deps/linenoise/example.c +27 -0
- data/redis/redis-2.2.11/deps/linenoise/linenoise.c +609 -0
- data/redis/redis-2.2.11/deps/linenoise/linenoise.h +55 -0
- data/redis/redis-2.2.11/design-documents/REDIS-CLUSTER +214 -0
- data/redis/redis-2.2.11/design-documents/REDIS-CLUSTER-2 +343 -0
- data/redis/redis-2.2.11/doc/AppendCommand.html +48 -0
- data/redis/redis-2.2.11/doc/AppendOnlyFileHowto.html +41 -0
- data/redis/redis-2.2.11/doc/AuthCommand.html +39 -0
- data/redis/redis-2.2.11/doc/Benchmarks.html +129 -0
- data/redis/redis-2.2.11/doc/BgrewriteaofCommand.html +41 -0
- data/redis/redis-2.2.11/doc/BgsaveCommand.html +39 -0
- data/redis/redis-2.2.11/doc/BlpopCommand.html +51 -0
- data/redis/redis-2.2.11/doc/BrpoplpushCommand.html +39 -0
- data/redis/redis-2.2.11/doc/CommandReference.html +47 -0
- data/redis/redis-2.2.11/doc/Comparisons.html +42 -0
- data/redis/redis-2.2.11/doc/ConfigCommand.html +76 -0
- data/redis/redis-2.2.11/doc/Configuration.html +38 -0
- data/redis/redis-2.2.11/doc/ConnectionHandlingSidebar.html +36 -0
- data/redis/redis-2.2.11/doc/ControlCommandsSidebar.html +36 -0
- data/redis/redis-2.2.11/doc/Credits.html +38 -0
- data/redis/redis-2.2.11/doc/DbsizeCommand.html +38 -0
- data/redis/redis-2.2.11/doc/DelCommand.html +41 -0
- data/redis/redis-2.2.11/doc/DesignPatterns.html +37 -0
- data/redis/redis-2.2.11/doc/EventLibray.html +44 -0
- data/redis/redis-2.2.11/doc/ExistsCommand.html +42 -0
- data/redis/redis-2.2.11/doc/ExpireCommand.html +96 -0
- data/redis/redis-2.2.11/doc/FAQ.html +70 -0
- data/redis/redis-2.2.11/doc/Features.html +38 -0
- data/redis/redis-2.2.11/doc/FlushallCommand.html +39 -0
- data/redis/redis-2.2.11/doc/FlushdbCommand.html +39 -0
- data/redis/redis-2.2.11/doc/FromSqlToDataStructures.html +37 -0
- data/redis/redis-2.2.11/doc/GenericCommandsSidebar.html +36 -0
- data/redis/redis-2.2.11/doc/GetCommand.html +39 -0
- data/redis/redis-2.2.11/doc/GetbitCommand.html +39 -0
- data/redis/redis-2.2.11/doc/GetsetCommand.html +38 -0
- data/redis/redis-2.2.11/doc/HackingStrings.html +83 -0
- data/redis/redis-2.2.11/doc/HashCommandsSidebar.html +36 -0
- data/redis/redis-2.2.11/doc/Hashes.html +37 -0
- data/redis/redis-2.2.11/doc/HdelCommand.html +39 -0
- data/redis/redis-2.2.11/doc/HexistsCommand.html +39 -0
- data/redis/redis-2.2.11/doc/HgetCommand.html +39 -0
- data/redis/redis-2.2.11/doc/HgetallCommand.html +40 -0
- data/redis/redis-2.2.11/doc/HincrbyCommand.html +45 -0
- data/redis/redis-2.2.11/doc/HlenCommand.html +38 -0
- data/redis/redis-2.2.11/doc/HmgetCommand.html +40 -0
- data/redis/redis-2.2.11/doc/HmsetCommand.html +40 -0
- data/redis/redis-2.2.11/doc/HsetCommand.html +40 -0
- data/redis/redis-2.2.11/doc/HsetnxCommand.html +41 -0
- data/redis/redis-2.2.11/doc/IncrCommand.html +43 -0
- data/redis/redis-2.2.11/doc/InfoCommand.html +48 -0
- data/redis/redis-2.2.11/doc/IntroductionToRedisDataTypes.html +152 -0
- data/redis/redis-2.2.11/doc/KeysCommand.html +43 -0
- data/redis/redis-2.2.11/doc/LastsaveCommand.html +39 -0
- data/redis/redis-2.2.11/doc/LindexCommand.html +40 -0
- data/redis/redis-2.2.11/doc/ListCommandsSidebar.html +36 -0
- data/redis/redis-2.2.11/doc/Lists.html +42 -0
- data/redis/redis-2.2.11/doc/LlenCommand.html +41 -0
- data/redis/redis-2.2.11/doc/LpopCommand.html +41 -0
- data/redis/redis-2.2.11/doc/LrangeCommand.html +47 -0
- data/redis/redis-2.2.11/doc/LremCommand.html +41 -0
- data/redis/redis-2.2.11/doc/LsetCommand.html +38 -0
- data/redis/redis-2.2.11/doc/LtrimCommand.html +47 -0
- data/redis/redis-2.2.11/doc/MgetCommand.html +52 -0
- data/redis/redis-2.2.11/doc/MonitorCommand.html +63 -0
- data/redis/redis-2.2.11/doc/MoveCommand.html +42 -0
- data/redis/redis-2.2.11/doc/MsetCommand.html +44 -0
- data/redis/redis-2.2.11/doc/MultiExecCommand.html +166 -0
- data/redis/redis-2.2.11/doc/NonexistentCommands.html +51 -0
- data/redis/redis-2.2.11/doc/ObjectHashMappers.html +39 -0
- data/redis/redis-2.2.11/doc/Pipelining.html +36 -0
- data/redis/redis-2.2.11/doc/ProgrammingExamples.html +38 -0
- data/redis/redis-2.2.11/doc/ProtocolSpecification.html +137 -0
- data/redis/redis-2.2.11/doc/PublishSubscribe.html +115 -0
- data/redis/redis-2.2.11/doc/QuickStart.html +68 -0
- data/redis/redis-2.2.11/doc/QuitCommand.html +38 -0
- data/redis/redis-2.2.11/doc/README.html +119 -0
- data/redis/redis-2.2.11/doc/RandomkeyCommand.html +39 -0
- data/redis/redis-2.2.11/doc/Redis0100ChangeLog.html +67 -0
- data/redis/redis-2.2.11/doc/Redis0900ChangeLog.html +56 -0
- data/redis/redis-2.2.11/doc/RedisBigData.html +61 -0
- data/redis/redis-2.2.11/doc/RedisCLI.html +37 -0
- data/redis/redis-2.2.11/doc/RedisEventLibrary.html +70 -0
- data/redis/redis-2.2.11/doc/RedisGuides.html +37 -0
- data/redis/redis-2.2.11/doc/RedisInternals.html +38 -0
- data/redis/redis-2.2.11/doc/RedisPipelining.html +93 -0
- data/redis/redis-2.2.11/doc/RedisStatus.html +56 -0
- data/redis/redis-2.2.11/doc/Redis_1_2_0_Changelog.html +40 -0
- data/redis/redis-2.2.11/doc/Redis_2_0_0_Changelog.html +62 -0
- data/redis/redis-2.2.11/doc/Redis_2_0_Whats_new.html +59 -0
- data/redis/redis-2.2.11/doc/RenameCommand.html +39 -0
- data/redis/redis-2.2.11/doc/RenamenxCommand.html +42 -0
- data/redis/redis-2.2.11/doc/ReplicationHowto.html +43 -0
- data/redis/redis-2.2.11/doc/ReplyTypes.html +42 -0
- data/redis/redis-2.2.11/doc/RoadMap.html +38 -0
- data/redis/redis-2.2.11/doc/RpoplpushCommand.html +44 -0
- data/redis/redis-2.2.11/doc/RpushCommand.html +40 -0
- data/redis/redis-2.2.11/doc/SaddCommand.html +41 -0
- data/redis/redis-2.2.11/doc/SaveCommand.html +39 -0
- data/redis/redis-2.2.11/doc/ScardCommand.html +41 -0
- data/redis/redis-2.2.11/doc/SdiffCommand.html +45 -0
- data/redis/redis-2.2.11/doc/SdiffstoreCommand.html +38 -0
- data/redis/redis-2.2.11/doc/SelectCommand.html +39 -0
- data/redis/redis-2.2.11/doc/SetCommand.html +39 -0
- data/redis/redis-2.2.11/doc/SetCommandsSidebar.html +36 -0
- data/redis/redis-2.2.11/doc/SetbitCommand.html +45 -0
- data/redis/redis-2.2.11/doc/SetexCommand.html +42 -0
- data/redis/redis-2.2.11/doc/SetnxCommand.html +51 -0
- data/redis/redis-2.2.11/doc/SetrangeCommand.html +58 -0
- data/redis/redis-2.2.11/doc/Sets.html +36 -0
- data/redis/redis-2.2.11/doc/ShutdownCommand.html +39 -0
- data/redis/redis-2.2.11/doc/SideBar.html +36 -0
- data/redis/redis-2.2.11/doc/SinterCommand.html +40 -0
- data/redis/redis-2.2.11/doc/SinterstoreCommand.html +39 -0
- data/redis/redis-2.2.11/doc/SismemberCommand.html +42 -0
- data/redis/redis-2.2.11/doc/SlaveofCommand.html +41 -0
- data/redis/redis-2.2.11/doc/SmembersCommand.html +38 -0
- data/redis/redis-2.2.11/doc/SmoveCommand.html +44 -0
- data/redis/redis-2.2.11/doc/SortCommand.html +75 -0
- data/redis/redis-2.2.11/doc/SortedSetCommandsSidebar.html +36 -0
- data/redis/redis-2.2.11/doc/SortedSets.html +36 -0
- data/redis/redis-2.2.11/doc/Speed.html +38 -0
- data/redis/redis-2.2.11/doc/SponsorshipHistory.html +38 -0
- data/redis/redis-2.2.11/doc/SpopCommand.html +40 -0
- data/redis/redis-2.2.11/doc/SrandmemberCommand.html +40 -0
- data/redis/redis-2.2.11/doc/SremCommand.html +42 -0
- data/redis/redis-2.2.11/doc/StringCommandsSidebar.html +36 -0
- data/redis/redis-2.2.11/doc/Strings.html +37 -0
- data/redis/redis-2.2.11/doc/StrlenCommand.html +39 -0
- data/redis/redis-2.2.11/doc/SubstrCommand.html +52 -0
- data/redis/redis-2.2.11/doc/SunionCommand.html +40 -0
- data/redis/redis-2.2.11/doc/SunionstoreCommand.html +38 -0
- data/redis/redis-2.2.11/doc/SupportedLanguages.html +60 -0
- data/redis/redis-2.2.11/doc/SupportedPlatforms.html +37 -0
- data/redis/redis-2.2.11/doc/TemplateCommand.html +38 -0
- data/redis/redis-2.2.11/doc/TtlCommand.html +38 -0
- data/redis/redis-2.2.11/doc/TwitterAlikeExample.html +250 -0
- data/redis/redis-2.2.11/doc/TypeCommand.html +46 -0
- data/redis/redis-2.2.11/doc/UnstableSource.html +39 -0
- data/redis/redis-2.2.11/doc/VirtualMemorySpecification.html +156 -0
- data/redis/redis-2.2.11/doc/VirtualMemoryUserGuide.html +66 -0
- data/redis/redis-2.2.11/doc/ZaddCommand.html +43 -0
- data/redis/redis-2.2.11/doc/ZcardCommand.html +41 -0
- data/redis/redis-2.2.11/doc/ZincrbyCommand.html +42 -0
- data/redis/redis-2.2.11/doc/ZrangeCommand.html +42 -0
- data/redis/redis-2.2.11/doc/ZrangebyscoreCommand.html +77 -0
- data/redis/redis-2.2.11/doc/ZrankCommand.html +43 -0
- data/redis/redis-2.2.11/doc/ZremCommand.html +42 -0
- data/redis/redis-2.2.11/doc/ZremrangebyrankCommand.html +39 -0
- data/redis/redis-2.2.11/doc/ZremrangebyscoreCommand.html +39 -0
- data/redis/redis-2.2.11/doc/ZscoreCommand.html +41 -0
- data/redis/redis-2.2.11/doc/ZunionCommand.html +42 -0
- data/redis/redis-2.2.11/doc/ZunionstoreCommand.html +43 -0
- data/redis/redis-2.2.11/doc/index.html +43 -0
- data/redis/redis-2.2.11/doc/redis.png +0 -0
- data/redis/redis-2.2.11/doc/style.css +25 -0
- data/redis/redis-2.2.11/redis.conf +417 -0
- data/redis/redis-2.2.11/src/Makefile +177 -0
- data/redis/redis-2.2.11/src/adlist.c +325 -0
- data/redis/redis-2.2.11/src/adlist.h +92 -0
- data/redis/redis-2.2.11/src/ae.c +390 -0
- data/redis/redis-2.2.11/src/ae.h +117 -0
- data/redis/redis-2.2.11/src/ae_epoll.c +91 -0
- data/redis/redis-2.2.11/src/ae_kqueue.c +93 -0
- data/redis/redis-2.2.11/src/ae_select.c +72 -0
- data/redis/redis-2.2.11/src/anet.c +347 -0
- data/redis/redis-2.2.11/src/anet.h +57 -0
- data/redis/redis-2.2.11/src/aof.c +675 -0
- data/redis/redis-2.2.11/src/config.c +627 -0
- data/redis/redis-2.2.11/src/config.h +64 -0
- data/redis/redis-2.2.11/src/db.c +543 -0
- data/redis/redis-2.2.11/src/debug.c +314 -0
- data/redis/redis-2.2.11/src/dict.c +721 -0
- data/redis/redis-2.2.11/src/dict.h +156 -0
- data/redis/redis-2.2.11/src/fmacros.h +15 -0
- data/redis/redis-2.2.11/src/help.h +638 -0
- data/redis/redis-2.2.11/src/intset.c +422 -0
- data/redis/redis-2.2.11/src/intset.h +19 -0
- data/redis/redis-2.2.11/src/lzf.h +100 -0
- data/redis/redis-2.2.11/src/lzfP.h +159 -0
- data/redis/redis-2.2.11/src/lzf_c.c +295 -0
- data/redis/redis-2.2.11/src/lzf_d.c +150 -0
- data/redis/redis-2.2.11/src/mkreleasehdr.sh +9 -0
- data/redis/redis-2.2.11/src/multi.c +268 -0
- data/redis/redis-2.2.11/src/networking.c +899 -0
- data/redis/redis-2.2.11/src/object.c +484 -0
- data/redis/redis-2.2.11/src/pqsort.c +197 -0
- data/redis/redis-2.2.11/src/pqsort.h +15 -0
- data/redis/redis-2.2.11/src/pubsub.c +267 -0
- data/redis/redis-2.2.11/src/rdb.c +1020 -0
- data/redis/redis-2.2.11/src/redis-benchmark.c +530 -0
- data/redis/redis-2.2.11/src/redis-check-aof.c +185 -0
- data/redis/redis-2.2.11/src/redis-check-dump.c +681 -0
- data/redis/redis-2.2.11/src/redis-cli.c +773 -0
- data/redis/redis-2.2.11/src/redis.c +1677 -0
- data/redis/redis-2.2.11/src/redis.h +1022 -0
- data/redis/redis-2.2.11/src/release.c +13 -0
- data/redis/redis-2.2.11/src/replication.c +557 -0
- data/redis/redis-2.2.11/src/sds.c +639 -0
- data/redis/redis-2.2.11/src/sds.h +78 -0
- data/redis/redis-2.2.11/src/sha1.c +276 -0
- data/redis/redis-2.2.11/src/sha1.h +17 -0
- data/redis/redis-2.2.11/src/solarisfixes.h +22 -0
- data/redis/redis-2.2.11/src/sort.c +389 -0
- data/redis/redis-2.2.11/src/syncio.c +154 -0
- data/redis/redis-2.2.11/src/t_hash.c +476 -0
- data/redis/redis-2.2.11/src/t_list.c +986 -0
- data/redis/redis-2.2.11/src/t_set.c +610 -0
- data/redis/redis-2.2.11/src/t_string.c +438 -0
- data/redis/redis-2.2.11/src/t_zset.c +1084 -0
- data/redis/redis-2.2.11/src/testhelp.h +54 -0
- data/redis/redis-2.2.11/src/util.c +243 -0
- data/redis/redis-2.2.11/src/valgrind.sup +5 -0
- data/redis/redis-2.2.11/src/version.h +1 -0
- data/redis/redis-2.2.11/src/vm.c +1149 -0
- data/redis/redis-2.2.11/src/ziplist.c +1323 -0
- data/redis/redis-2.2.11/src/ziplist.h +15 -0
- data/redis/redis-2.2.11/src/zipmap.c +455 -0
- data/redis/redis-2.2.11/src/zipmap.h +48 -0
- data/redis/redis-2.2.11/src/zmalloc.c +278 -0
- data/redis/redis-2.2.11/src/zmalloc.h +47 -0
- data/redis/redis-2.2.11/tests/assets/default.conf +308 -0
- data/redis/redis-2.2.11/tests/integration/aof.tcl +104 -0
- data/redis/redis-2.2.11/tests/integration/redis-cli.tcl +208 -0
- data/redis/redis-2.2.11/tests/integration/replication.tcl +98 -0
- data/redis/redis-2.2.11/tests/support/redis.tcl +241 -0
- data/redis/redis-2.2.11/tests/support/server.tcl +294 -0
- data/redis/redis-2.2.11/tests/support/test.tcl +190 -0
- data/redis/redis-2.2.11/tests/support/tmpfile.tcl +15 -0
- data/redis/redis-2.2.11/tests/support/util.tcl +296 -0
- data/redis/redis-2.2.11/tests/test_helper.tcl +221 -0
- data/redis/redis-2.2.11/tests/unit/auth.tcl +15 -0
- data/redis/redis-2.2.11/tests/unit/basic.tcl +616 -0
- data/redis/redis-2.2.11/tests/unit/cas.tcl +135 -0
- data/redis/redis-2.2.11/tests/unit/expire.tcl +74 -0
- data/redis/redis-2.2.11/tests/unit/other.tcl +240 -0
- data/redis/redis-2.2.11/tests/unit/printver.tcl +6 -0
- data/redis/redis-2.2.11/tests/unit/protocol.tcl +62 -0
- data/redis/redis-2.2.11/tests/unit/pubsub.tcl +195 -0
- data/redis/redis-2.2.11/tests/unit/quit.tcl +40 -0
- data/redis/redis-2.2.11/tests/unit/sort.tcl +189 -0
- data/redis/redis-2.2.11/tests/unit/type/hash.tcl +300 -0
- data/redis/redis-2.2.11/tests/unit/type/list.tcl +819 -0
- data/redis/redis-2.2.11/tests/unit/type/set.tcl +334 -0
- data/redis/redis-2.2.11/tests/unit/type/zset.tcl +587 -0
- data/redis/redis-2.2.11/utils/build-static-symbols.tcl +22 -0
- data/redis/redis-2.2.11/utils/generate-command-help.rb +112 -0
- data/redis/redis-2.2.11/utils/mktarball.sh +13 -0
- data/redis/redis-2.2.11/utils/redis-copy.rb +78 -0
- data/redis/redis-2.2.11/utils/redis-sha1.rb +52 -0
- data/redis/redis-2.2.11/utils/redis_init_script +42 -0
- metadata +362 -0
@@ -0,0 +1,156 @@
|
|
1
|
+
/* Hash Tables Implementation.
|
2
|
+
*
|
3
|
+
* This file implements in memory hash tables with insert/del/replace/find/
|
4
|
+
* get-random-element operations. Hash tables will auto resize if needed
|
5
|
+
* tables of power of two in size are used, collisions are handled by
|
6
|
+
* chaining. See the source code for more information... :)
|
7
|
+
*
|
8
|
+
* Copyright (c) 2006-2010, Salvatore Sanfilippo <antirez at gmail dot com>
|
9
|
+
* All rights reserved.
|
10
|
+
*
|
11
|
+
* Redistribution and use in source and binary forms, with or without
|
12
|
+
* modification, are permitted provided that the following conditions are met:
|
13
|
+
*
|
14
|
+
* * Redistributions of source code must retain the above copyright notice,
|
15
|
+
* this list of conditions and the following disclaimer.
|
16
|
+
* * Redistributions in binary form must reproduce the above copyright
|
17
|
+
* notice, this list of conditions and the following disclaimer in the
|
18
|
+
* documentation and/or other materials provided with the distribution.
|
19
|
+
* * Neither the name of Redis nor the names of its contributors may be used
|
20
|
+
* to endorse or promote products derived from this software without
|
21
|
+
* specific prior written permission.
|
22
|
+
*
|
23
|
+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
24
|
+
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
25
|
+
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
26
|
+
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
27
|
+
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
28
|
+
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
29
|
+
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
30
|
+
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
31
|
+
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
32
|
+
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
33
|
+
* POSSIBILITY OF SUCH DAMAGE.
|
34
|
+
*/
|
35
|
+
|
36
|
+
#ifndef __DICT_H
|
37
|
+
#define __DICT_H
|
38
|
+
|
39
|
+
#define DICT_OK 0
|
40
|
+
#define DICT_ERR 1
|
41
|
+
|
42
|
+
/* Unused arguments generate annoying warnings... */
|
43
|
+
#define DICT_NOTUSED(V) ((void) V)
|
44
|
+
|
45
|
+
typedef struct dictEntry {
|
46
|
+
void *key;
|
47
|
+
void *val;
|
48
|
+
struct dictEntry *next;
|
49
|
+
} dictEntry;
|
50
|
+
|
51
|
+
typedef struct dictType {
|
52
|
+
unsigned int (*hashFunction)(const void *key);
|
53
|
+
void *(*keyDup)(void *privdata, const void *key);
|
54
|
+
void *(*valDup)(void *privdata, const void *obj);
|
55
|
+
int (*keyCompare)(void *privdata, const void *key1, const void *key2);
|
56
|
+
void (*keyDestructor)(void *privdata, void *key);
|
57
|
+
void (*valDestructor)(void *privdata, void *obj);
|
58
|
+
} dictType;
|
59
|
+
|
60
|
+
/* This is our hash table structure. Every dictionary has two of this as we
|
61
|
+
* implement incremental rehashing, for the old to the new table. */
|
62
|
+
typedef struct dictht {
|
63
|
+
dictEntry **table;
|
64
|
+
unsigned long size;
|
65
|
+
unsigned long sizemask;
|
66
|
+
unsigned long used;
|
67
|
+
} dictht;
|
68
|
+
|
69
|
+
typedef struct dict {
|
70
|
+
dictType *type;
|
71
|
+
void *privdata;
|
72
|
+
dictht ht[2];
|
73
|
+
int rehashidx; /* rehashing not in progress if rehashidx == -1 */
|
74
|
+
int iterators; /* number of iterators currently running */
|
75
|
+
} dict;
|
76
|
+
|
77
|
+
/* If safe is set to 1 this is a safe iteartor, that means, you can call
|
78
|
+
* dictAdd, dictFind, and other functions against the dictionary even while
|
79
|
+
* iterating. Otherwise it is a non safe iterator, and only dictNext()
|
80
|
+
* should be called while iterating. */
|
81
|
+
typedef struct dictIterator {
|
82
|
+
dict *d;
|
83
|
+
int table, index, safe;
|
84
|
+
dictEntry *entry, *nextEntry;
|
85
|
+
} dictIterator;
|
86
|
+
|
87
|
+
/* This is the initial size of every hash table */
|
88
|
+
#define DICT_HT_INITIAL_SIZE 4
|
89
|
+
|
90
|
+
/* ------------------------------- Macros ------------------------------------*/
|
91
|
+
#define dictFreeEntryVal(d, entry) \
|
92
|
+
if ((d)->type->valDestructor) \
|
93
|
+
(d)->type->valDestructor((d)->privdata, (entry)->val)
|
94
|
+
|
95
|
+
#define dictSetHashVal(d, entry, _val_) do { \
|
96
|
+
if ((d)->type->valDup) \
|
97
|
+
entry->val = (d)->type->valDup((d)->privdata, _val_); \
|
98
|
+
else \
|
99
|
+
entry->val = (_val_); \
|
100
|
+
} while(0)
|
101
|
+
|
102
|
+
#define dictFreeEntryKey(d, entry) \
|
103
|
+
if ((d)->type->keyDestructor) \
|
104
|
+
(d)->type->keyDestructor((d)->privdata, (entry)->key)
|
105
|
+
|
106
|
+
#define dictSetHashKey(d, entry, _key_) do { \
|
107
|
+
if ((d)->type->keyDup) \
|
108
|
+
entry->key = (d)->type->keyDup((d)->privdata, _key_); \
|
109
|
+
else \
|
110
|
+
entry->key = (_key_); \
|
111
|
+
} while(0)
|
112
|
+
|
113
|
+
#define dictCompareHashKeys(d, key1, key2) \
|
114
|
+
(((d)->type->keyCompare) ? \
|
115
|
+
(d)->type->keyCompare((d)->privdata, key1, key2) : \
|
116
|
+
(key1) == (key2))
|
117
|
+
|
118
|
+
#define dictHashKey(d, key) (d)->type->hashFunction(key)
|
119
|
+
|
120
|
+
#define dictGetEntryKey(he) ((he)->key)
|
121
|
+
#define dictGetEntryVal(he) ((he)->val)
|
122
|
+
#define dictSlots(d) ((d)->ht[0].size+(d)->ht[1].size)
|
123
|
+
#define dictSize(d) ((d)->ht[0].used+(d)->ht[1].used)
|
124
|
+
#define dictIsRehashing(ht) ((ht)->rehashidx != -1)
|
125
|
+
|
126
|
+
/* API */
|
127
|
+
dict *dictCreate(dictType *type, void *privDataPtr);
|
128
|
+
int dictExpand(dict *d, unsigned long size);
|
129
|
+
int dictAdd(dict *d, void *key, void *val);
|
130
|
+
int dictReplace(dict *d, void *key, void *val);
|
131
|
+
int dictDelete(dict *d, const void *key);
|
132
|
+
int dictDeleteNoFree(dict *d, const void *key);
|
133
|
+
void dictRelease(dict *d);
|
134
|
+
dictEntry * dictFind(dict *d, const void *key);
|
135
|
+
void *dictFetchValue(dict *d, const void *key);
|
136
|
+
int dictResize(dict *d);
|
137
|
+
dictIterator *dictGetIterator(dict *d);
|
138
|
+
dictIterator *dictGetSafeIterator(dict *d);
|
139
|
+
dictEntry *dictNext(dictIterator *iter);
|
140
|
+
void dictReleaseIterator(dictIterator *iter);
|
141
|
+
dictEntry *dictGetRandomKey(dict *d);
|
142
|
+
void dictPrintStats(dict *d);
|
143
|
+
unsigned int dictGenHashFunction(const unsigned char *buf, int len);
|
144
|
+
unsigned int dictGenCaseHashFunction(const unsigned char *buf, int len);
|
145
|
+
void dictEmpty(dict *d);
|
146
|
+
void dictEnableResize(void);
|
147
|
+
void dictDisableResize(void);
|
148
|
+
int dictRehash(dict *d, int n);
|
149
|
+
int dictRehashMilliseconds(dict *d, int ms);
|
150
|
+
|
151
|
+
/* Hash table types */
|
152
|
+
extern dictType dictTypeHeapStringCopyKey;
|
153
|
+
extern dictType dictTypeHeapStrings;
|
154
|
+
extern dictType dictTypeHeapStringCopyKeyValue;
|
155
|
+
|
156
|
+
#endif /* __DICT_H */
|
@@ -0,0 +1,638 @@
|
|
1
|
+
/* Automatically generated by generate-command-help.rb, do not edit. */
|
2
|
+
|
3
|
+
#ifndef __REDIS_HELP_H
|
4
|
+
#define __REDIS_HELP_H
|
5
|
+
|
6
|
+
static char *commandGroups[] = {
|
7
|
+
"generic",
|
8
|
+
"string",
|
9
|
+
"list",
|
10
|
+
"set",
|
11
|
+
"sorted_set",
|
12
|
+
"hash",
|
13
|
+
"pubsub",
|
14
|
+
"transactions",
|
15
|
+
"connection",
|
16
|
+
"server"
|
17
|
+
};
|
18
|
+
|
19
|
+
struct commandHelp {
|
20
|
+
char *name;
|
21
|
+
char *params;
|
22
|
+
char *summary;
|
23
|
+
int group;
|
24
|
+
char *since;
|
25
|
+
} commandHelp[] = {
|
26
|
+
{ "APPEND",
|
27
|
+
"key value",
|
28
|
+
"Append a value to a key",
|
29
|
+
1,
|
30
|
+
"1.3.3" },
|
31
|
+
{ "AUTH",
|
32
|
+
"password",
|
33
|
+
"Authenticate to the server",
|
34
|
+
8,
|
35
|
+
"0.08" },
|
36
|
+
{ "BGREWRITEAOF",
|
37
|
+
"-",
|
38
|
+
"Asynchronously rewrite the append-only file",
|
39
|
+
9,
|
40
|
+
"1.07" },
|
41
|
+
{ "BGSAVE",
|
42
|
+
"-",
|
43
|
+
"Asynchronously save the dataset to disk",
|
44
|
+
9,
|
45
|
+
"0.07" },
|
46
|
+
{ "BLPOP",
|
47
|
+
"key [key ...] timeout",
|
48
|
+
"Remove and get the first element in a list, or block until one is available",
|
49
|
+
2,
|
50
|
+
"1.3.1" },
|
51
|
+
{ "BRPOP",
|
52
|
+
"key [key ...] timeout",
|
53
|
+
"Remove and get the last element in a list, or block until one is available",
|
54
|
+
2,
|
55
|
+
"1.3.1" },
|
56
|
+
{ "BRPOPLPUSH",
|
57
|
+
"source destination timeout",
|
58
|
+
"Pop a value from a list, push it to another list and return it; or block until one is available",
|
59
|
+
2,
|
60
|
+
"2.1.7" },
|
61
|
+
{ "CONFIG GET",
|
62
|
+
"parameter",
|
63
|
+
"Get the value of a configuration parameter",
|
64
|
+
9,
|
65
|
+
"2.0" },
|
66
|
+
{ "CONFIG RESETSTAT",
|
67
|
+
"-",
|
68
|
+
"Reset the stats returned by INFO",
|
69
|
+
9,
|
70
|
+
"2.0" },
|
71
|
+
{ "CONFIG SET",
|
72
|
+
"parameter value",
|
73
|
+
"Set a configuration parameter to the given value",
|
74
|
+
9,
|
75
|
+
"2.0" },
|
76
|
+
{ "DBSIZE",
|
77
|
+
"-",
|
78
|
+
"Return the number of keys in the selected database",
|
79
|
+
9,
|
80
|
+
"0.07" },
|
81
|
+
{ "DEBUG OBJECT",
|
82
|
+
"key",
|
83
|
+
"Get debugging information about a key",
|
84
|
+
9,
|
85
|
+
"0.101" },
|
86
|
+
{ "DEBUG SEGFAULT",
|
87
|
+
"-",
|
88
|
+
"Make the server crash",
|
89
|
+
9,
|
90
|
+
"0.101" },
|
91
|
+
{ "DECR",
|
92
|
+
"key",
|
93
|
+
"Decrement the integer value of a key by one",
|
94
|
+
1,
|
95
|
+
"0.07" },
|
96
|
+
{ "DECRBY",
|
97
|
+
"key decrement",
|
98
|
+
"Decrement the integer value of a key by the given number",
|
99
|
+
1,
|
100
|
+
"0.07" },
|
101
|
+
{ "DEL",
|
102
|
+
"key [key ...]",
|
103
|
+
"Delete a key",
|
104
|
+
0,
|
105
|
+
"0.07" },
|
106
|
+
{ "DISCARD",
|
107
|
+
"-",
|
108
|
+
"Discard all commands issued after MULTI",
|
109
|
+
7,
|
110
|
+
"1.3.3" },
|
111
|
+
{ "ECHO",
|
112
|
+
"message",
|
113
|
+
"Echo the given string",
|
114
|
+
8,
|
115
|
+
"0.07" },
|
116
|
+
{ "EXEC",
|
117
|
+
"-",
|
118
|
+
"Execute all commands issued after MULTI",
|
119
|
+
7,
|
120
|
+
"1.1.95" },
|
121
|
+
{ "EXISTS",
|
122
|
+
"key",
|
123
|
+
"Determine if a key exists",
|
124
|
+
9,
|
125
|
+
"0.07" },
|
126
|
+
{ "EXPIRE",
|
127
|
+
"key seconds",
|
128
|
+
"Set a key's time to live in seconds",
|
129
|
+
0,
|
130
|
+
"0.09" },
|
131
|
+
{ "EXPIREAT",
|
132
|
+
"key timestamp",
|
133
|
+
"Set the expiration for a key as a UNIX timestamp",
|
134
|
+
0,
|
135
|
+
"1.1" },
|
136
|
+
{ "FLUSHALL",
|
137
|
+
"-",
|
138
|
+
"Remove all keys from all databases",
|
139
|
+
9,
|
140
|
+
"0.07" },
|
141
|
+
{ "FLUSHDB",
|
142
|
+
"-",
|
143
|
+
"Remove all keys from the current database",
|
144
|
+
9,
|
145
|
+
"0.07" },
|
146
|
+
{ "GET",
|
147
|
+
"key",
|
148
|
+
"Get the value of a key",
|
149
|
+
1,
|
150
|
+
"0.07" },
|
151
|
+
{ "GETBIT",
|
152
|
+
"key offset",
|
153
|
+
"Returns the bit value at offset in the string value stored at key",
|
154
|
+
1,
|
155
|
+
"2.1.8" },
|
156
|
+
{ "GETSET",
|
157
|
+
"key value",
|
158
|
+
"Set the string value of a key and return its old value",
|
159
|
+
1,
|
160
|
+
"0.091" },
|
161
|
+
{ "HDEL",
|
162
|
+
"key field",
|
163
|
+
"Delete a hash field",
|
164
|
+
5,
|
165
|
+
"1.3.10" },
|
166
|
+
{ "HEXISTS",
|
167
|
+
"key field",
|
168
|
+
"Determine if a hash field exists",
|
169
|
+
5,
|
170
|
+
"1.3.10" },
|
171
|
+
{ "HGET",
|
172
|
+
"key field",
|
173
|
+
"Get the value of a hash field",
|
174
|
+
5,
|
175
|
+
"1.3.10" },
|
176
|
+
{ "HGETALL",
|
177
|
+
"key",
|
178
|
+
"Get all the fields and values in a hash",
|
179
|
+
5,
|
180
|
+
"1.3.10" },
|
181
|
+
{ "HINCRBY",
|
182
|
+
"key field increment",
|
183
|
+
"Increment the integer value of a hash field by the given number",
|
184
|
+
5,
|
185
|
+
"1.3.10" },
|
186
|
+
{ "HKEYS",
|
187
|
+
"key",
|
188
|
+
"Get all the fields in a hash",
|
189
|
+
5,
|
190
|
+
"1.3.10" },
|
191
|
+
{ "HLEN",
|
192
|
+
"key",
|
193
|
+
"Get the number of fields in a hash",
|
194
|
+
5,
|
195
|
+
"1.3.10" },
|
196
|
+
{ "HMGET",
|
197
|
+
"key field [field ...]",
|
198
|
+
"Get the values of all the given hash fields",
|
199
|
+
5,
|
200
|
+
"1.3.10" },
|
201
|
+
{ "HMSET",
|
202
|
+
"key field value [field value ...]",
|
203
|
+
"Set multiple hash fields to multiple values",
|
204
|
+
5,
|
205
|
+
"1.3.8" },
|
206
|
+
{ "HSET",
|
207
|
+
"key field value",
|
208
|
+
"Set the string value of a hash field",
|
209
|
+
5,
|
210
|
+
"1.3.10" },
|
211
|
+
{ "HSETNX",
|
212
|
+
"key field value",
|
213
|
+
"Set the value of a hash field, only if the field does not exist",
|
214
|
+
5,
|
215
|
+
"1.3.8" },
|
216
|
+
{ "HVALS",
|
217
|
+
"key",
|
218
|
+
"Get all the values in a hash",
|
219
|
+
5,
|
220
|
+
"1.3.10" },
|
221
|
+
{ "INCR",
|
222
|
+
"key",
|
223
|
+
"Increment the integer value of a key by one",
|
224
|
+
1,
|
225
|
+
"0.07" },
|
226
|
+
{ "INCRBY",
|
227
|
+
"key increment",
|
228
|
+
"Increment the integer value of a key by the given number",
|
229
|
+
1,
|
230
|
+
"0.07" },
|
231
|
+
{ "INFO",
|
232
|
+
"-",
|
233
|
+
"Get information and statistics about the server",
|
234
|
+
9,
|
235
|
+
"0.07" },
|
236
|
+
{ "KEYS",
|
237
|
+
"pattern",
|
238
|
+
"Find all keys matching the given pattern",
|
239
|
+
0,
|
240
|
+
"0.07" },
|
241
|
+
{ "LASTSAVE",
|
242
|
+
"-",
|
243
|
+
"Get the UNIX time stamp of the last successful save to disk",
|
244
|
+
9,
|
245
|
+
"0.07" },
|
246
|
+
{ "LINDEX",
|
247
|
+
"key index",
|
248
|
+
"Get an element from a list by its index",
|
249
|
+
2,
|
250
|
+
"0.07" },
|
251
|
+
{ "LINSERT",
|
252
|
+
"key BEFORE|AFTER pivot value",
|
253
|
+
"Insert an element before or after another element in a list",
|
254
|
+
2,
|
255
|
+
"2.1.1" },
|
256
|
+
{ "LLEN",
|
257
|
+
"key",
|
258
|
+
"Get the length of a list",
|
259
|
+
2,
|
260
|
+
"0.07" },
|
261
|
+
{ "LPOP",
|
262
|
+
"key",
|
263
|
+
"Remove and get the first element in a list",
|
264
|
+
2,
|
265
|
+
"0.07" },
|
266
|
+
{ "LPUSH",
|
267
|
+
"key value",
|
268
|
+
"Prepend a value to a list",
|
269
|
+
2,
|
270
|
+
"0.07" },
|
271
|
+
{ "LPUSHX",
|
272
|
+
"key value",
|
273
|
+
"Prepend a value to a list, only if the list exists",
|
274
|
+
2,
|
275
|
+
"2.1.1" },
|
276
|
+
{ "LRANGE",
|
277
|
+
"key start stop",
|
278
|
+
"Get a range of elements from a list",
|
279
|
+
2,
|
280
|
+
"0.07" },
|
281
|
+
{ "LREM",
|
282
|
+
"key count value",
|
283
|
+
"Remove elements from a list",
|
284
|
+
2,
|
285
|
+
"0.07" },
|
286
|
+
{ "LSET",
|
287
|
+
"key index value",
|
288
|
+
"Set the value of an element in a list by its index",
|
289
|
+
2,
|
290
|
+
"0.07" },
|
291
|
+
{ "LTRIM",
|
292
|
+
"key start stop",
|
293
|
+
"Trim a list to the specified range",
|
294
|
+
2,
|
295
|
+
"0.07" },
|
296
|
+
{ "MGET",
|
297
|
+
"key [key ...]",
|
298
|
+
"Get the values of all the given keys",
|
299
|
+
1,
|
300
|
+
"0.07" },
|
301
|
+
{ "MONITOR",
|
302
|
+
"-",
|
303
|
+
"Listen for all requests received by the server in real time",
|
304
|
+
9,
|
305
|
+
"0.07" },
|
306
|
+
{ "MOVE",
|
307
|
+
"key db",
|
308
|
+
"Move a key to another database",
|
309
|
+
0,
|
310
|
+
"0.07" },
|
311
|
+
{ "MSET",
|
312
|
+
"key value [key value ...]",
|
313
|
+
"Set multiple keys to multiple values",
|
314
|
+
1,
|
315
|
+
"1.001" },
|
316
|
+
{ "MSETNX",
|
317
|
+
"key value [key value ...]",
|
318
|
+
"Set multiple keys to multiple values, only if none of the keys exist",
|
319
|
+
1,
|
320
|
+
"1.001" },
|
321
|
+
{ "MULTI",
|
322
|
+
"-",
|
323
|
+
"Mark the start of a transaction block",
|
324
|
+
7,
|
325
|
+
"1.1.95" },
|
326
|
+
{ "PERSIST",
|
327
|
+
"key",
|
328
|
+
"Remove the expiration from a key",
|
329
|
+
0,
|
330
|
+
"2.1.2" },
|
331
|
+
{ "PING",
|
332
|
+
"-",
|
333
|
+
"Ping the server",
|
334
|
+
8,
|
335
|
+
"0.07" },
|
336
|
+
{ "PSUBSCRIBE",
|
337
|
+
"pattern",
|
338
|
+
"Listen for messages published to channels matching the given patterns",
|
339
|
+
6,
|
340
|
+
"1.3.8" },
|
341
|
+
{ "PUBLISH",
|
342
|
+
"channel message",
|
343
|
+
"Post a message to a channel",
|
344
|
+
6,
|
345
|
+
"1.3.8" },
|
346
|
+
{ "PUNSUBSCRIBE",
|
347
|
+
"[pattern [pattern ...]]",
|
348
|
+
"Stop listening for messages posted to channels matching the given patterns",
|
349
|
+
6,
|
350
|
+
"1.3.8" },
|
351
|
+
{ "QUIT",
|
352
|
+
"-",
|
353
|
+
"Close the connection",
|
354
|
+
8,
|
355
|
+
"0.07" },
|
356
|
+
{ "RANDOMKEY",
|
357
|
+
"-",
|
358
|
+
"Return a random key from the keyspace",
|
359
|
+
0,
|
360
|
+
"0.07" },
|
361
|
+
{ "RENAME",
|
362
|
+
"key newkey",
|
363
|
+
"Rename a key",
|
364
|
+
0,
|
365
|
+
"0.07" },
|
366
|
+
{ "RENAMENX",
|
367
|
+
"key newkey",
|
368
|
+
"Rename a key, only if the new key does not exist",
|
369
|
+
0,
|
370
|
+
"0.07" },
|
371
|
+
{ "RPOP",
|
372
|
+
"key",
|
373
|
+
"Remove and get the last element in a list",
|
374
|
+
2,
|
375
|
+
"0.07" },
|
376
|
+
{ "RPOPLPUSH",
|
377
|
+
"source destination",
|
378
|
+
"Remove the last element in a list, append it to another list and return it",
|
379
|
+
2,
|
380
|
+
"1.1" },
|
381
|
+
{ "RPUSH",
|
382
|
+
"key value",
|
383
|
+
"Append a value to a list",
|
384
|
+
2,
|
385
|
+
"0.07" },
|
386
|
+
{ "RPUSHX",
|
387
|
+
"key value",
|
388
|
+
"Append a value to a list, only if the list exists",
|
389
|
+
2,
|
390
|
+
"2.1.1" },
|
391
|
+
{ "SADD",
|
392
|
+
"key member",
|
393
|
+
"Add a member to a set",
|
394
|
+
3,
|
395
|
+
"0.07" },
|
396
|
+
{ "SAVE",
|
397
|
+
"-",
|
398
|
+
"Synchronously save the dataset to disk",
|
399
|
+
9,
|
400
|
+
"0.07" },
|
401
|
+
{ "SCARD",
|
402
|
+
"key",
|
403
|
+
"Get the number of members in a set",
|
404
|
+
3,
|
405
|
+
"0.07" },
|
406
|
+
{ "SDIFF",
|
407
|
+
"key [key ...]",
|
408
|
+
"Subtract multiple sets",
|
409
|
+
3,
|
410
|
+
"0.100" },
|
411
|
+
{ "SDIFFSTORE",
|
412
|
+
"destination key [key ...]",
|
413
|
+
"Subtract multiple sets and store the resulting set in a key",
|
414
|
+
3,
|
415
|
+
"0.100" },
|
416
|
+
{ "SELECT",
|
417
|
+
"index",
|
418
|
+
"Change the selected database for the current connection",
|
419
|
+
8,
|
420
|
+
"0.07" },
|
421
|
+
{ "SET",
|
422
|
+
"key value",
|
423
|
+
"Set the string value of a key",
|
424
|
+
1,
|
425
|
+
"0.07" },
|
426
|
+
{ "SETBIT",
|
427
|
+
"key offset value",
|
428
|
+
"Sets or clears the bit at offset in the string value stored at key",
|
429
|
+
1,
|
430
|
+
"2.1.8" },
|
431
|
+
{ "SETEX",
|
432
|
+
"key seconds value",
|
433
|
+
"Set the value and expiration of a key",
|
434
|
+
1,
|
435
|
+
"1.3.10" },
|
436
|
+
{ "SETNX",
|
437
|
+
"key value",
|
438
|
+
"Set the value of a key, only if the key does not exist",
|
439
|
+
1,
|
440
|
+
"0.07" },
|
441
|
+
{ "SETRANGE",
|
442
|
+
"key offset value",
|
443
|
+
"Overwrite part of a string at key starting at the specified offset",
|
444
|
+
1,
|
445
|
+
"2.1.8" },
|
446
|
+
{ "SHUTDOWN",
|
447
|
+
"-",
|
448
|
+
"Synchronously save the dataset to disk and then shut down the server",
|
449
|
+
9,
|
450
|
+
"0.07" },
|
451
|
+
{ "SINTER",
|
452
|
+
"key [key ...]",
|
453
|
+
"Intersect multiple sets",
|
454
|
+
3,
|
455
|
+
"0.07" },
|
456
|
+
{ "SINTERSTORE",
|
457
|
+
"destination key [key ...]",
|
458
|
+
"Intersect multiple sets and store the resulting set in a key",
|
459
|
+
3,
|
460
|
+
"0.07" },
|
461
|
+
{ "SISMEMBER",
|
462
|
+
"key member",
|
463
|
+
"Determine if a given value is a member of a set",
|
464
|
+
3,
|
465
|
+
"0.07" },
|
466
|
+
{ "SLAVEOF",
|
467
|
+
"host port",
|
468
|
+
"Make the server a slave of another instance, or promote it as master",
|
469
|
+
9,
|
470
|
+
"0.100" },
|
471
|
+
{ "SMEMBERS",
|
472
|
+
"key",
|
473
|
+
"Get all the members in a set",
|
474
|
+
3,
|
475
|
+
"0.07" },
|
476
|
+
{ "SMOVE",
|
477
|
+
"source destination member",
|
478
|
+
"Move a member from one set to another",
|
479
|
+
3,
|
480
|
+
"0.091" },
|
481
|
+
{ "SORT",
|
482
|
+
"key [BY pattern] [LIMIT offset count] [GET pattern [GET pattern ...]] [ASC|DESC] [ALPHA] [STORE destination]",
|
483
|
+
"Sort the elements in a list, set or sorted set",
|
484
|
+
0,
|
485
|
+
"0.07" },
|
486
|
+
{ "SPOP",
|
487
|
+
"key",
|
488
|
+
"Remove and return a random member from a set",
|
489
|
+
3,
|
490
|
+
"0.101" },
|
491
|
+
{ "SRANDMEMBER",
|
492
|
+
"key",
|
493
|
+
"Get a random member from a set",
|
494
|
+
3,
|
495
|
+
"1.001" },
|
496
|
+
{ "SREM",
|
497
|
+
"key member",
|
498
|
+
"Remove a member from a set",
|
499
|
+
3,
|
500
|
+
"0.07" },
|
501
|
+
{ "STRLEN",
|
502
|
+
"key",
|
503
|
+
"Get the length of the value stored in a key",
|
504
|
+
1,
|
505
|
+
"2.1.2" },
|
506
|
+
{ "SUBSCRIBE",
|
507
|
+
"channel",
|
508
|
+
"Listen for messages published to the given channels",
|
509
|
+
6,
|
510
|
+
"1.3.8" },
|
511
|
+
{ "SUBSTR",
|
512
|
+
"key start end",
|
513
|
+
"Get a substring of the string stored at a key",
|
514
|
+
1,
|
515
|
+
"1.3.4" },
|
516
|
+
{ "SUNION",
|
517
|
+
"key [key ...]",
|
518
|
+
"Add multiple sets",
|
519
|
+
3,
|
520
|
+
"0.091" },
|
521
|
+
{ "SUNIONSTORE",
|
522
|
+
"destination key [key ...]",
|
523
|
+
"Add multiple sets and store the resulting set in a key",
|
524
|
+
3,
|
525
|
+
"0.091" },
|
526
|
+
{ "SYNC",
|
527
|
+
"-",
|
528
|
+
"Internal command used for replication",
|
529
|
+
9,
|
530
|
+
"0.07" },
|
531
|
+
{ "TTL",
|
532
|
+
"key",
|
533
|
+
"Get the time to live for a key",
|
534
|
+
0,
|
535
|
+
"0.100" },
|
536
|
+
{ "TYPE",
|
537
|
+
"key",
|
538
|
+
"Determine the type stored at key",
|
539
|
+
0,
|
540
|
+
"0.07" },
|
541
|
+
{ "UNSUBSCRIBE",
|
542
|
+
"[channel [channel ...]]",
|
543
|
+
"Stop listening for messages posted to the given channels",
|
544
|
+
6,
|
545
|
+
"1.3.8" },
|
546
|
+
{ "UNWATCH",
|
547
|
+
"-",
|
548
|
+
"Forget about all watched keys",
|
549
|
+
7,
|
550
|
+
"2.1.0" },
|
551
|
+
{ "WATCH",
|
552
|
+
"key [key ...]",
|
553
|
+
"Watch the given keys to determine execution of the MULTI/EXEC block",
|
554
|
+
7,
|
555
|
+
"2.1.0" },
|
556
|
+
{ "ZADD",
|
557
|
+
"key score member",
|
558
|
+
"Add a member to a sorted set, or update its score if it already exists",
|
559
|
+
4,
|
560
|
+
"1.1" },
|
561
|
+
{ "ZCARD",
|
562
|
+
"key",
|
563
|
+
"Get the number of members in a sorted set",
|
564
|
+
4,
|
565
|
+
"1.1" },
|
566
|
+
{ "ZCOUNT",
|
567
|
+
"key min max",
|
568
|
+
"Count the members in a sorted set with scores within the given values",
|
569
|
+
4,
|
570
|
+
"1.3.3" },
|
571
|
+
{ "ZINCRBY",
|
572
|
+
"key increment member",
|
573
|
+
"Increment the score of a member in a sorted set",
|
574
|
+
4,
|
575
|
+
"1.1" },
|
576
|
+
{ "ZINTERSTORE",
|
577
|
+
"destination numkeys key [key ...] [WEIGHTS weight] [AGGREGATE SUM|MIN|MAX]",
|
578
|
+
"Intersect multiple sorted sets and store the resulting sorted set in a new key",
|
579
|
+
4,
|
580
|
+
"1.3.10" },
|
581
|
+
{ "ZRANGE",
|
582
|
+
"key start stop [WITHSCORES]",
|
583
|
+
"Return a range of members in a sorted set, by index",
|
584
|
+
4,
|
585
|
+
"1.1" },
|
586
|
+
{ "ZRANGEBYSCORE",
|
587
|
+
"key min max [WITHSCORES] [LIMIT offset count]",
|
588
|
+
"Return a range of members in a sorted set, by score",
|
589
|
+
4,
|
590
|
+
"1.050" },
|
591
|
+
{ "ZRANK",
|
592
|
+
"key member",
|
593
|
+
"Determine the index of a member in a sorted set",
|
594
|
+
4,
|
595
|
+
"1.3.4" },
|
596
|
+
{ "ZREM",
|
597
|
+
"key member",
|
598
|
+
"Remove a member from a sorted set",
|
599
|
+
4,
|
600
|
+
"1.1" },
|
601
|
+
{ "ZREMRANGEBYRANK",
|
602
|
+
"key start stop",
|
603
|
+
"Remove all members in a sorted set within the given indexes",
|
604
|
+
4,
|
605
|
+
"1.3.4" },
|
606
|
+
{ "ZREMRANGEBYSCORE",
|
607
|
+
"key min max",
|
608
|
+
"Remove all members in a sorted set within the given scores",
|
609
|
+
4,
|
610
|
+
"1.1" },
|
611
|
+
{ "ZREVRANGE",
|
612
|
+
"key start stop [WITHSCORES]",
|
613
|
+
"Return a range of members in a sorted set, by index, with scores ordered from high to low",
|
614
|
+
4,
|
615
|
+
"1.1" },
|
616
|
+
{ "ZREVRANGEBYSCORE",
|
617
|
+
"key max min [WITHSCORES] [LIMIT offset count]",
|
618
|
+
"Return a range of members in a sorted set, by score, with scores ordered from high to low",
|
619
|
+
4,
|
620
|
+
"2.1.6" },
|
621
|
+
{ "ZREVRANK",
|
622
|
+
"key member",
|
623
|
+
"Determine the index of a member in a sorted set, with scores ordered from high to low",
|
624
|
+
4,
|
625
|
+
"1.3.4" },
|
626
|
+
{ "ZSCORE",
|
627
|
+
"key member",
|
628
|
+
"Get the score associated with the given member in a sorted set",
|
629
|
+
4,
|
630
|
+
"1.1" },
|
631
|
+
{ "ZUNIONSTORE",
|
632
|
+
"destination numkeys key [key ...] [WEIGHTS weight] [AGGREGATE SUM|MIN|MAX]",
|
633
|
+
"Add multiple sorted sets and store the resulting sorted set in a new key",
|
634
|
+
4,
|
635
|
+
"1.3.10" }
|
636
|
+
};
|
637
|
+
|
638
|
+
#endif
|