!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~Options data type for the s command sort with descending order return (from, to) elements sort alphabetically sort by value from this key return this keys values store result to this key Class for conversion value to   Definied instances is:  the Interval itself  pair (a,b) for open interval  two-member list [a, b]L for closed interval (throws runtime error if the list length is different) Interval representation right-open interval [a, b) left-open interval (a, b] open interval (a, b) closed interval [a, b] Redis reply variants 9Complex reply. It may consists of various type of replys Multiline reply Integer reply Simple oneline reply Some kind of server-side error Used inside multi-exec block Reply for the ping command "Ok" reply Timeout. Currently unused Redis command variants Redis connection descriptor hostname and port pair real network connection Unwraps RInline reply. FThrows an exception when called with something different from RInline Unwraps RBulk reply. DThrows an exception when called with something different from RBulk Unwraps RMulti reply EThrows an exception when called with something different from RMulti 'Unwraps RMulti reply filled with RBulk EThrows an exception when called with something different from RMulti !Unwraps RInt reply CThrows an exception when called with something different from RInt "Unwraps ROk reply BThrows an exception when called with something different from ROk #Unwraps every non-error reply EThrows an exception when called with something different from RMulti $default Redis port %just a localhost &Ba (0, -1) range - takes all element from a list in lrange, zrange  and so on ':Conects to Redis server and returns connection descriptor (Close connection )/Returns True when connection handler is opened * ping - pong %RPong returned if no errors happends +Password authentication  ROk returned  password ,Quit and close connection -8Stop all the clients, save the DB, then quit the server .Begin the multi-exec block  ROk returned /Execute queued commands 3RMulti returned - replys for all executed commands 0%Run commands within multi-exec block 3RMulti returned - replys for all executed commands IO actions to run 1Test if the key exists ;(RInt 1) returned if the key exists and (RInt 0) otherwise  target key 2Remove the key N(RInt 0) returned if no keys were removed or (RInt n) with removed keys count  target key 3?Return the type of the value stored at key in form of a string RInline with one of none, string, list, set, zset returned  target key 4PReturns all the keys matching the glob-style pattern as space separated strings RBulk returned  target key 5Return random key name RInline returned 6/Rename the key. If key with that name exists it'll be overwritten.  ROk returned  source key destination key 78Rename the key if no keys with destination name exists. <(RInt 1) returned if key was renamed and (RInt 0) otherwise  source key destination key 8:Get the number of keys in the currently selected database RInt returned 9;Set an expiration timeout in seconds on the specified key. For more information see  1http://code.google.com/p/redis/wiki/ExpireCommand <(RInt 1) returned if timeout was set and (RInt 0) otherwise  target key timeout in seconds :FSet an expiration time in form of UNIX timestamp on the specified key For more information see  1http://code.google.com/p/redis/wiki/ExpireCommand <(RInt 1) returned if timeout was set and (RInt 0) otherwise  target key timeout in seconds ;@Return the remining time to live of the key or -1 if key has no  associated timeout RInt returned  target key <:Select the DB with the specified zero-based numeric index  ROk returned database number ==Move the specified key from the currently selected DB to the B specified destination DB. If such a key is already exists in the + target DB no data modification performed. >(RInt 1) returned if the key was moved and (RInt 0) otherwise  target key destination database number >1Delete all the keys of the currently selected DB  ROk returned ?2Delete all the keys of all the existing databases  ROk returned @>Returns different information and statistics about the server for more information see  /http://code.google.com/p/redis/wiki/InfoCommand RBulk returned A)Set the string value as value of the key  ROk returned  target key value B)Set the key value if key does not exists 8(RInt 1) returned if key was set and (RInt 0) otherwise  target key value CAtomically set multiple keys  ROk returned (key, value) pairs D5Atomically set multiple keys if none of them exists. =(RInt 1) returned if all keys was set and (RInt 0) otherwise (key, value) pairs E$Get the value of the specified key. RBulk returned  target key F3Atomically set this value and return the old value RBulk returned  target key value G%Get the values of all specified keys )RMulti filled with RBulk replys returned  target keys HIncrement the key value by one !RInt returned with new key value  target key IIncrement the key value by N !RInt returned with new key value  target key  increment JDecrement the key value by one !RInt returned with new key value  target key KDecrement the key value by N !RInt returned with new key value  target key  decrement L&Append string to the string-typed key /RInt returned - the length of resulting string  target key value M2Add string value to the head of the list-type key ,ROk returned or RError if key is not a list  target key value N2Add string value to the tail of the list-type key ,ROk returned or RError if key is not a list  target key value O>Return lenght of the list. Note that for not-existing keys it  returns zero length. -RInt returned or RError if key is not a list  target key PAReturn the specified range of list elements. List indexed from 0 / to (llen - 1). lrange returns slice including "from" and "to" B elements, eg. lrange 0 2 will return the first three elements of  the list.  Parameters "from" and "to"/ may also be negative. If so it will counts as B offset from end ot the list. eg. -1 - is the last element of the 2 list, -2 - is the second from the end and so on. "RMulti filled with RBulk returned  traget key (from, to) pair QHTrim list so that it will contain only the specified range of elements.  ROk returned  target key (from, to) pair R6Return the specified element of the list by its index RBulk returned  target key index S Set the list's value indexed by an index to the new value >ROk returned if element was set and RError if index is out of  range or key is not a list TRemove the first count occurrences of the value element from the list /RInt returned - the number of elements removed  target key  occurrences value U;Atomically return and remove the first element of the list RBulk returned  target key V:Atomically return and remove the last element of the list RBulk returned  target key W<Atomically return and remove the last (tail) element of the B source list, and push the element as the first (head) element of  the destination list RBulk returned  source key destination key XBlocking lpop For more information see  0http://code.google.com/p/redis/wiki/BlpopCommand 6RMulti returned filled with key name and popped value  keys list timeout YBlocking rpop For more information see  0http://code.google.com/p/redis/wiki/BlpopCommand 6RMulti returned filled with key name and popped value  keys list timeout Z8Add the specified member to the set value stored at key C(RInt 1) returned if element was added and (RInt 0) if element was  already a member of the set  target key value [=Remove the specified member from the set value stored at key A(RInt 1) returned if element was removed and (RInt 0) if element  is not a member of the set  target key value \@Remove a random element from a Set returning it as return value RBulk returned  target key ]3Move the specifided member from one set to another ?(RInt 1) returned if element was moved and (RInt 0) if element # is not a member of the source set  source key destination key value ^6Return the number of elements of the set. If key doesn' t exists 0  returned. RInt returned  target key _2Test if element is member of the set. If key doesn' t exists 0  returned. I(RInt 1) returned if element is member of the set and (RInt 0) otherwise  target key `-Return all the members (elements) of the set "RMulti filled with RBulk returned  target key a#Return a random element from a set RBulk returned  target key b?Return the members of a set resulting from the intersection of  all the specifided sets "RMulti filled with RBulk returned  keys list c The same as b1 but instead of being returned the resulting set  is stored  ROk returned where to store resulting set  sets list d@Return the members of a set resulting from the union of all the  specifided sets "RMulti filled with RBulk returned  keys list e The same as d1 but instead of being returned the resulting set  is stored  ROk returned where to store resulting set  sets list fBReturn the members of a set resulting from the difference between 4 the first set provided and all the successive sets "RMulti filled with RBulk returned  keys list g The same as f- but instead of being returned the resulting  set is stored  ROk returned where to store resulting set  sets list hBAdd the specified member having the specifeid score to the sorted  set @(RInt 1) returned if new element was added and (RInt 0) if that B element was already a member of the sortet set and the score was  updated  target key score value i0Remove the specified member from the sorted set A(RInt 1) returned if element was removed and (RInt 0) if element $ was not a member of the sorted set  target key value jIf member$ already in the sorted set adds the  increment to its A score and updates the position of the element in the sorted set E accordingly. If member does not exist in the sorted set it is added B with increment as score (that is, like if the previous score was ; virtually zero). The new score of the member is returned. RBulk returned  target key  increment value k?Return the specified elements of the sorted set. Start and end > are zero-based indexes. WITHSCORES paramenter indicates if it's D needed to return elements with its scores or not. If WITHSCORES is B True then the resulting list will be composed of value1, score1,  value2, score2 and so on. "RMulti filled with RBulk returned  target key (from, to) pair withscores option lAReturn the specified elements of the sorted set at the specified A key. The elements are considered sorted from the highest to the  lowerest score "RMulti filled with RBulk returned  target key (from, to) pair withscores option m@Return the all the elements in the sorted set with a score that  lays within a given interval "RMulti filled with RBulk returned  target key scores interval withscores option n?Count a number of elements of the sorted set with a score that  lays within a given interval RInt returned  target key scores interval oARemove all the elements in the sorted set with a score that lays  within a given interval /RInt returned - the number of elements removed  target key "(from, to) pair. zremrangebyscore  currently doesn' t supports  open intervals p7Return the sorted set cardinality (number of elements) RInt returned  target key q<Return the score of the specified element of the sorted set RBulk returned  target key value rDefault options for the s command s<Sort the elements contained in the List, Set, or Sorted Set for more information see  /http://code.google.com/p/redis/wiki/SortCommand "RMulti filled with RBulk returned  target key options tShortcut for the s with some  and constant   options "RMulti filled with RBulk returned  target key  key returned range uSave the whole dataset on disk  ROk returned vSave the DB in background  ROk returned w?Return the UNIX TIME of the last DB save executed with success RInt returned x,Rewrites the Append Only File in background  ROk returned Two-element list [a, b]) converted to closed interval. No static $ checking of list length performed. 'Pair (a, b) converted to open interval Trivial IsInterval instance y  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxy   r !"#&%$'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqstuvwxy    !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxTyz{|}~|  !"#$%&ryz{|}~|yz{   r !"#&%$|}~Tyz{z{|}~>Trivial WithRedis instance storing Redis descriptor in StateT >Acquire lock. This function is not reentrant so thread can be C locked by itself if it try to acquire the same lock before it was  released. The lock's name Timeout in milliseconds. *Time interval between attempts to lock on True if lock was acquired ;acquire with default last parameter set to 50 milliseconds ?Try to acquire lock once and return result without any timeout @Release lock. There is no any guarantees that lock was acquired 6 in this thread. Just release this lock and go forth.       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuwxyz{| redis-0.1Database.Redis.RedisDatabase.Redis.MonadDatabase.Redis.Monad.StateDatabase.Redis.Utils.LockDatabase.Redis.Utils.Monad.Lock SortOptionsdesclimitalphasort_byget_objstore IsInterval toIntervalInterval RightOpenLeftOpenOpenClosedReplyRMultiRBulkRIntRInlineRErrorRQueuedRPongROkRTimeoutRedisserverhandle fromRInline fromRBulk fromRMultifromRMultiBulkfromRIntfromROknoError defaultPort localhosttakeAllconnect disconnect isConnectedpingauthquitshutdownmultiexec run_multiexistsdelgetTypekeys randomKeyrenamerenameNxdbsizeexpireexpireAtttlselectmoveflushDbflushAllinfosetsetNxmSetmSetNxgetgetSetmGetincrincrBydecrdecrByappendrpushlpushllenlrangeltrimlindexlsetlremlpoprpop rpoplpushblpopbrpopsaddsremspopsmovescard sismembersmembers srandmembersinter sinterStoresunion sunionStoresdiff sdiffStorezaddzremzincrByzrange zrevrange zrangebyscorezcountzremrangebyscorezcardzscore sortDefaultssort listRelatedsavebgsavelastsave bgrewriteaof WithRedisgetRedissetRedisRedisM runWithRedisacquireacquire' acquireOncereleaseCommandCMBulkCBulkCMInlineCInlinesend sendCommandrecv$fIsInterval[]a$fIsInterval(,)a$fIsIntervalIntervaladiffClockTimesMs