hedis
Safe HaskellNone
LanguageHaskell2010

Database.Redis.Sentinel

Description

Database.Redis like interface with connection through Redis Sentinel.

More details here: https://redis.io/topics/sentinel.

Example:

conn <- connect SentinelConnectionInfo (("localhost", 26379) :| []) "mymaster" defaultConnectInfo

runRedis conn $ do
  set "hello" "world"

When connection is opened, the Sentinels will be queried to get current master. Subsequent runRedis calls will talk to that master.

If runRedis call fails, the next call will choose a new master to talk to.

This implementation is based on Gist by Emanuel Borsboom at https://gist.github.com/borsboom/681d37d273d5c4168723

Synopsis

Connection

data SentinelConnectInfo Source #

Configuration of Sentinel hosts.

Constructors

SentinelConnectInfo 

Fields

runRedis with Sentinel support

runRedis :: SentinelConnection -> Redis (Either Reply a) -> IO (Either Reply a) Source #

Interact with a Redis datastore. See runRedis for details.

Re-export Database.Redis

time :: RedisCtx m f => m (f (Integer, Integer)) Source #

Return the current server time (http://redis.io/commands/time). Since Redis 2.6.0

data RedisType Source #

Constructors

None 
String 
Hash 
List 
Set 
ZSet 
Stream 
VectorSet 

Instances

Instances details
Show RedisType Source # 
Instance details

Defined in Database.Redis.Types

Eq RedisType Source # 
Instance details

Defined in Database.Redis.Types

RedisResult RedisType Source # 
Instance details

Defined in Database.Redis.Types

class RedisResult a where Source #

Methods

decode :: Reply -> Either Reply a Source #

Instances

Instances details
RedisResult ByteString Source # 
Instance details

Defined in Database.Redis.Types

RedisResult Int64 Source # 
Instance details

Defined in Database.Redis.Types

RedisResult CommandInfo Source # 
Instance details

Defined in Database.Redis.Cluster.Command

RedisResult ARIndexValuePairsResponse Source # 
Instance details

Defined in Database.Redis.ManualCommands

RedisResult ARInfoResponse Source # 
Instance details

Defined in Database.Redis.ManualCommands

RedisResult ClusterInfoResponse Source # 
Instance details

Defined in Database.Redis.ManualCommands

RedisResult ClusterMigrationStatusResponse Source # 
Instance details

Defined in Database.Redis.ManualCommands

RedisResult ClusterMigrationTask Source # 
Instance details

Defined in Database.Redis.ManualCommands

RedisResult ClusterNodesResponse Source # 
Instance details

Defined in Database.Redis.ManualCommands

RedisResult ClusterSlotStatsResponse Source # 
Instance details

Defined in Database.Redis.ManualCommands

RedisResult ClusterSlotStatsResponseEntry Source # 
Instance details

Defined in Database.Redis.ManualCommands

RedisResult ClusterSlotsNode Source # 
Instance details

Defined in Database.Redis.ManualCommands

RedisResult ClusterSlotsResponse Source # 
Instance details

Defined in Database.Redis.ManualCommands

RedisResult ClusterSlotsResponseEntry Source # 
Instance details

Defined in Database.Redis.ManualCommands

RedisResult Cursor Source # 
Instance details

Defined in Database.Redis.ManualCommands

RedisResult GeoCoordinates Source # 
Instance details

Defined in Database.Redis.ManualCommands

RedisResult GeoLocation Source # 
Instance details

Defined in Database.Redis.ManualCommands

RedisResult HashFieldExpirationInfo Source # 
Instance details

Defined in Database.Redis.ManualCommands

RedisResult HashFieldExpirationStatus Source # 
Instance details

Defined in Database.Redis.ManualCommands

RedisResult HotkeysGetResponse Source # 
Instance details

Defined in Database.Redis.ManualCommands

RedisResult HotkeysSlotRange Source # 
Instance details

Defined in Database.Redis.ManualCommands

RedisResult Slowlog Source # 
Instance details

Defined in Database.Redis.ManualCommands

RedisResult StreamsRecord Source # 
Instance details

Defined in Database.Redis.ManualCommands

RedisResult VEmbRawResponse Source # 
Instance details

Defined in Database.Redis.ManualCommands

RedisResult VInfoResponse Source # 
Instance details

Defined in Database.Redis.ManualCommands

RedisResult VLinksResponse Source # 
Instance details

Defined in Database.Redis.ManualCommands

RedisResult VLinksWithScoresResponse Source # 
Instance details

Defined in Database.Redis.ManualCommands

RedisResult VQuantization Source # 
Instance details

Defined in Database.Redis.ManualCommands

RedisResult VSimWithAttribsResponse Source # 
Instance details

Defined in Database.Redis.ManualCommands

RedisResult VSimWithAttribsResult Source # 
Instance details

Defined in Database.Redis.ManualCommands

RedisResult XEntryDeletionResult Source # 
Instance details

Defined in Database.Redis.ManualCommands

RedisResult XInfoConsumersResponse Source # 
Instance details

Defined in Database.Redis.ManualCommands

RedisResult XInfoGroupsResponse Source # 
Instance details

Defined in Database.Redis.ManualCommands

RedisResult XInfoStreamResponse Source # 
Instance details

Defined in Database.Redis.ManualCommands

RedisResult XPendingDetailRecord Source # 
Instance details

Defined in Database.Redis.ManualCommands

RedisResult XPendingSummaryResponse Source # 
Instance details

Defined in Database.Redis.ManualCommands

RedisResult XReadResponse Source # 
Instance details

Defined in Database.Redis.ManualCommands

RedisResult ZPopResponse Source # 
Instance details

Defined in Database.Redis.ManualCommands

RedisResult BFInfo Source # 
Instance details

Defined in Database.Redis.ManualCommands.BF

RedisResult CFInfo Source # 
Instance details

Defined in Database.Redis.ManualCommands.CF

RedisResult CFInsertResult Source # 
Instance details

Defined in Database.Redis.ManualCommands.CF

RedisResult CMSInfo Source # 
Instance details

Defined in Database.Redis.ManualCommands.Cms

RedisResult TDigestInfo Source # 
Instance details

Defined in Database.Redis.ManualCommands.Tdigest

RedisResult TopkInfo Source # 
Instance details

Defined in Database.Redis.ManualCommands.Topk

RedisResult TsSample Source # 
Instance details

Defined in Database.Redis.ManualCommands.Ts

RedisResult WaitAofResult Source # 
Instance details

Defined in Database.Redis.ManualCommands.Wait

RedisResult Reply Source # 
Instance details

Defined in Database.Redis.Types

RedisResult RedisType Source # 
Instance details

Defined in Database.Redis.Types

RedisResult Status Source # 
Instance details

Defined in Database.Redis.Types

RedisResult Integer Source # 
Instance details

Defined in Database.Redis.Types

RedisResult Bool Source # 
Instance details

Defined in Database.Redis.Types

RedisResult Double Source # 
Instance details

Defined in Database.Redis.Types

RedisResult a => RedisResult (XAutoclaimResult a) Source # 
Instance details

Defined in Database.Redis.ManualCommands

RedisResult a => RedisResult (Maybe a) Source # 
Instance details

Defined in Database.Redis.Types

Methods

decode :: Reply -> Either Reply (Maybe a) Source #

(RedisResult k, RedisResult v) => RedisResult [(k, v)] Source # 
Instance details

Defined in Database.Redis.Types

Methods

decode :: Reply -> Either Reply [(k, v)] Source #

RedisResult a => RedisResult [a] Source # 
Instance details

Defined in Database.Redis.Types

Methods

decode :: Reply -> Either Reply [a] Source #

(RedisResult a, RedisResult b) => RedisResult (a, b) Source # 
Instance details

Defined in Database.Redis.Types

Methods

decode :: Reply -> Either Reply (a, b) Source #

(RedisResult a, RedisResult b, RedisResult c) => RedisResult (a, b, c) Source # 
Instance details

Defined in Database.Redis.Types

Methods

decode :: Reply -> Either Reply (a, b, c) Source #

class RedisArg a where Source #

Methods

encode :: a -> ByteString Source #

Instances

Instances details
RedisArg ByteString Source # 
Instance details

Defined in Database.Redis.Types

RedisArg Int64 Source # 
Instance details

Defined in Database.Redis.Types

RedisArg BitposType Source # 
Instance details

Defined in Database.Redis.ManualCommands

RedisArg ClusterSlotStatsMetric Source # 
Instance details

Defined in Database.Redis.ManualCommands

RedisArg Condition Source # 
Instance details

Defined in Database.Redis.ManualCommands

RedisArg Cursor Source # 
Instance details

Defined in Database.Redis.ManualCommands

RedisArg DebugMode Source # 
Instance details

Defined in Database.Redis.ManualCommands

RedisArg ExpireOpts Source # 
Instance details

Defined in Database.Redis.ManualCommands

RedisArg FlushOpts Source # 
Instance details

Defined in Database.Redis.ManualCommands

RedisArg FunctionRestorePolicy Source # 
Instance details

Defined in Database.Redis.ManualCommands

RedisArg GeoOrder Source # 
Instance details

Defined in Database.Redis.ManualCommands

RedisArg GeoUnit Source # 
Instance details

Defined in Database.Redis.ManualCommands

RedisArg HSetExCondition Source # 
Instance details

Defined in Database.Redis.ManualCommands

RedisArg HotkeysMetric Source # 
Instance details

Defined in Database.Redis.ManualCommands

RedisArg ListDirection Source # 
Instance details

Defined in Database.Redis.ManualCommands

RedisArg ReplyMode Source # 
Instance details

Defined in Database.Redis.ManualCommands

RedisArg SizeCondition Source # 
Instance details

Defined in Database.Redis.ManualCommands

RedisArg VAddQuantization Source # 
Instance details

Defined in Database.Redis.ManualCommands

RedisArg VQuantization Source # 
Instance details

Defined in Database.Redis.ManualCommands

RedisArg XNackMode Source # 
Instance details

Defined in Database.Redis.ManualCommands

RedisArg XRefPolicy Source # 
Instance details

Defined in Database.Redis.ManualCommands

RedisArg ZPopMinMax Source # 
Instance details

Defined in Database.Redis.ManualCommands

RedisArg FTIndexAllMode Source # 
Instance details

Defined in Database.Redis.ManualCommands.FT

RedisArg FTOn Source # 
Instance details

Defined in Database.Redis.ManualCommands.FT

RedisArg FTProfileQueryType Source # 
Instance details

Defined in Database.Redis.ManualCommands.FT

RedisArg JSONSetCondition Source # 
Instance details

Defined in Database.Redis.ManualCommands.JSON

RedisArg JSONSetFPHA Source # 
Instance details

Defined in Database.Redis.ManualCommands.JSON

RedisArg TsAggregator Source # 
Instance details

Defined in Database.Redis.ManualCommands.Ts

RedisArg TsAggregators Source # 
Instance details

Defined in Database.Redis.ManualCommands.Ts

RedisArg TsBucketTimestamp Source # 
Instance details

Defined in Database.Redis.ManualCommands.Ts

RedisArg TsDuplicatePolicy Source # 
Instance details

Defined in Database.Redis.ManualCommands.Ts

RedisArg TsEncoding Source # 
Instance details

Defined in Database.Redis.ManualCommands.Ts

RedisArg Integer Source # 
Instance details

Defined in Database.Redis.Types

RedisArg Double Source # 
Instance details

Defined in Database.Redis.Types

RedisArg a => RedisArg (RangeLex a) Source # 
Instance details

Defined in Database.Redis.ManualCommands

data Reply Source #

Low-level representation of replies from the Redis server.

Instances

Instances details
NFData Reply Source # 
Instance details

Defined in Database.Redis.Protocol

Methods

rnf :: Reply -> () #

Generic Reply Source # 
Instance details

Defined in Database.Redis.Protocol

Methods

from :: Reply -> Rep Reply x #

to :: Rep Reply x -> Reply #

Show Reply Source # 
Instance details

Defined in Database.Redis.Protocol

Methods

showsPrec :: Int -> Reply -> ShowS #

show :: Reply -> String #

showList :: [Reply] -> ShowS #

Eq Reply Source # 
Instance details

Defined in Database.Redis.Protocol

Methods

(==) :: Reply -> Reply -> Bool #

(/=) :: Reply -> Reply -> Bool #

RedisResult Reply Source # 
Instance details

Defined in Database.Redis.Types

RedisCtx Redis (Either Reply) Source # 
Instance details

Defined in Database.Redis.Core

type Rep Reply Source # 
Instance details

Defined in Database.Redis.Protocol

data SortOpts Source #

Options for the sort command.

Instances

Instances details
Show SortOpts Source # 
Instance details

Defined in Database.Redis.ManualCommands

Eq SortOpts Source # 
Instance details

Defined in Database.Redis.ManualCommands

get Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> m (f (Maybe ByteString)) 

Get the value of a key (http://redis.io/commands/get). Since Redis 1.0.0

data Aggregate Source #

Constructors

Sum 
Min 
Max 

Instances

Instances details
Show Aggregate Source # 
Instance details

Defined in Database.Redis.ManualCommands

Eq Aggregate Source # 
Instance details

Defined in Database.Redis.ManualCommands

sort Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> SortOpts 
-> m (f [ByteString]) 

Sort the elements in a list, set or sorted set (http://redis.io/commands/sort). The Redis command SORT is split up into sort, sortStore. Since Redis 1.0.0

migrate Source #

Arguments

:: RedisCtx m f 
=> ByteString

host

-> ByteString

port

-> ByteString

key

-> Integer

destinationDb

-> Integer

timeout

-> m (f Status) 

Atomically transfer a key from a Redis instance to another one (http://redis.io/commands/migrate). The Redis command MIGRATE is split up into migrate, migrateMultiple. Since Redis 2.6.0

append Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> ByteString

value

-> m (f Integer) 

O(1) Append a value to a key (http://redis.io/commands/append). Since Redis 2.0.0

copy Source #

Arguments

:: RedisCtx m f 
=> ByteString

Source key

-> ByteString

Destination key

-> m (f Bool) 

Copies the value of a key to a new key (https://redis.io/commands/copy).

O(N) worst case for collections, where N is the number of nested items. O(1) for string values.

Since Redis 6.2.0

bitcount Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> m (f Integer) 

keys Source #

Arguments

:: RedisCtx m f 
=> ByteString

pattern

-> m (f [ByteString]) 

Find all keys matching the given pattern (http://redis.io/commands/keys). Since Redis 1.0.0

auth Source #

Arguments

:: RedisCtx m f 
=> ByteString

Password.

-> m (f Status) 

O(N) where N is the number of passwords defined for the user.

Authenticates client to the server.

defaultHooks :: Hooks Source #

The default hooks.

Every hook is the identity function, so installing defaultHooks has no effect on behavior.

data Status Source #

Constructors

Ok 
Pong 
Status ByteString 

Instances

Instances details
NFData Status Source # 
Instance details

Defined in Database.Redis.Types

Methods

rnf :: Status -> () #

Generic Status Source # 
Instance details

Defined in Database.Redis.Types

Associated Types

type Rep Status 
Instance details

Defined in Database.Redis.Types

type Rep Status = D1 ('MetaData "Status" "Database.Redis.Types" "hedis-0.16.2-inplace" 'False) (C1 ('MetaCons "Ok" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "Pong" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Status" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ByteString))))

Methods

from :: Status -> Rep Status x #

to :: Rep Status x -> Status #

Show Status Source # 
Instance details

Defined in Database.Redis.Types

Eq Status Source # 
Instance details

Defined in Database.Redis.Types

Methods

(==) :: Status -> Status -> Bool #

(/=) :: Status -> Status -> Bool #

RedisResult Status Source # 
Instance details

Defined in Database.Redis.Types

type Rep Status Source # 
Instance details

Defined in Database.Redis.Types

type Rep Status = D1 ('MetaData "Status" "Database.Redis.Types" "hedis-0.16.2-inplace" 'False) (C1 ('MetaCons "Ok" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "Pong" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Status" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ByteString))))

select Source #

Arguments

:: RedisCtx m f 
=> Integer

index

-> m (f Status) 

Change the selected database for the current connection (http://redis.io/commands/select). Since Redis 1.0.0

save :: RedisCtx m f => m (f Status) Source #

Synchronously save the dataset to disk (http://redis.io/commands/save). Since Redis 1.0.0

data Message Source #

Instances

Instances details
Show Message Source # 
Instance details

Defined in Database.Redis.PubSub

scan Source #

Arguments

:: RedisCtx m f 
=> Cursor 
-> m (f (Cursor, [ByteString]))

next cursor and values

Incrementally iterate the keys space (http://redis.io/commands/scan). The Redis command SCAN is split up into scan, scanOpts. Since Redis 2.8.0

wait Source #

Arguments

:: RedisCtx m f 
=> Integer

Number of replicas to wait for.

-> Integer

Maximum time to wait in milliseconds. 0 means wait forever.

-> m (f Integer) 

O(1) Wait for preceding writes to be acknowledged by a given number of replicas (https://redis.io/commands/wait).

Blocks until the asynchronous replication of all preceding write commands sent by the connection is completed.

Since Redis 3.0.0

data Hooks Source #

A collection of hook functions used by a connection.

Instances

Instances details
Show Hooks Source # 
Instance details

Defined in Database.Redis.Hooks

Methods

showsPrec :: Int -> Hooks -> ShowS #

show :: Hooks -> String #

showList :: [Hooks] -> ShowS #

rename Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> ByteString

newkey

-> m (f Status) 

Rename a key (http://redis.io/commands/rename). Since Redis 1.0.0

Does not return a error even if newkey existed.

move Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> Integer

db

-> m (f Bool) 

Move a key to another database (http://redis.io/commands/move). Since Redis 1.0.0

set Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> ByteString

value

-> m (f Status) 

data ConnectInfo Source #

Information for connnecting to a Redis server.

It is recommended to not use the ConnInfo data constructor directly. Instead use defaultConnectInfo and update it with record syntax. For example to connect to a password protected Redis server running on localhost and listening to the default port:

myConnectInfo :: ConnectInfo
myConnectInfo = defaultConnectInfo {connectAuth = Just "secret"}

Or better yet, use parseConnectInfo to parse a URL.

Constructors

ConnInfo 

Fields

Instances

Instances details
Show ConnectInfo Source # 
Instance details

Defined in Database.Redis.Connection

data Redis a Source #

Context for normal command execution, outside of transactions. Use runRedis to run actions of this type.

In this context, each result is wrapped in an Either to account for the possibility of Redis returning an Error reply.

Instances

Instances details
MonadIO Redis Source # 
Instance details

Defined in Database.Redis.Core.Internal

Methods

liftIO :: IO a -> Redis a #

MonadCatch Redis Source # 
Instance details

Defined in Database.Redis.Core.Internal

Methods

catch :: (HasCallStack, Exception e) => Redis a -> (e -> Redis a) -> Redis a #

MonadMask Redis Source # 
Instance details

Defined in Database.Redis.Core.Internal

Methods

mask :: HasCallStack => ((forall a. Redis a -> Redis a) -> Redis b) -> Redis b #

uninterruptibleMask :: HasCallStack => ((forall a. Redis a -> Redis a) -> Redis b) -> Redis b #

generalBracket :: HasCallStack => Redis a -> (a -> ExitCase b -> Redis c) -> (a -> Redis b) -> Redis (b, c) #

MonadThrow Redis Source # 
Instance details

Defined in Database.Redis.Core.Internal

Methods

throwM :: (HasCallStack, Exception e) => e -> Redis a #

Applicative Redis Source # 
Instance details

Defined in Database.Redis.Core.Internal

Methods

pure :: a -> Redis a #

(<*>) :: Redis (a -> b) -> Redis a -> Redis b #

liftA2 :: (a -> b -> c) -> Redis a -> Redis b -> Redis c #

(*>) :: Redis a -> Redis b -> Redis b #

(<*) :: Redis a -> Redis b -> Redis a #

Functor Redis Source # 
Instance details

Defined in Database.Redis.Core.Internal

Methods

fmap :: (a -> b) -> Redis a -> Redis b #

(<$) :: a -> Redis b -> Redis a #

Monad Redis Source # 
Instance details

Defined in Database.Redis.Core.Internal

Methods

(>>=) :: Redis a -> (a -> Redis b) -> Redis b #

(>>) :: Redis a -> Redis b -> Redis b #

return :: a -> Redis a #

MonadFail Redis Source # 
Instance details

Defined in Database.Redis.Core.Internal

Methods

fail :: String -> Redis a #

MonadRedis Redis Source # 
Instance details

Defined in Database.Redis.Core

Methods

liftRedis :: Redis a -> Redis a Source #

MonadUnliftIO Redis Source # 
Instance details

Defined in Database.Redis.Core.Internal

Methods

withRunInIO :: ((forall a. Redis a -> IO a) -> IO b) -> Redis b #

RedisCtx Redis (Either Reply) Source # 
Instance details

Defined in Database.Redis.Core

defaultConnectInfo :: ConnectInfo Source #

Default information for connecting:

 connectAddr           = ConnectAddrHostPort "localhost" 6379 -- Redis default port
 connectAuth           = Nothing         -- No password
 connectUsername       = Nothing         -- No user
 connectDatabase       = 0               -- SELECT database 0
 connectMaxConnections = 50              -- Up to 50 connections
 connectNumStripes     = Just 1          -- A single stripe
 connectMaxIdleTime    = 30              -- Keep open for 30 seconds
 connectTimeout        = Nothing         -- Don't add timeout logic
 connectTLSParams      = Nothing         -- Do not use TLS
 connectHooks          = defaultHooks    -- Do nothing
 connectPoolLabel      = ""              -- no label

parseConnectInfo :: String -> Either String ConnectInfo Source #

Parse a ConnectInfo from a URL according to the Rules in Redis client

Standalone Redis:

redis :// [[username :] password@] host [:port][/database]
>>> parseConnectInfo "redis://username:password@host:42/2"
Right (ConnInfo {connectAddr = ConnectAddrHostPort "host" 42, connectAuth = Just "password", connectUsername = Just "username", connectDatabase = 2, connectMaxConnections = 50, connectNumStripes = Just 1, connectMaxIdleTime = 30s, connectTimeout = Nothing, connectTLSParams = Nothing, connectHooks = Hooks {...}, connectPoolLabel = ""})
>>> parseConnectInfo "redis://password@host:42/2"
Right (ConnInfo {connectAddr = ConnectAddrHostPort "host" 42, connectAuth = Just "password", connectUsername = Nothing, connectDatabase = 2, connectMaxConnections = 50, connectNumStripes = Just 1, connectMaxIdleTime = 30s, connectTimeout = Nothing, connectTLSParams = Nothing, connectHooks = Hooks {...}, connectPoolLabel = ""})

TLS-enabled Redis:

rediss :// [[username :] password@] host [: port][/database]

Unix socket Redis:

redis-socket :// [[username :] password@]path [? [&database=database]
>>> parseConnectInfo "redis-socket://password@/tmp/redis.sock?database=2"
Right (ConnInfo {connectAddr = ConnectAddrUnixSocket "/tmp/redis.sock", connectAuth = Just "password", connectUsername = Nothing, connectDatabase = 2, connectMaxConnections = 50, connectNumStripes = Just 1, connectMaxIdleTime = 30s, connectTimeout = Nothing, connectTLSParams = Nothing, connectHooks = Hooks {...}, connectPoolLabel = ""})
>>> parseConnectInfo "redis://username:password@host:42/db"
Left "Invalid port: db"

The scheme is validated, to prevent mixing up configurations:

>>> parseConnectInfo "postgres://"
Left "Wrong scheme postgres:"

Beyond that, all values are optional. Omitted values are taken from defaultConnectInfo:

>>> parseConnectInfo "rediss://"
Right (ConnInfo {connectAddr = ConnectAddrHostPort "localhost" 6379, connectAuth = Nothing, connectUsername = Nothing, connectDatabase = 0, connectMaxConnections = 50, connectNumStripes = Just 1, connectMaxIdleTime = 30s, connectTimeout = Nothing, connectTLSParams = Just (ClientParams ...), connectHooks = Hooks {...}, connectPoolLabel = ""})

disconnect :: Connection -> IO () Source #

Destroy all idle resources in the pool, works for all types of the connection.

checkedConnect :: ConnectInfo -> IO Connection Source #

Constructs a Connection pool to a Redis server designated by the given ConnectInfo, then tests if the server is actually there.

Throws an ConnectError exception if the connection to the Redis server can't be established.

withConnect :: (MonadMask m, MonadIO m) => ConnectInfo -> (Connection -> m c) -> m c Source #

Memory bracket around connect and disconnect.

withCheckedConnect :: ConnectInfo -> (Connection -> IO c) -> IO c Source #

Memory bracket around checkedConnect and disconnect

connectCluster :: ConnectInfo -> IO Connection Source #

Constructs a ShardMap of connections to clustered nodes. The argument is a ConnectInfo for any node in the cluster

Some Redis commands are currently not supported in cluster mode - CONFIG, AUTH - SCAN - MOVE, SELECT - RESET

checkedConnectCluster :: ConnectInfo -> IO Connection Source #

Constructs a Connection pool to a Redis cluster designated by the given ConnectInfo, then tests if the server is actually there.

Throws an ClusterConnectError exception if the connection to the Redis server can't be established.

data PubSub Source #

Encapsulates subscription changes. Use subscribe, unsubscribe, psubscribe, punsubscribe or mempty to construct a value. Combine values by using the Monoid interface, i.e. mappend and mconcat.

Instances

Instances details
Monoid PubSub Source # 
Instance details

Defined in Database.Redis.PubSub

Semigroup PubSub Source # 
Instance details

Defined in Database.Redis.PubSub

Eq PubSub Source # 
Instance details

Defined in Database.Redis.PubSub

Methods

(==) :: PubSub -> PubSub -> Bool #

(/=) :: PubSub -> PubSub -> Bool #

runRedisNonBlocking :: Connection -> Redis a -> IO (Maybe a) Source #

Interact with a Redis datastore specified by the given Connection, but return early if acquiring from the connection pool would block.

Like runRedis, but if all connections in the Connection pool are used, it immediately returns Nothing. This can be useful for logging purposes.

unRedis :: Redis a -> ReaderT RedisEnv IO a Source #

Deconstruct Redis constructor.

unRedis and reRedis can be used to define instances for arbitrary typeclasses.

WARNING! These functions are considered internal and no guarantee is given at this point that they will not break in future.

reRedis :: ReaderT RedisEnv IO a -> Redis a Source #

Reconstruct Redis constructor.

class MonadRedis m => RedisCtx (m :: Type -> Type) (f :: Type -> Type) | m -> f where Source #

This class captures the following behaviour: In a context m, a command will return its result wrapped in a "container" of type f.

Please refer to the Command Type Signatures section of this page for more information.

Methods

returnDecode :: RedisResult a => Reply -> m (f a) Source #

Instances

Instances details
RedisCtx RedisTx Queued Source # 
Instance details

Defined in Database.Redis.Transactions

RedisCtx Redis (Either Reply) Source # 
Instance details

Defined in Database.Redis.Core

class Monad m => MonadRedis (m :: Type -> Type) where Source #

Methods

liftRedis :: Redis a -> m a Source #

Instances

Instances details
MonadRedis Redis Source # 
Instance details

Defined in Database.Redis.Core

Methods

liftRedis :: Redis a -> Redis a Source #

MonadRedis RedisTx Source # 
Instance details

Defined in Database.Redis.Transactions

Methods

liftRedis :: Redis a -> RedisTx a Source #

(MonadTrans t, MonadRedis m, Monad (t m)) => MonadRedis (t m) Source # 
Instance details

Defined in Database.Redis.Core

Methods

liftRedis :: Redis a -> t m a Source #

type SendRequestHook = ([ByteString] -> IO Reply) -> [ByteString] -> IO Reply Source #

A hook for sending commands to the server and receiving replies from the server.

This wraps the command-level request path used by most Redis commands.

type SendPubSubHook = ([ByteString] -> IO ()) -> [ByteString] -> IO () Source #

A hook for sending pub/sub messages to the server.

type CallbackHook = (Message -> IO PubSub) -> Message -> IO PubSub Source #

A hook for invoking callbacks with pub/sub messages.

type SendHook = (ByteString -> IO ()) -> ByteString -> IO () Source #

A hook for sending raw bytes to the server.

This sits below request rendering and can be used to observe the exact wire payload sent on the socket.

type ReceiveHook = IO Reply -> IO Reply Source #

A hook for receiving replies from the server.

sendRequest :: (RedisCtx m f, RedisResult a) => [ByteString] -> m (f a) Source #

sendRequest can be used to implement commands from experimental versions of Redis. An example of how to implement a command is given below.

-- |Redis DEBUG OBJECT command
debugObject :: ByteString -> Redis (Either Reply ByteString)
debugObject key = sendRequest ["DEBUG", "OBJECT", key]

data HashSlot Source #

Instances

Instances details
Enum HashSlot Source # 
Instance details

Defined in Database.Redis.Cluster.HashSlot

Num HashSlot Source # 
Instance details

Defined in Database.Redis.Cluster.HashSlot

Integral HashSlot Source # 
Instance details

Defined in Database.Redis.Cluster.HashSlot

Real HashSlot Source # 
Instance details

Defined in Database.Redis.Cluster.HashSlot

Show HashSlot Source # 
Instance details

Defined in Database.Redis.Cluster.HashSlot

Eq HashSlot Source # 
Instance details

Defined in Database.Redis.Cluster.HashSlot

Ord HashSlot Source # 
Instance details

Defined in Database.Redis.Cluster.HashSlot

keyToSlot :: ByteString -> HashSlot Source #

Compute the hashslot associated with a key

>>> keyToSlot "123"
HashSlot 5970
>>> keyToSlot "{123"
HashSlot 2872
>>> keyToSlot "{123}"
HashSlot 5970
>>> keyToSlot "{}123"
HashSlot 7640
>>> keyToSlot "{123}1{abc}"
HashSlot 5970
>>> keyToSlot "\00\01"
HashSlot 4129

authOpts Source #

Arguments

:: RedisCtx m f 
=> ByteString

Password.

-> AuthOpts

Additional options.

-> m (f Status) 

O(N) where N is the number of passwords defined for the user.

Authenticates client to the server.

This method allows passing additional options.

data AuthOpts Source #

Additional parameters for the auth command.

Constructors

AuthOpts 

Fields

Instances

Instances details
Show AuthOpts Source # 
Instance details

Defined in Database.Redis.ManualCommands

defaultAuthOpts :: AuthOpts Source #

Default options for AuthOpts

>>> defaultAuthOpts
AuthOpts {authOptsUsername = Nothing}

echo Source #

Arguments

:: RedisCtx m f 
=> ByteString

message

-> m (f ByteString) 

Echo the given string (http://redis.io/commands/echo). Since Redis 1.0.0

ping :: RedisCtx m f => m (f Status) Source #

Ping the server (http://redis.io/commands/ping). Since Redis 1.0.0

quit :: RedisCtx m f => m (f Status) Source #

Close the connection (http://redis.io/commands/quit). Since Redis 1.0.0

copyOpts Source #

Arguments

:: RedisCtx m f 
=> ByteString

Source key

-> ByteString

Destination key

-> CopyOpts

Copy options

-> m (f Bool) 

Copies the value of a key to a new key (https://redis.io/commands/copy).

O(N) worst case for collections, where N is the number of nested items. O(1) for string values.

Since Redis 6.2.0

data CopyOpts Source #

Options for the copy command.

Constructors

CopyOpts 

Fields

Instances

Instances details
Show CopyOpts Source # 
Instance details

Defined in Database.Redis.ManualCommands

Eq CopyOpts Source # 
Instance details

Defined in Database.Redis.ManualCommands

defaultCopyOpts :: CopyOpts Source #

Redis default CopyOpts. Equivalent to omitting all optional parameters.

del Source #

Arguments

:: RedisCtx m f 
=> NonEmpty ByteString

List of keys to delete.

-> m (f Integer) 

Delete a key (http://redis.io/commands/del). Returns a number of keys that were removed. Since Redis 1.0.0

dump Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> m (f ByteString) 

Return a serialized version of the value stored at the specified key (http://redis.io/commands/dump). Since Redis 2.6.0

exists Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> m (f Bool) 

Determine if a key exists (http://redis.io/commands/exists). Since Redis 1.0.0

expire Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> Integer

seconds

-> m (f Bool) 

Set a key's time to live in seconds (http://redis.io/commands/expire). Since Redis 1.0.0

expireOpts Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> Integer

seconds

-> ExpireOpts 
-> m (f Bool) 

expireat Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> Integer

timestamp

-> m (f Bool) 

Set the expiration for a key as a UNIX timestamp (http://redis.io/commands/expireat). Since Redis 1.2.0

expireatOpts Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> Integer

timestamp

-> ExpireOpts 
-> m (f Bool) 

Set the expiration for a key as a UNIX timestamp (http://redis.io/commands/expireat). Since Redis 1.2.0

data MigrateOpts Source #

Options for the migrate command.

Instances

Instances details
Show MigrateOpts Source # 
Instance details

Defined in Database.Redis.ManualCommands

Eq MigrateOpts Source # 
Instance details

Defined in Database.Redis.ManualCommands

defaultMigrateOpts :: MigrateOpts Source #

Redis default MigrateOpts. Equivalent to omitting all optional parameters.

MigrateOpts
    { migrateCopy    = False -- remove the key from the local instance
    , migrateReplace = False -- don't replace existing key on the remote instance
    , migrateAuth = Nothing
    }

migrateMultiple Source #

Arguments

:: RedisCtx m f 
=> ByteString

host

-> ByteString

port

-> Integer

destinationDb

-> Integer

timeout

-> MigrateOpts 
-> [ByteString]

keys

-> m (f Status) 

Atomically transfer a key from a Redis instance to another one (http://redis.io/commands/migrate). The Redis command MIGRATE is split up into migrate, migrateMultiple. Since Redis 2.6.0

objectRefcount Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> m (f Integer) 

Inspect the internals of Redis objects (http://redis.io/commands/object). The Redis command OBJECT is split up into objectRefcount, objectEncoding, objectIdletime. Since Redis 2.2.3

objectEncoding Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> m (f ByteString) 

Inspect the internals of Redis objects (http://redis.io/commands/object). The Redis command OBJECT is split up into objectRefcount, objectEncoding, objectIdletime. Since Redis 2.2.3

objectIdletime Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> m (f Integer) 

Inspect the internals of Redis objects (http://redis.io/commands/object). The Redis command OBJECT is split up into objectRefcount, objectEncoding, objectIdletime. Since Redis 2.2.3

persist Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> m (f Bool) 

Remove the expiration from a key (http://redis.io/commands/persist). Since Redis 2.2.0

expiretime :: RedisCtx m f => ByteString -> m (f Integer) Source #

Returns the expiration time of a key as a Unix timestamp (https://redis.io/commands/expiretime).

Returns -2 if the key does not exist; -1 if the key exists but has no associated expiration.

O(1). Since Redis 7.0.0

pexpire Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> Integer

milliseconds

-> m (f Bool) 

Set a key's time to live in milliseconds (http://redis.io/commands/pexpire). Since Redis 2.6.0

pexpiretime :: RedisCtx m f => ByteString -> m (f Integer) Source #

Returns the expiration time of a key as a Unix timestamp in milliseconds (https://redis.io/commands/pexpiretime).

Returns -2 if the key does not exist; -1 if the key exists but has no associated expiration.

O(1). Since Redis 7.0.0

pexpireat Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> Integer

millisecondsTimestamp

-> m (f Bool) 

Set the expiration for a key as a UNIX timestamp specified in milliseconds (http://redis.io/commands/pexpireat). Since Redis 2.6.0

pexpireatOpts Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> Integer

millisecondsTimestamp

-> ExpireOpts 
-> m (f Bool) 

Set the expiration for a key as a UNIX timestamp specified in milliseconds (http://redis.io/commands/pexpireat). Since Redis 7.0

pttl Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key.

-> m (f Integer) 

O(1) Get the time to live for a key in milliseconds (http://redis.io/commands/pttl). Since Redis 2.6.0

This command returns -2 if the key does not exist. This command returns -1 if the key exists but has no associated value

randomkey :: RedisCtx m f => m (f (Maybe ByteString)) Source #

Return a random key from the keyspace (http://redis.io/commands/randomkey). Since Redis 1.0.0

renamenx Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> ByteString

newkey

-> m (f Bool) 

Rename a key, only if the new key does not exist (http://redis.io/commands/renamenx). Since Redis 1.0.0

restore Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> Integer

timeToLive

-> ByteString

serializedValue

-> m (f Status) 

Create a key using the provided serialized value, previously obtained using DUMP (http://redis.io/commands/restore). The Redis command RESTORE is split up into restore, restoreReplace. Since Redis 2.6.0

restoreReplace Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> Integer

timeToLive

-> ByteString

serializedValue

-> m (f Status) 

Create a key using the provided serialized value, previously obtained using DUMP (http://redis.io/commands/restore). The Redis command RESTORE is split up into restore, restoreReplace. Since Redis 2.6.0

data Cursor Source #

Instances

Instances details
Show Cursor Source # 
Instance details

Defined in Database.Redis.ManualCommands

Eq Cursor Source # 
Instance details

Defined in Database.Redis.ManualCommands

Methods

(==) :: Cursor -> Cursor -> Bool #

(/=) :: Cursor -> Cursor -> Bool #

RedisArg Cursor Source # 
Instance details

Defined in Database.Redis.ManualCommands

RedisResult Cursor Source # 
Instance details

Defined in Database.Redis.ManualCommands

data ScanOpts Source #

Instances

Instances details
Show ScanOpts Source # 
Instance details

Defined in Database.Redis.ManualCommands

Eq ScanOpts Source # 
Instance details

Defined in Database.Redis.ManualCommands

defaultScanOpts :: ScanOpts Source #

Redis default ScanOpts. Equivalent to omitting all optional parameters.

ScanOpts
    { scanMatch = Nothing -- don't match any pattern
    , scanCount = Nothing -- don't set any requirements on number elements returned (works like value COUNT 10)
    }

scanOpts Source #

Arguments

:: RedisCtx m f 
=> Cursor 
-> ScanOpts 
-> Maybe ByteString

types of the object to scan

-> m (f (Cursor, [ByteString]))

next cursor and values

Incrementally iterate the keys space (http://redis.io/commands/scan). The Redis command SCAN is split up into scan, scanOpts. Since Redis 2.8.0

defaultSortOpts :: SortOpts Source #

Redis default SortOpts. Equivalent to omitting all optional parameters.

SortOpts
    { sortBy    = Nothing -- omit the BY option
    , sortLimit = (0,-1)  -- return entire collection
    , sortGet   = []      -- omit the GET option
    , sortOrder = Asc     -- sort in ascending order
    , sortAlpha = False   -- sort numerically, not lexicographically
    }

data SortOrder Source #

Constructors

Asc 
Desc 

Instances

Instances details
Show SortOrder Source # 
Instance details

Defined in Database.Redis.ManualCommands

Eq SortOrder Source # 
Instance details

Defined in Database.Redis.ManualCommands

sortStore Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> ByteString

destination

-> SortOpts 
-> m (f Integer) 

Sort the elements in a list, set or sorted set (http://redis.io/commands/sort). The Redis command SORT is split up into sort, sortStore. Since Redis 1.0.0

ttl Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key to check.

-> m (f Integer) 

O(1) Get the time to live for a key (http://redis.io/commands/ttl). Since Redis 1.0.0

This command returns: * -2 if the key does not exist * -1 if the key exists but has no associated value

getType Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> m (f RedisType) 

Determine the type stored at key (http://redis.io/commands/type). Since Redis 1.0.0

hdel Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> NonEmpty ByteString

field

-> m (f Integer) 

Delete one or more hash fields (http://redis.io/commands/hdel). Since Redis 2.0.0

hexists Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> ByteString

field

-> m (f Bool) 

Determine if a hash field exists (http://redis.io/commands/hexists). Since Redis 2.0.0

hexpire Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key of the hash.

-> Integer

Seconds until expiration.

-> NonEmpty ByteString

List of fields to set expiration for.

-> m (f [HashFieldExpirationStatus]) 

Sets expiration for hash fields using relative time to expire in seconds (https://redis.io/commands/hexpire).

O(N) where N is the number of specified fields.

Set an expiration (TTL or time to live) on one or more fields of a given hash key. You must specify at least one field. Field(s) will automatically be deleted from the hash key when their TTLs expire.

Field expirations will only be cleared by commands that delete or overwrite the contents of the hash fields, including HDEL and HSET commands. This means that all the operations that conceptually alter the value stored at a hash key's field without replacing it with a new one will leave the TTL untouched.

You can clear the TTL using the hpersist command, which turns the hash field back into a persistent field.

Note that calling hexpirehpexpire with a zero TTL or hexpireathpexpireat with a time in the past will result in the hash field being deleted.

Since Redis 7.4.0

hexpireOpts Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key of the hash.

-> Integer

Seconds until expiration.

-> NonEmpty ByteString

List of fields to set expiration for.

-> ExpireOpts

Expiration options.

-> m (f [HashFieldExpirationStatus]) 

Sets expiration for hash fields using relative time to expire in seconds (https://redis.io/commands/hexpire).

O(N) where N is the number of specified fields.

Since Redis 7.4.0

hexpireat Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key of the hash.

-> Integer

Absolute Unix timestamp in seconds at which the hash fields will expire.

-> NonEmpty ByteString

List of fields to set expiration for.

-> m (f [HashFieldExpirationStatus]) 

Sets expiration for hash fields using an absolute Unix timestamp in seconds (https://redis.io/commands/hexpireat).

O(N) where N is the number of specified fields.

Since Redis 7.4.0

hexpireatOpts Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key of the hash.

-> Integer

Absolute Unix timestamp in seconds at which the hash fields will expire.

-> NonEmpty ByteString

List of fields to set expiration for.

-> ExpireOpts

Expiration options.

-> m (f [HashFieldExpirationStatus]) 

Sets expiration for hash fields using an absolute Unix timestamp in seconds (https://redis.io/commands/hexpireat).

O(N) where N is the number of specified fields.

Since Redis 7.4.0

hexpiretime :: RedisCtx m f => ByteString -> NonEmpty ByteString -> m (f [HashFieldExpirationInfo]) Source #

Returns the expiration time of hash fields as a Unix timestamp in seconds (https://redis.io/commands/hexpiretime).

O(N) where N is the number of specified fields.

Since Redis 7.4.0

hget Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> ByteString

field

-> m (f (Maybe ByteString)) 

Get the value of a hash field (http://redis.io/commands/hget). Since Redis 2.0.0

hgetdel :: RedisCtx m f => ByteString -> NonEmpty ByteString -> m (f [Maybe ByteString]) Source #

Returns the values associated with the specified fields in a hash and deletes those fields (https://redis.io/commands/hgetdel).

O(N) where N is the number of specified fields.

Since Redis 8.0.0

hgetex :: RedisCtx m f => ByteString -> NonEmpty ByteString -> m (f [Maybe ByteString]) Source #

Returns the values associated with the specified fields in a hash and optionally updates the key expiration (https://redis.io/commands/hgetex).

O(N) where N is the number of specified fields.

Since Redis 8.0.0

hgetexOpts :: RedisCtx m f => ByteString -> NonEmpty ByteString -> HGetExOpts -> m (f [Maybe ByteString]) Source #

Returns the values associated with the specified fields in a hash and optionally updates the key expiration (https://redis.io/commands/hgetex).

O(N) where N is the number of specified fields.

Since Redis 8.0.0

hgetall Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> m (f [(ByteString, ByteString)]) 

Get all the fields and values in a hash (http://redis.io/commands/hgetall).

Since Redis 2.0.0.

hincrby Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> ByteString

field

-> Int64

increment

-> m (f Int64) 

Increment the integer value of a hash field by the given number (http://redis.io/commands/hincrby). Since Redis 2.0.0

hincrbyfloat Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> ByteString

field

-> Double

increment

-> m (f Double) 

Increment the float value of a hash field by the given amount (http://redis.io/commands/hincrbyfloat). Since Redis 2.6.0

hkeys Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> m (f [ByteString]) 

O(N) where N is size of the hash. Get all the fields in a hash (http://redis.io/commands/hkeys). Since Redis 2.0.0

hlen Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> m (f Integer) 

O(1) Get the number of fields in a hash (http://redis.io/commands/hlen).

Since Redis 2.0.0

hmget Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> NonEmpty ByteString

field

-> m (f [Maybe ByteString]) 

Get the values of all the given hash fields (http://redis.io/commands/hmget). Since Redis 2.0.0

hmset Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> NonEmpty (ByteString, ByteString)

fieldValue

-> m (f Status) 

Set multiple hash fields to multiple values (http://redis.io/commands/hmset).

Deprecated by Redis, consider using hset with multiple field-value pairs.

Since Redis 2.0.0

hrandfield :: RedisCtx m f => ByteString -> m (f (Maybe ByteString)) Source #

Returns a random field from a hash (https://redis.io/commands/hrandfield).

O(1)

Since Redis 6.2.0

hrandfieldCount :: RedisCtx m f => ByteString -> Integer -> m (f [ByteString]) Source #

Returns one or more random fields from a hash (https://redis.io/commands/hrandfield).

O(N) where N is the number of fields returned.

If the provided count argument is positive, return an array of distinct fields. The array's length is either count or the hash's number of fields (HLEN), whichever is lower.

If called with a negative count, the behavior changes and the command is allowed to return the same field multiple times. In this case, the number of returned fields is the absolute value of the specified count.

Since Redis 6.2.0

hrandfieldCountWithValues :: RedisCtx m f => ByteString -> Integer -> m (f [(ByteString, ByteString)]) Source #

Returns one or more random fields and their values from a hash (https://redis.io/commands/hrandfield).

O(N) where N is the number of fields returned.

If the provided count argument is positive, return an array of distinct fields. The array's length is either count or the hash's number of fields (HLEN), whichever is lower.

If called with a negative count, the behavior changes and the command is allowed to return the same field multiple times. In this case, the number of returned fields is the absolute value of the specified count.

Since Redis 6.2.0

hscan Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> Cursor 
-> m (f (Cursor, [(ByteString, ByteString)]))

next cursor and values

Incrementally iterate hash fields and associated values (http://redis.io/commands/hscan). The Redis command HSCAN is split up into hscan, hscanOpts. Since Redis 2.8.0

hscanOpts Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> Cursor 
-> ScanOpts 
-> m (f (Cursor, [(ByteString, ByteString)]))

next cursor and values

Incrementally iterate hash fields and associated values (http://redis.io/commands/hscan). The Redis command HSCAN is split up into hscan, hscanOpts. Since Redis 2.8.0

hpexpire Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key of the hash.

-> Integer

Milliseconds until expiration.

-> NonEmpty ByteString

List of fields to set expiration for.

-> m (f [HashFieldExpirationStatus]) 

Sets expiration for hash fields using relative time to expire in milliseconds (https://redis.io/commands/hpexpire).

O(N) where N is the number of specified fields.

Since Redis 7.4.0

hpexpireOpts Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key of the hash.

-> Integer

Milliseconds until expiration.

-> NonEmpty ByteString

List of fields to set expiration for.

-> ExpireOpts

Expiration options.

-> m (f [HashFieldExpirationStatus]) 

Sets expiration for hash fields using relative time to expire in milliseconds (https://redis.io/commands/hpexpire).

O(N) where N is the number of specified fields.

Since Redis 7.4.0

hpexpireat Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key of the hash.

-> Integer

Absolute Unix timestamp in milliseconds at which the hash fields will expire.

-> NonEmpty ByteString

List of fields to set expiration for.

-> m (f [HashFieldExpirationStatus]) 

Sets expiration for hash fields using an absolute Unix timestamp in milliseconds (https://redis.io/commands/hpexpireat).

O(N) where N is the number of specified fields.

Since Redis 7.4.0

hpexpireatOpts Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key of the hash.

-> Integer

Absolute Unix timestamp in milliseconds at which the hash fields will expire.

-> NonEmpty ByteString

List of fields to set expiration for.

-> ExpireOpts

Expiration options.

-> m (f [HashFieldExpirationStatus]) 

Sets expiration for hash fields using an absolute Unix timestamp in milliseconds (https://redis.io/commands/hpexpireat).

O(N) where N is the number of specified fields.

Since Redis 7.4.0

hpexpiretime :: RedisCtx m f => ByteString -> NonEmpty ByteString -> m (f [HashFieldExpirationInfo]) Source #

Returns the expiration time of hash fields as a Unix timestamp in milliseconds (https://redis.io/commands/hpexpiretime).

O(N) where N is the number of specified fields.

Since Redis 7.4.0

hpttl :: RedisCtx m f => ByteString -> NonEmpty ByteString -> m (f [HashFieldExpirationInfo]) Source #

Returns the TTL in milliseconds of hash fields (https://redis.io/commands/hpttl).

O(N) where N is the number of specified fields.

Since Redis 7.4.0

hset Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> NonEmpty (ByteString, ByteString)

Values.

-> m (f Integer) 

Set the string value of a hash field (http://redis.io/commands/hset).

This command oveerides keys if they exist in the hash.

Since Redis 2.0.0

hsetex :: RedisCtx m f => ByteString -> NonEmpty (ByteString, ByteString) -> m (f Bool) Source #

Sets fields in a hash and optionally updates the key expiration (https://redis.io/commands/hsetex).

O(N) where N is the number of fields set.

Since Redis 8.0.0

hsetexOpts :: RedisCtx m f => ByteString -> NonEmpty (ByteString, ByteString) -> HSetExOpts -> m (f Bool) Source #

Sets fields in a hash and optionally updates the key expiration (https://redis.io/commands/hsetex).

O(N) where N is the number of fields set.

Since Redis 8.0.0

hsetnx Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> ByteString

field

-> ByteString

value

-> m (f Bool) 

Set the value of a hash field, only if the field does not exist (http://redis.io/commands/hsetnx). Since Redis 2.0.0

hstrlen Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> ByteString

field

-> m (f Integer) 

Get the length of the value of a hash field (http://redis.io/commands/hstrlen). Since Redis 3.2.0

httl Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key of the hash.

-> NonEmpty ByteString

List of fields to get TTL for.

-> m (f [HashFieldExpirationInfo]) 

Returns the TTL in seconds of hash fields (https://redis.io/commands/httl).

O(N) where N is the number of specified fields.

Since Redis 7.4.0

hvals Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> m (f [ByteString]) 

Get all the values in a hash (http://redis.io/commands/hvals). Since Redis 2.0.0

pfadd Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key.

-> NonEmpty ByteString

Value.

-> m (f Integer) 

O(1) Adds all the elements arguments to the HyperLogLog data structure stored at the variable name specified as first argument (http://redis.io/commands/pfadd). Since Redis 2.8.9

pfcount Source #

Arguments

:: RedisCtx m f 
=> NonEmpty ByteString

key

-> m (f Integer) 

Return the approximated cardinality of the set(s) observed by the HyperLogLog at key(s) (http://redis.io/commands/pfcount). Since Redis 2.8.9

pfmerge Source #

Arguments

:: RedisCtx m f 
=> ByteString

destkey

-> [ByteString]

sourcekey

-> m (f ByteString) 

Merge N different HyperLogLogs into a single one (http://redis.io/commands/pfmerge). Since Redis 2.8.9

blpop Source #

Arguments

:: RedisCtx m f 
=> [ByteString]

key

-> Integer

timeout

-> m (f (Maybe (ByteString, ByteString))) 

Remove and get the first element in a list, or block until one is available (http://redis.io/commands/blpop). Since Redis 2.0.0

blpopFloat Source #

Arguments

:: RedisCtx m f 
=> [ByteString]

key

-> Integer

timeout

-> m (f (Maybe (ByteString, ByteString))) 

Remove and get the first element in a list, or block until one is available (http://redis.io/commands/blpop). Since Redis 6.0.0

blmpop :: RedisCtx m f => Double -> NonEmpty ByteString -> ListDirection -> m (f (Maybe (ByteString, [ByteString]))) Source #

Pops one or more elements from the first non-empty list from a list of keys, or blocks until one is available (https://redis.io/commands/blmpop).

O(N+M) where N is the number of provided keys and M is the number of elements returned.

Since Redis 7.0.0

blmpopCount :: RedisCtx m f => Double -> NonEmpty ByteString -> ListDirection -> Integer -> m (f (Maybe (ByteString, [ByteString]))) Source #

Pops one or more elements from the first non-empty list from a list of keys, or blocks until one is available (https://redis.io/commands/blmpop).

O(N+M) where N is the number of provided keys and M is the number of elements returned.

Since Redis 7.0.0

blmove Source #

Arguments

:: RedisCtx m f 
=> ByteString

Source

-> ByteString

Destination

-> ListDirection

Direction where to get the element from in the source list

-> ListDirection

Direction where to push the element to in the destination list

-> Integer 
-> m (f (Maybe ByteString)) 

Move an element after taking it from one list and pushing it to another, or blocks until one is available (https://redis.io/commands/blmove).

In clustered environments source and destination keys must be in the same hash slot, which can be ensured by using hash tags (e.g. {tag}source and {tag}destination).

O(1)

Since Redis 6.2.0

brpop Source #

Arguments

:: RedisCtx m f 
=> NonEmpty ByteString

key

-> Integer

timeout

-> m (f (Maybe (ByteString, ByteString))) 

O(N) Remove and get the last element in a list, or block until one is available (http://redis.io/commands/brpop).

Since Redis 2.0.0

brpopFloat Source #

Arguments

:: RedisCtx m f 
=> [ByteString]

key

-> Double

timeout

-> m (f (Maybe (ByteString, ByteString))) 

O(N) Remove and get the last element in a list, or block until one is available (http://redis.io/commands/brpop).

Since Redis 2.0.0

brpoplpush Source #

Arguments

:: RedisCtx m f 
=> ByteString

source

-> ByteString

destination

-> Integer

timeout

-> m (f (Maybe ByteString)) 

Pop a value from a list, push it to another list and return it; or block until one is available (http://redis.io/commands/brpoplpush).

Since Redis 6.0 this command considered deprecated: it can be replaced by BLMOVE with the RIGHT and LEFT arguments when migrating or writing new code.

Since Redis 2.2.0

lindex Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key.

-> Integer

Index

-> m (f (Maybe ByteString)) 

Get an element from a list by its index (http://redis.io/commands/lindex). Since Redis 1.0.0

linsertBefore Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> ByteString

pivot

-> ByteString

value

-> m (f Integer) 

Insert an element before or after another element in a list (http://redis.io/commands/linsert). The Redis command LINSERT is split up into linsertBefore, linsertAfter. Since Redis 2.2.0

linsertAfter Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> ByteString

pivot

-> ByteString

value

-> m (f Integer) 

Insert an element before or after another element in a list (http://redis.io/commands/linsert). The Redis command LINSERT is split up into linsertBefore, linsertAfter. Since Redis 2.2.0

llen Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> m (f Integer) 

Get the length of a list (http://redis.io/commands/llen). Since Redis 1.0.0

lmpop :: RedisCtx m f => NonEmpty ByteString -> ListDirection -> m (f (Maybe (ByteString, [ByteString]))) Source #

Pops one or more elements from the first non-empty list from a list of keys (https://redis.io/commands/lmpop).

O(N+M) where N is the number of provided keys and M is the number of elements returned.

Since Redis 7.0.0

lmpopCount :: RedisCtx m f => NonEmpty ByteString -> ListDirection -> Integer -> m (f (Maybe (ByteString, [ByteString]))) Source #

Pops one or more elements from the first non-empty list from a list of keys (https://redis.io/commands/lmpop).

O(N+M) where N is the number of provided keys and M is the number of elements returned.

Since Redis 7.0.0

lpos :: RedisCtx m f => ByteString -> ByteString -> m (f (Maybe Integer)) Source #

Returns the index of the first matching element in a list (https://redis.io/commands/lpos).

O(N) where N is the number of elements in the list, for the average case. When searching for elements near the head or the tail of the list, or when the MAXLEN option is provided, the command may run in constant time.

Since Redis 6.0.6

data LPosOpts Source #

Constructors

LPosOpts 

Instances

Instances details
Show LPosOpts Source # 
Instance details

Defined in Database.Redis.ManualCommands

Eq LPosOpts Source # 
Instance details

Defined in Database.Redis.ManualCommands

lposOpts :: RedisCtx m f => ByteString -> ByteString -> LPosOpts -> m (f (Maybe Integer)) Source #

Returns the index of the first matching element in a list (https://redis.io/commands/lpos).

O(N) where N is the number of elements in the list, for the average case. When searching for elements near the head or the tail of the list, or when the MAXLEN option is provided, the command may run in constant time.

Since Redis 6.0.6

lposCount :: RedisCtx m f => ByteString -> ByteString -> Integer -> m (f [Integer]) Source #

Returns the indexes of matching elements in a list (https://redis.io/commands/lpos).

O(N) where N is the number of elements in the list, for the average case. When searching for elements near the head or the tail of the list, or when the MAXLEN option is provided, the command may run in constant time.

Since Redis 6.0.6

lposCountOpts :: RedisCtx m f => ByteString -> ByteString -> Integer -> LPosOpts -> m (f [Integer]) Source #

Returns the indexes of matching elements in a list (https://redis.io/commands/lpos).

O(N) where N is the number of elements in the list, for the average case. When searching for elements near the head or the tail of the list, or when the MAXLEN option is provided, the command may run in constant time.

Since Redis 6.0.6

lpop Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> m (f (Maybe ByteString)) 

Remove and get the first element in a list (http://redis.io/commands/lpop). Since Redis 1.0.0

lpopCount Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> Integer 
-> m (f [ByteString]) 

Remove and get the first element in a list (http://redis.io/commands/lpop). The reply will consist of up to count elements, depending on the list's length. Since Redis 1.0.0

lmove Source #

Arguments

:: RedisCtx m f 
=> ByteString

Source

-> ByteString

Destination

-> ListDirection

Direction where to get the element from in the source list

-> ListDirection

Direction where to push the element to in the destination list

-> m (f (Maybe ByteString)) 

Move an element after taking it from one list and pushing it to another (https://redis.io/commands/lmove).

In clustered environments source and destination keys must be in the same hash slot, which can be ensured by using hash tags (e.g. {tag}source and {tag}destination). O(1)

Since Redis 6.2.0

lpush Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key

-> NonEmpty ByteString

Value

-> m (f Integer) 

Prepend one or multiple values to a list (http://redis.io/commands/lpush). Since Redis 1.0.0

lpushx Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> NonEmpty ByteString

value

-> m (f Integer) 

Prepend a value to a list, only if the list exists (http://redis.io/commands/lpushx). Since Redis 2.2.0

lrange Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> Integer

start

-> Integer

stop

-> m (f [ByteString]) 

Get a range of elements from a list (http://redis.io/commands/lrange). Since Redis 1.0.0

lrem Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> Integer

count

-> ByteString

value

-> m (f Integer) 

Remove elements from a list (http://redis.io/commands/lrem). Since Redis 1.0.0

lset Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> Integer

index

-> ByteString

value

-> m (f Status) 

Set the value of an element in a list by its index (http://redis.io/commands/lset). Since Redis 1.0.0

ltrim Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> Integer

start

-> Integer

stop

-> m (f Status) 

Trim a list to the specified range (http://redis.io/commands/ltrim). Since Redis 1.0.0

rpop Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> m (f (Maybe ByteString)) 

Remove and get the last element in a list (http://redis.io/commands/rpop). Since Redis 1.0.0

rpopCount Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> Integer 
-> m (f [ByteString]) 

Remove and get the last element in a list (http://redis.io/commands/rpop). The reply will consist of up to count elements, depending on the list's length. Result will have no more than N arguments.

Since Redis 1.0.0

rpoplpush Source #

Arguments

:: RedisCtx m f 
=> ByteString

source

-> ByteString

destination

-> m (f (Maybe ByteString)) 

Remove the last element in a list, prepend it to another list and return that element f it existed (http://redis.io/commands/rpoplpush). Since Redis 1.2.0

rpush Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> NonEmpty ByteString

value

-> m (f Integer) 

Append one or multiple values to a list (http://redis.io/commands/rpush). Since Redis 1.0.0

rpushx Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> NonEmpty ByteString

value

-> m (f Integer) 

O(1) for each element added. Append a value to a list, only if the list exists (http://redis.io/commands/rpushx). Since Redis 2.2.0

eval Source #

Arguments

:: (RedisCtx m f, RedisResult a) 
=> ByteString

script

-> [ByteString]

keys

-> [ByteString]

args

-> m (f a) 

Execute a Lua script server side (http://redis.io/commands/eval). Since Redis 2.6.0

evalsha Source #

Arguments

:: (RedisCtx m f, RedisResult a) 
=> ByteString

base16-encoded sha1 hash of the script

-> [ByteString]

keys

-> [ByteString]

args

-> m (f a) 

Works like eval, but sends the SHA1 hash of the script instead of the script itself. Fails if the server does not recognise the hash, in which case, eval should be used instead.

fcall :: (RedisCtx m f, RedisResult a) => ByteString -> [ByteString] -> [ByteString] -> m (f a) Source #

Invokes a function (https://redis.io/commands/fcall).

Complexity depends on the function that is executed.

Since Redis 7.0.0

fcallReadonly :: (RedisCtx m f, RedisResult a) => ByteString -> [ByteString] -> [ByteString] -> m (f a) Source #

Invokes a read-only function (https://redis.io/commands/fcall_ro).

Complexity depends on the function that is executed.

Since Redis 7.0.0

data DebugMode Source #

Instances

Instances details
Show DebugMode Source # 
Instance details

Defined in Database.Redis.ManualCommands

Eq DebugMode Source # 
Instance details

Defined in Database.Redis.ManualCommands

RedisArg DebugMode Source # 
Instance details

Defined in Database.Redis.ManualCommands

functionHelp :: RedisCtx m f => m (f [ByteString]) Source #

Returns helpful text about FUNCTION subcommands (https://redis.io/commands/function-help).

O(1)

Since Redis 7.0.0

functionList :: RedisCtx m f => m (f Reply) Source #

Returns information about all libraries (https://redis.io/commands/function-list).

O(N) where N is the number of functions.

Since Redis 7.0.0

functionListOpts :: RedisCtx m f => FunctionListOpts -> m (f Reply) Source #

Returns information about all libraries (https://redis.io/commands/function-list).

O(N) where N is the number of functions.

Since Redis 7.0.0

scriptDebug :: RedisCtx m f => DebugMode -> m (f Bool) Source #

Set the debug mode for executed scripts (http://redis.io/commands/script-debug). Since Redis 3.2.0

scriptExists Source #

Arguments

:: RedisCtx m f 
=> NonEmpty ByteString

script

-> m (f [Bool]) 

Check existence of scripts in the script cache (http://redis.io/commands/script-exists). Since Redis 2.6.0

scriptFlush :: RedisCtx m f => m (f Status) Source #

Remove all the scripts from the script cache (http://redis.io/commands/script-flush). Since Redis 2.6.0

scriptKill :: RedisCtx m f => m (f Status) Source #

Kill the script currently in execution (http://redis.io/commands/script-kill). Since Redis 2.6.0

scriptLoad Source #

Arguments

:: RedisCtx m f 
=> ByteString

script

-> m (f ByteString) 

Load the specified Lua script into the script cache (http://redis.io/commands/script-load). Since Redis 2.6.0

bgrewriteaof :: RedisCtx m f => m (f Status) Source #

Asynchronously rewrite the append-only file (http://redis.io/commands/bgrewriteaof). Since Redis 1.0.0

bgsave :: RedisCtx m f => m (f Status) Source #

Asynchronously save the dataset to disk (http://redis.io/commands/bgsave).

Since Redis 1.0.0

bgsaveSchedule :: RedisCtx m f => m (f Status) Source #

Asynchronously save the dataset to disk (http://redis.io/commands/bgsave).

Immediately returns OK when an AOF rewrite is in progress and schedule the background save to run at the next opportunity.

A client may bee able to check if the operation succeeded using the lastsave command

Since Redis 3.2.2

clientGetname :: RedisCtx m f => m (f (Maybe ByteString)) Source #

Get the current connection name (http://redis.io/commands/client-getname). Since Redis 2.6.9

clientId :: RedisCtx m f => m (f Integer) Source #

Get the current connection ID (http://redis.io/commands/client-id). Since Redis 5.0.0

clientList :: RedisCtx m f => m (f [ByteString]) Source #

Get the list of client connections (http://redis.io/commands/client-list). Since Redis 2.4.0

clientPause Source #

Arguments

:: RedisCtx m f 
=> Integer

timeout

-> m (f Status) 

Stop processing commands from clients for some time (http://redis.io/commands/client-pause). Since Redis 2.9.50

data ReplyMode Source #

Instances

Instances details
Show ReplyMode Source # 
Instance details

Defined in Database.Redis.ManualCommands

Eq ReplyMode Source # 
Instance details

Defined in Database.Redis.ManualCommands

RedisArg ReplyMode Source # 
Instance details

Defined in Database.Redis.ManualCommands

clientReply :: RedisCtx m f => ReplyMode -> m (f Bool) Source #

Instruct the server whether to reply to commands (http://redis.io/commands/client-reply). Since Redis 3.2

clientUnpause :: RedisCtx m f => m (f Status) Source #

Resumes processing commands from paused clients (https://redis.io/commands/client-unpause).

O(N) where N is the number of paused clients.

Since Redis 6.2.0

clientSetname Source #

Arguments

:: RedisCtx m f 
=> ByteString

Connection Name.

-> m (f Status) 

Set the current connection name (http://redis.io/commands/client-setname). Since Redis 2.6.9

clientNoTouch :: RedisCtx m f => Bool -> m (f Status) Source #

The CLIENT NO-TOUCH command controls whether commands sent by the client will alter the LRULFU of the keys they access (<https:redis.iocommands/client-notouch>).

When turned on, the current client will not change LFU/LRU stats, unless it sends the TOUCH command.

When turned off, the client touches LFU/LRU stats just as a normal client.

O(1)

Since Redis 7.2.0

clientSetinfo :: RedisCtx m f => ClientSetInfoOpts -> m (f Status) Source #

The CLIENT SETINFO command assigns various info attributes to the current connection which are displayed in the output of CLIENT LIST and CLIENT INFO (https://redis.io/commands/client-setinfo).

O(1)

Since Redis 7.2.0

commandCount :: RedisCtx m f => m (f Integer) Source #

O(1) Get total number of Redis commands (http://redis.io/commands/command-count). Since Redis 2.8.13

commandInfo Source #

Arguments

:: RedisCtx m f 
=> [ByteString]

commandName

-> m (f [ByteString]) 

Get array of specific Redis command details (http://redis.io/commands/command-info). Since Redis 2.8.13

commandList :: RedisCtx m f => m (f [ByteString]) Source #

Returns a list of command names (https://redis.io/commands/command-list).

O(N) where N is the total number of Redis commands.

Since Redis 7.0.0

commandListOpts Source #

Arguments

:: RedisCtx m f 
=> Maybe CommandListFilter

Optional filtering mode.

CommandListFilterByModule keeps only commands that belong to the given module. CommandListFilterByAclCat keeps only commands from the given ACL category. CommandListFilterByPattern keeps only commands whose names match the specified glob-style pattern.

-> m (f [ByteString]) 

Returns a list of command names (https://redis.io/commands/command-list).

O(N) where N is the total number of Redis commands.

Since Redis 7.0.0

data HotkeysStartOpts Source #

Constructors

HotkeysStartOpts 

Fields

defaultHotkeysStartOpts :: HotkeysStartOpts Source #

Redis default HotkeysStartOpts. Equivalent to omitting all optional parameters.

hotkeysGet :: RedisCtx m f => m (f HotkeysGetResponse) Source #

Returns tracking results and metadata from the current or most recent hotkeys tracking session (https://redis.io/commands/hotkeys-get).

O(K) where K is the number of hotkeys returned.

Since Redis 8.6.0

hotkeysStart Source #

Arguments

:: RedisCtx m f 
=> NonEmpty HotkeysMetric

The metrics to track.

The command automatically derives the `METRICS count` argument from the number of provided metrics. At least one metric must be specified.

-> m (f Status) 

Starts hotkeys tracking (https://redis.io/commands/hotkeys-start).

O(1)

Since Redis 8.6.0

hotkeysStartOpts Source #

Arguments

:: RedisCtx m f 
=> NonEmpty HotkeysMetric

The metrics to track.

-> HotkeysStartOpts

Additional tracking options.

-> m (f Status) 

Starts hotkeys tracking (https://redis.io/commands/hotkeys-start).

O(1)

Since Redis 8.6.0

hotkeysStop :: RedisCtx m f => m (f Status) Source #

Stops hotkeys tracking (https://redis.io/commands/hotkeys-stop).

O(1)

Since Redis 8.6.0

hotkeysReset :: RedisCtx m f => m (f Status) Source #

Release the resources used for hotkey tracking (https://redis.io/commands/hotkeys-reset).

O(1)

Since Redis 8.6.0

configGet Source #

Arguments

:: RedisCtx m f 
=> NonEmpty ByteString

parameter

-> m (f [(ByteString, ByteString)]) 

Get the value of a configuration parameter (http://redis.io/commands/config-get). Since Redis 2.0.0

configResetstat :: RedisCtx m f => m (f Status) Source #

Reset the stats returned by INFO (http://redis.io/commands/config-resetstat). Since Redis 2.0.0

configRewrite :: RedisCtx m f => m (f Status) Source #

Rewrite the configuration file with the in memory configuration (http://redis.io/commands/config-rewrite). Since Redis 2.8.0

configSet Source #

Arguments

:: RedisCtx m f 
=> ByteString

parameter

-> ByteString

value

-> m (f Status) 

Set a configuration parameter to the given value (http://redis.io/commands/config-set). Since Redis 2.0.0

dbsize :: RedisCtx m f => m (f Integer) Source #

Return the number of keys in the selected database (http://redis.io/commands/dbsize). Since Redis 1.0.0

debugObject Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> m (f ByteString) 

Get debugging information about a key (http://redis.io/commands/debug-object). Since Redis 1.0.0

flushall :: RedisCtx m f => m (f Status) Source #

Remove all keys from all databases (http://redis.io/commands/flushall). Since Redis 1.0.0

flushallOpts :: RedisCtx m f => FlushOpts -> m (f Status) Source #

Remove all keys from the current database (http://redis.io/commands/flushdb). Since Redis 6.2

data FlushOpts Source #

Instances

Instances details
RedisArg FlushOpts Source # 
Instance details

Defined in Database.Redis.ManualCommands

flushdb :: RedisCtx m f => m (f Status) Source #

Remove all keys from the current database (http://redis.io/commands/flushdb). Since Redis 1.0.0

flushdbOpts :: RedisCtx m f => FlushOpts -> m (f Status) Source #

Remove all keys from the current database (http://redis.io/commands/flushdb). Since Redis 6.2

info :: RedisCtx m f => m (f ByteString) Source #

infoSection Source #

Arguments

:: RedisCtx m f 
=> ByteString

section

-> m (f ByteString) 

lastsave :: RedisCtx m f => m (f Integer) Source #

slaveof Source #

Arguments

:: RedisCtx m f 
=> ByteString

host

-> ByteString

port

-> m (f Status) 

Make the server a slave of another instance, or promote it as master (http://redis.io/commands/slaveof). Deprecated in Redis, can be replaced by replicaif since redis 5.0 Since Redis 1.0.0

data Slowlog Source #

A single entry from the slowlog.

Constructors

Slowlog 

Fields

Instances

Instances details
Show Slowlog Source # 
Instance details

Defined in Database.Redis.ManualCommands

Eq Slowlog Source # 
Instance details

Defined in Database.Redis.ManualCommands

Methods

(==) :: Slowlog -> Slowlog -> Bool #

(/=) :: Slowlog -> Slowlog -> Bool #

RedisResult Slowlog Source # 
Instance details

Defined in Database.Redis.ManualCommands

slowlogGet Source #

Arguments

:: RedisCtx m f 
=> Integer

cnt

-> m (f [Slowlog]) 

sadd Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key where set is stored.

-> NonEmpty ByteString

Member to add to the set.

-> m (f Integer) 

O(1) for each element added. Add one or more members to a set (http://redis.io/commands/sadd). Since Redis 1.0.0

scard Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> m (f Integer) 

Get the number of members in a set (http://redis.io/commands/scard). Since Redis 1.0.0

sdiff Source #

Arguments

:: RedisCtx m f 
=> NonEmpty ByteString

key

-> m (f [ByteString]) 

Subtract multiple sets (http://redis.io/commands/sdiff). Since Redis 1.0.0

sdiffstore Source #

Arguments

:: RedisCtx m f 
=> ByteString

destination

-> NonEmpty ByteString

key

-> m (f Integer) 

Subtract multiple sets and store the resulting set in a key (http://redis.io/commands/sdiffstore). Since Redis 1.0.0

sinter Source #

Arguments

:: RedisCtx m f 
=> NonEmpty ByteString

Keys.

-> m (f [ByteString]) 

Intersect multiple sets (http://redis.io/commands/sinter). Since Redis 1.0.0

sintercard :: RedisCtx m f => NonEmpty ByteString -> m (f Integer) Source #

Returns the cardinality of the intersection of multiple sets (https://redis.io/commands/sintercard).

O(N*M) worst case where N is the cardinality of the smallest set and M is the number of sets.

In clustered environment, commands must operate on keys within the same hash slot.

Since Redis 7.0.0

sintercardOpts :: RedisCtx m f => NonEmpty ByteString -> SintercardOpts -> m (f Integer) Source #

Returns the cardinality of the intersection of multiple sets (https://redis.io/commands/sintercard).

O(N*M) worst case where N is the cardinality of the smallest set and M is the number of sets.

In clustered environment, commands must operate on keys within the same hash slot.

Since Redis 7.0.0

sinterstore Source #

Arguments

:: RedisCtx m f 
=> ByteString

destination

-> NonEmpty ByteString

key

-> m (f Integer) 

Intersect multiple sets and store the resulting set in a key (http://redis.io/commands/sinterstore). Since Redis 1.0.0

sismember Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key.

-> ByteString

member

-> m (f Bool) 

Determine if a given value is a member of a set (http://redis.io/commands/sismember). Since Redis 1.0.0

smembers Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> m (f [ByteString]) 

Get all the members in a set (http://redis.io/commands/smembers). Since Redis 1.0.0

smismember :: RedisCtx m f => ByteString -> NonEmpty ByteString -> m (f [Bool]) Source #

Determines whether multiple members belong to a set (https://redis.io/commands/smismember).

O(N) where N is the number of elements being checked for membership.

Since Redis 6.2.0

smove Source #

Arguments

:: RedisCtx m f 
=> ByteString

source

-> ByteString

destination

-> ByteString

member

-> m (f Bool) 

Move a member from one set to another (http://redis.io/commands/smove). Since Redis 1.0.0

spop Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> m (f (Maybe ByteString)) 

Remove and return one or multiple random members from a set (http://redis.io/commands/spop). The Redis command SPOP is split up into spop, spopN. Since Redis 1.0.0

spopN Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> Integer

count

-> m (f [ByteString]) 

Remove and return one or multiple random members from a set (http://redis.io/commands/spop). The Redis command SPOP is split up into spop, spopN. Since Redis 1.0.0

srandmember Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> m (f (Maybe ByteString)) 

Get one or multiple random members from a set (http://redis.io/commands/srandmember). The Redis command SRANDMEMBER is split up into srandmember, srandmemberN. Since Redis 1.0.0

srandmemberN Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> Integer

count

-> m (f [ByteString]) 

Get one or multiple random members from a set (http://redis.io/commands/srandmember). The Redis command SRANDMEMBER is split up into srandmember, srandmemberN. Since Redis 1.0.0

srem Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key of the set.

-> NonEmpty ByteString

List of members to be removed.

-> m (f Integer) 

O(N) where N is the number of members to be removed. Remove one or more members from a set (http://redis.io/commands/srem).

Returns the number of members that were removed from the seet, not including non existing elements.

Since Redis 1.0.0

sscan Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> Cursor 
-> m (f (Cursor, [ByteString]))

next cursor and values

Incrementally iterate Set elements (http://redis.io/commands/sscan). The Redis command SSCAN is split up into sscan, sscanOpts. Since Redis 2.8.0

sscanOpts Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> Cursor 
-> ScanOpts 
-> m (f (Cursor, [ByteString]))

next cursor and values

Incrementally iterate Set elements (http://redis.io/commands/sscan). The Redis command SSCAN is split up into sscan, sscanOpts. Since Redis 2.8.0

sunion Source #

Arguments

:: RedisCtx m f 
=> NonEmpty ByteString

key

-> m (f [ByteString]) 

Add multiple sets (http://redis.io/commands/sunion). Since Redis 1.0.0

sunionstore Source #

Arguments

:: RedisCtx m f 
=> ByteString

destination

-> NonEmpty ByteString

key

-> m (f Integer) 

Add multiple sets and store the resulting set in a key (http://redis.io/commands/sunionstore). Since Redis 1.0.0

bzpopmax Source #

Arguments

:: RedisCtx m f 
=> NonEmpty ByteString

keys

-> Double

timeout

-> m (f (Maybe (ByteString, ByteString, Double))) 

Remove and return the member with the highest score from one or more sorted sets, or block until one is available (http://redis.io/commands/bzpopmax).

Since Redis 5.0.0

bzpopmin Source #

Arguments

:: RedisCtx m f 
=> NonEmpty ByteString

keys

-> Double

timeout

-> m (f (Maybe (ByteString, ByteString, Double))) 

Remove and return the member with the lowest score from one or more sorted sets, or block until one is available (http://redis.io/commands/bzpopmin).

Since Redis 5.0.0

data ZaddOpts Source #

Add one or more members to a sorted set, or update its score if it already exists (http://redis.io/commands/zadd). The Redis command ZADD is split up into zadd, zaddOpts. Since Redis 1.2.0

Constructors

ZaddOpts 

Fields

Instances

Instances details
Show ZaddOpts Source # 
Instance details

Defined in Database.Redis.ManualCommands

Eq ZaddOpts Source # 
Instance details

Defined in Database.Redis.ManualCommands

defaultZaddOpts :: ZaddOpts Source #

Redis default ZaddOpts. Equivalent to omitting all optional parameters.

ZaddOpts
  { zaddCondition = Nothing -- omit NX and XX options
  , zaddChange    = False   -- don't modify the return value from the number of new elements added, to the total number of elements changed
  , zaddIncrement = False   -- don't add like ZINCRBY
  , zaddSizeCondition = Nothing -- omit GT and LT options
  }

zadd Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> [(Double, ByteString)]

scoreMember

-> m (f Integer) 

Add one or more members to a sorted set, or update its score if it already exists (http://redis.io/commands/zadd). The Redis command ZADD is split up into zadd, zaddOpts. Since Redis 1.2.0

zaddOpts Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> [(Double, ByteString)]

scoreMember

-> ZaddOpts

options

-> m (f Integer) 

zcard Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> m (f Integer) 

O(1) Get the number of members in a sorted set (http://redis.io/commands/zcard). Since Redis 1.2.0

zcount Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> Double

min

-> Double

max

-> m (f Integer) 

Count the members in a sorted set with scores within the given values (http://redis.io/commands/zcount). Since Redis 2.0.0

zdiff :: RedisCtx m f => NonEmpty ByteString -> m (f [ByteString]) Source #

Returns the difference between multiple sorted sets (https://redis.io/commands/zdiff).

O(L + (N - K)log(N)) worst case where $L$ is the total number of elements in all the sorted sets, N is the size of the first sorted set, and K is the size of the result set.

In clustered environment, commands must operate on keys within the same hash slot.

Since Redis 6.2.0

zdiffWithscores Source #

Arguments

:: RedisCtx m f 
=> NonEmpty ByteString

Sorted set keys.

-> m (f [(ByteString, Double)]) 

Returns the difference between multiple sorted sets with scores (https://redis.io/commands/zdiff).

O(L + (N - K)log(N)) worst case where $L$ is the total number of elements in all the sorted sets, N is the size of the first sorted set, and K is the size of the result set.

In clustered environment, commands must operate on keys within the same hash slot.

Since Redis 6.2.0

zdiffstore Source #

Arguments

:: RedisCtx m f 
=> ByteString

Destination key.

-> NonEmpty ByteString

Sorted set keys.

-> m (f Integer) 

Stores the difference of multiple sorted sets in a key (https://redis.io/commands/zdiffstore).

O(L + (N - K)log(N)) worst case where $L$ is the total number of elements in all the sorted sets, N is the size of the first sorted set, and K is the size of the result set.

In clustered environment, commands must operate on keys within the same hash slot.

Keys that do not exist are considered to be empty sets.

If destination already exists, it is overwritten.

Since Redis 6.2.0

data SizeCondition Source #

Constructors

CGT

Only update existing elements if the new score is greater than the current score. This flag doesn't prevent adding new elements.

CLT

Only update existing elements if the new score is less than the current score. This flag doesn't prevent adding new elements.

zincrby Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> Integer

increment

-> ByteString

member

-> m (f Double) 

O(log(N))

Increment the score of a member in a sorted set (http://redis.io/commands/zincrby).

Returns new score of the element.

Since Redis 1.2.0

data ZPopMinMax Source #

Constructors

ZPopMin 
ZPopMax 

Instances

Instances details
Show ZPopMinMax Source # 
Instance details

Defined in Database.Redis.ManualCommands

Eq ZPopMinMax Source # 
Instance details

Defined in Database.Redis.ManualCommands

RedisArg ZPopMinMax Source # 
Instance details

Defined in Database.Redis.ManualCommands

zmpop :: RedisCtx m f => NonEmpty ByteString -> ZPopMinMax -> m (f (Maybe ZPopResponse)) Source #

Removes and returns member-score pairs from the first non-empty sorted set from a list of keys (https://redis.io/commands/zmpop).

O(K) + O(Mlog(N)) where K is the number of provided keys, N is the number of elements in the sorted set, and M is the number of elements popped.

In clustered environment, commands must operate on keys within the same hash slot.

Since Redis 7.0.0

zmpopCount :: RedisCtx m f => NonEmpty ByteString -> ZPopMinMax -> Integer -> m (f (Maybe ZPopResponse)) Source #

Removes and returns member-score pairs from the first non-empty sorted set from a list of keys (https://redis.io/commands/zmpop).

O(K) + O(Mlog(N)) where K is the number of provided keys, N is the number of elements in the sorted set, and M is the number of elements popped.

In clustered environment, commands must operate on keys within the same hash slot.

Since Redis 7.0.0

bzmpop :: RedisCtx m f => Double -> NonEmpty ByteString -> ZPopMinMax -> m (f (Maybe ZPopResponse)) Source #

Removes and returns member-score pairs from the first non-empty sorted set from a list of keys, or blocks until one is available (https://redis.io/commands/bzmpop).

O(K) + O(Mlog(N)) where K is the number of provided keys, N is the number of elements in the sorted set, and M is the number of elements popped.

In clustered environment, commands must operate on keys within the same hash slot.

Since Redis 7.0.0

bzmpopCount :: RedisCtx m f => Double -> NonEmpty ByteString -> ZPopMinMax -> Integer -> m (f (Maybe ZPopResponse)) Source #

Removes and returns member-score pairs from the first non-empty sorted set from a list of keys, or blocks until one is available (https://redis.io/commands/bzmpop).

O(K) + O(Mlog(N)) where K is the number of provided keys, N is the number of elements in the sorted set, and M is the number of elements popped.

In clustered environment, commands must operate on keys within the same hash slot.

Since Redis 7.0.0

data ZAggregateOpts Source #

Constructors

ZAggregateOpts 

Fields

  • zAggregateWeights :: [Double]

    WEIGHTS option, it is possible to specify a multiplication factor for each input sorted set. Each element's score is multiplied by its corresponding weight before aggregation. When WEIGHTS is not given, the multiplication factors default to 1.

  • zAggregateAggregate :: Aggregate

    AGGREGATE option, it is possible to specify how the results of the union are aggregated

zinter Source #

Arguments

:: RedisCtx m f 
=> NonEmpty ByteString

Sorted set keys.

-> m (f [ByteString]) 

Returns the intersection of multiple sorted sets (https://redis.io/commands/zinter).

O(NK) + O(Mlog(M)) worst case with N being the smallest input sorted set, K being the number of input sorted sets and M being the number of elements in the resulting sorted set.

In clustered environment, commands must operate on keys within the same hash slot.

Since Redis 6.2.0

zinterWithscores Source #

Arguments

:: RedisCtx m f 
=> NonEmpty ByteString

Sorted set keys.

-> m (f [(ByteString, Double)]) 

Returns the intersection of multiple sorted sets with scores (https://redis.io/commands/zinter).

O(NK) + O(Mlog(M)) worst case with N being the smallest input sorted set, K being the number of input sorted sets and M being the number of elements in the resulting sorted set.

In clustered environment, commands must operate on keys within the same hash slot.

Since Redis 6.2.0

zinterOpts Source #

Arguments

:: RedisCtx m f 
=> NonEmpty ByteString

Sorted set keys.

-> ZAggregateOpts 
-> m (f [ByteString]) 

Returns the intersection of multiple sorted sets (https://redis.io/commands/zinter).

O(NK) + O(Mlog(M)) worst case with N being the smallest input sorted set, K being the number of input sorted sets and M being the number of elements in the resulting sorted set.

In clustered environment, commands must operate on keys within the same hash slot.

Since Redis 6.2.0

zinterWithscoresOpts Source #

Arguments

:: RedisCtx m f 
=> NonEmpty ByteString

Sorted set keys.

-> ZAggregateOpts 
-> m (f [(ByteString, Double)]) 

Returns the intersection of multiple sorted sets with scores (https://redis.io/commands/zinter).

O(NK) + O(Mlog(M)) worst case with N being the smallest input sorted set, K being the number of input sorted sets and M being the number of elements in the resulting sorted set.

In clustered environment, commands must operate on keys within the same hash slot.

Since Redis 6.2.0

zinterstore Source #

Arguments

:: RedisCtx m f 
=> ByteString

destination

-> NonEmpty ByteString

keys

-> Aggregate 
-> m (f Integer) 

Intersect multiple sorted sets and store the resulting sorted set in a new key (http://redis.io/commands/zinterstore). The Redis command ZINTERSTORE is split up into zinterstore, zinterstoreWeights. Since Redis 2.0.0

zinterstoreWeights Source #

Arguments

:: RedisCtx m f 
=> ByteString

destination

-> NonEmpty (ByteString, Double)

weighted keys

-> Aggregate 
-> m (f Integer) 

Intersect multiple sorted sets and store the resulting sorted set in a new key (http://redis.io/commands/zinterstore). The Redis command ZINTERSTORE is split up into zinterstore, zinterstoreWeights. Since Redis 2.0.0

zlexcount Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> ByteString

min

-> ByteString

max

-> m (f Integer) 

Count the number of members in a sorted set between a given lexicographical range (http://redis.io/commands/zlexcount). Since Redis 2.8.9

zmscore :: RedisCtx m f => ByteString -> NonEmpty ByteString -> m (f [Maybe Double]) Source #

Returns the score of one or more members in a sorted set (https://redis.io/commands/zmscore).

O(N) where N is the number of members being requested.

Since Redis 6.2.0

zpopmin Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> m (f (Maybe (ByteString, Double))) 

Remove and return the member with the lowest score in a sorted set (http://redis.io/commands/zpopmin).

Since Redis 5.0.0

zpopmax Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> m (f (Maybe (ByteString, Double))) 

Remove and return the member with the highest score in a sorted set (http://redis.io/commands/zpopmax).

Since Redis 5.0.0

zrandmember :: RedisCtx m f => ByteString -> m (f (Maybe ByteString)) Source #

Returns a random member from a sorted set (https://redis.io/commands/zrandmember).

O(1) without the optional count argument.

Since Redis 6.2.0

zrandmemberN :: RedisCtx m f => ByteString -> Integer -> m (f [ByteString]) Source #

Returns one or more random members from a sorted set (https://redis.io/commands/zrandmember).

O(N) where N is the number of members returned.

Since Redis 6.2.0

zrandmemberWithscores :: RedisCtx m f => ByteString -> Integer -> m (f [(ByteString, Double)]) Source #

Returns one or more random members and their scores from a sorted set (https://redis.io/commands/zrandmember).

O(N) where N is the number of members returned.

Since Redis 6.2.0

zrange Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> Integer

start

-> Integer

stop

-> m (f [ByteString]) 

Return a range of members in a sorted set, by index (http://redis.io/commands/zrange). The Redis command ZRANGE is split up into zrange, zrangeWithscores. Since Redis 1.2.0

zrangeWithscores Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> Integer

start

-> Integer

stop

-> m (f [(ByteString, Double)]) 

Return a range of members in a sorted set, by index (http://redis.io/commands/zrange). The Redis command ZRANGE is split up into zrange, zrangeWithscores. Since Redis 1.2.0

zrangestore :: RedisCtx m f => ByteString -> ByteString -> Integer -> Integer -> m (f Integer) Source #

Stores a range of members from a sorted set in a destination key (https://redis.io/commands/zrangestore).

O(log(N) + M) with N being the number of elements in the sorted set and M the number of elements stored into the destination key.

Since Redis 6.2.0

zrangestoreOpts :: RedisCtx m f => ByteString -> ByteString -> ZRangeStoreRange -> ZRangeStoreOpts -> m (f Integer) Source #

Stores a range of members from a sorted set in a destination key (https://redis.io/commands/zrangestore).

O(log(N) + M) with N being the number of elements in the sorted set and M the number of elements stored into the destination key.

Since Redis 6.2.0

data RangeLex a Source #

Constructors

Incl a 
Excl a 
Minr 
Maxr 

Instances

Instances details
Show a => Show (RangeLex a) Source # 
Instance details

Defined in Database.Redis.ManualCommands

Methods

showsPrec :: Int -> RangeLex a -> ShowS #

show :: RangeLex a -> String #

showList :: [RangeLex a] -> ShowS #

Eq a => Eq (RangeLex a) Source # 
Instance details

Defined in Database.Redis.ManualCommands

Methods

(==) :: RangeLex a -> RangeLex a -> Bool #

(/=) :: RangeLex a -> RangeLex a -> Bool #

RedisArg a => RedisArg (RangeLex a) Source # 
Instance details

Defined in Database.Redis.ManualCommands

zrangebylex Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> RangeLex ByteString

min

-> RangeLex ByteString

max

-> m (f [ByteString]) 

Return a range of members in a sorted set, by lexicographical range (http://redis.io/commands/zrangebylex). Since Redis 2.8.9

zrangebylexLimit Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> RangeLex ByteString

min

-> RangeLex ByteString

max

-> Integer

offset

-> Integer

count

-> m (f [ByteString]) 

zrangebyscore Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> Double

min

-> Double

max

-> m (f [ByteString]) 

zrangebyscoreWithscores Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> Double

min

-> Double

max

-> m (f [(ByteString, Double)]) 

zrangebyscoreLimit Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> Double

min

-> Double

max

-> Integer

offset

-> Integer

count

-> m (f [ByteString]) 

zrangebyscoreWithscoresLimit Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> Double

min

-> Double

max

-> Integer

offset

-> Integer

count

-> m (f [(ByteString, Double)]) 

zrank Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key.of the set.

-> ByteString

Member

-> m (f (Maybe Integer)) 

Determine the index of a member in a sorted set (http://redis.io/commands/zrank).

Since Redis 2.0.0

zrankWithScore Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key of the set.

-> ByteString

Member.

-> m (f (Maybe (Integer, Double))) 

Since Redis 7.2.0: fails on earlier versions

zrem Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> NonEmpty ByteString

member

-> m (f Integer) 

O(M*log(N)) with N number of elements in the sorted set, M number of elements to be removed.

Removes one or more members from a sorted set (http://redis.io/commands/zrem).

Since Redis 1.2.0

zremrangebylex Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> ByteString

min

-> ByteString

max

-> m (f Integer) 

O(log(N)+M) with N being thee number of elements in thee sorted set and M the number of elements removed by the operation.

Remove all members in a sorted set between the given lexicographical range (http://redis.io/commands/zremrangebylex).

Returns number of elements that were removed.

Since Redis 2.8.9

zremrangebyrank Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> Integer

start

-> Integer

stop

-> m (f Integer) 

O(log(N)+M with N being the number of elements in the sorted set and M the number of elemnts removed by the operation.

Remove all members in a sorted set within the given indexes (http://redis.io/commands/zremrangebyrank).

Returns a number of elements that were removed.

Since Redis 2.0.0

zremrangebyscore Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> Double

min

-> Double

max

-> m (f Integer) 

O(log(N)+M) with N number of elements in the set, M number of elements to be removed.

Remove all members in a sorted set within the given scores (http://redis.io/commands/zremrangebyscore).

Returns a number of elements that were removed.

Since Redis 1.2.0

zrevrange Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> Integer

start

-> Integer

stop

-> m (f [ByteString]) 

zrevrangeWithscores Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> Integer

start

-> Integer

stop

-> m (f [(ByteString, Double)]) 

zrevrangebyscore Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> Double

max

-> Double

min

-> m (f [ByteString]) 

zrevrangebyscoreWithscores Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> Double

max

-> Double

min

-> m (f [(ByteString, Double)]) 

zrevrangebyscoreLimit Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> Double

max

-> Double

min

-> Integer

offset

-> Integer

count

-> m (f [ByteString]) 

zrevrangebyscoreWithscoresLimit Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> Double

max

-> Double

min

-> Integer

offset

-> Integer

count

-> m (f [(ByteString, Double)]) 

zrevrank Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> ByteString

member

-> m (f (Maybe Integer)) 

Determine the index of a member in a sorted set, with scores ordered from high to low (http://redis.io/commands/zrevrank). Since Redis 2.0.0

zrevrankWithScore Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> ByteString

member

-> m (f (Maybe (Integer, Double))) 

zscan Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> Cursor 
-> m (f (Cursor, [(ByteString, Double)]))

next cursor and values

zscanOpts Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> Cursor 
-> ScanOpts 
-> m (f (Cursor, [(ByteString, Double)]))

next cursor and values

zscore Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key.

-> ByteString

Member.

-> m (f (Maybe Double)) 

Get the score associated with the given member in a sorted set (http://redis.io/commands/zscore). Since Redis 1.2.0

zunion Source #

Arguments

:: RedisCtx m f 
=> NonEmpty ByteString

Sorted set keys.

-> m (f [ByteString]) 

Returns the union of multiple sorted sets (https://redis.io/commands/zunion).

O(N) + O(Mlog(M)) with N being the sum of the sizes of the input sorted sets, and M being the number of elements in the resulting sorted set.

Since Redis 6.2.0

zunionWithscores :: RedisCtx m f => NonEmpty ByteString -> m (f [(ByteString, Double)]) Source #

Returns the union of multiple sorted sets with scores (https://redis.io/commands/zunion).

O(N) + O(Mlog(M)) with N being the sum of the sizes of the input sorted sets, and M being the number of elements in the resulting sorted set.

Since Redis 6.2.0

zunionOpts :: RedisCtx m f => NonEmpty ByteString -> ZAggregateOpts -> m (f [ByteString]) Source #

Returns the union of multiple sorted sets (https://redis.io/commands/zunion).

O(N) + O(Mlog(M)) with N being the sum of the sizes of the input sorted sets, and M being the number of elements in the resulting sorted set.

Since Redis 6.2.0

zunionWithscoresOpts :: RedisCtx m f => NonEmpty ByteString -> ZAggregateOpts -> m (f [(ByteString, Double)]) Source #

Returns the union of multiple sorted sets with scores (https://redis.io/commands/zunion).

O(N) + O(Mlog(M)) with N being the sum of the sizes of the input sorted sets, and M being the number of elements in the resulting sorted set.

Since Redis 6.2.0

zunionstore Source #

Arguments

:: RedisCtx m f 
=> ByteString

destination

-> [ByteString]

keys

-> Aggregate 
-> m (f Integer) 

zunionstoreWeights Source #

Arguments

:: RedisCtx m f 
=> ByteString

destination

-> [(ByteString, Double)]

weighted keys

-> Aggregate 
-> m (f Integer) 

defaultVAddOpts :: VAddOpts Source #

Redis default VAddOpts. Equivalent to omitting all optional parameters.

vadd Source #

Arguments

:: RedisCtx m f 
=> ByteString

The name of the key that will hold the vector set data.

-> NonEmpty Double

The vector values as floating point numbers.

This uses the VALUES argument form and automatically supplies the number of vector elements.

-> ByteString

The name of the element that is being added to the vector set.

-> m (f Bool) 

Adds a new element to a vector set, or updates its vector if it already exists (https://redis.io/commands/vadd).

O(log(N)) for each element added, where N is the number of elements in the vector set.

Since Redis 8.0.0

vaddOpts Source #

Arguments

:: RedisCtx m f 
=> ByteString

The name of the key that will hold the vector set data.

-> NonEmpty Double

The vector values as floating point numbers.

-> ByteString

The name of the element that is being added to the vector set.

-> VAddOpts

Additional parameters.

`REDUCE dim` reduces the dimensionality of the vector using random projection. CAS performs the slow neighbor candidate collection in the background. NOQUANT, Q8, and BIN control quantization and are mutually exclusive. EF sets the build exploration factor. SETATTR associates attributes with the entry. M sets the maximum number of graph links per node.

-> m (f Bool) 

Adds a new element to a vector set, or updates its vector if it already exists (https://redis.io/commands/vadd).

O(log(N)) for each element added, where N is the number of elements in the vector set.

Since Redis 8.0.0

vcard Source #

Arguments

:: RedisCtx m f 
=> ByteString

The name of the key that holds the vector set.

-> m (f Integer) 

Return the number of elements in the specified vector set (https://redis.io/commands/vcard).

O(1)

Since Redis 8.0.0

vdim Source #

Arguments

:: RedisCtx m f 
=> ByteString

The name of the key that holds the vector set.

-> m (f Integer) 

Return the number of dimensions of the vectors in the specified vector set (https://redis.io/commands/vdim).

O(1)

Since Redis 8.0.0

vemb Source #

Arguments

:: RedisCtx m f 
=> ByteString

The name of the key that holds the vector set.

-> ByteString

The name of the element whose vector you want to retrieve.

-> m (f [Double]) 

Return the approximate vector associated with a given element in the vector set (https://redis.io/commands/vemb).

O(1)

Since Redis 8.0.0

vembRaw Source #

Arguments

:: RedisCtx m f 
=> ByteString

The name of the key that holds the vector set.

-> ByteString

The name of the element whose vector you want to retrieve.

-> m (f (Maybe VEmbRawResponse)) 

Return the raw internal representation of the vector associated with a given element in the vector set (https://redis.io/commands/vemb).

O(1)

Since Redis 8.0.0

vgetattr Source #

Arguments

:: RedisCtx m f 
=> ByteString

The name of the key that holds the vector set.

-> ByteString

The name of the element whose attributes you want to retrieve.

-> m (f (Maybe ByteString)) 

Retrieve the JSON attributes of an element in a vector set (https://redis.io/commands/vgetattr).

O(1)

Since Redis 8.0.0

vinfo Source #

Arguments

:: RedisCtx m f 
=> ByteString

The name of the key that holds the vector set.

-> m (f (Maybe VInfoResponse)) 

Return metadata and internal details about a vector set (https://redis.io/commands/vinfo).

O(1)

Since Redis 8.0.0

vismember Source #

Arguments

:: RedisCtx m f 
=> ByteString

The name of the key that holds the vector set.

-> ByteString

The name of the element to check.

-> m (f Bool) 

Check if an element exists in a vector set (https://redis.io/commands/vismember).

O(1)

Since Redis 8.0.0

vlinks Source #

Arguments

:: RedisCtx m f 
=> ByteString

The name of the key that holds the vector set.

-> ByteString

The name of the element whose HNSW neighbors you want to inspect.

-> m (f (Maybe VLinksResponse)) 

Return the neighbors of a specified element in a vector set (https://redis.io/commands/vlinks).

O(1)

Since Redis 8.0.0

vlinksWithScores Source #

Arguments

:: RedisCtx m f 
=> ByteString

The name of the key that holds the vector set.

-> ByteString

The name of the element whose HNSW neighbors you want to inspect.

-> m (f (Maybe VLinksWithScoresResponse)) 

Return the neighbors of a specified element in a vector set together with their similarity scores (https://redis.io/commands/vlinks).

O(1)

Since Redis 8.0.0

vrandmember Source #

Arguments

:: RedisCtx m f 
=> ByteString

The name of the key that holds the vector set.

-> m (f (Maybe ByteString)) 

Return one random element from a vector set (https://redis.io/commands/vrandmember).

O(N) where N is the absolute value of the count argument.

Since Redis 8.0.0

vrandmemberCount Source #

Arguments

:: RedisCtx m f 
=> ByteString

The name of the key that holds the vector set.

-> Integer

The number of elements to return.

Positive values return distinct elements; negative values allow duplicates.

-> m (f [ByteString]) 

Return one or multiple random elements from a vector set (https://redis.io/commands/vrandmember).

O(N) where N is the absolute value of the count argument.

Since Redis 8.0.0

vrange Source #

Arguments

:: RedisCtx m f 
=> ByteString

The name of the vector set key from which to retrieve elements.

-> ByteString

The starting point of the lexicographical range.

Use a value prefixed with `[` for an inclusive bound, a value prefixed with `(` for an exclusive bound, or - for the minimum element.

-> ByteString

The ending point of the lexicographical range.

Use a value prefixed with `[` for an inclusive bound, a value prefixed with `(` for an exclusive bound, or + for the maximum element.

-> m (f [ByteString]) 

Returns elements in a lexicographical range (https://redis.io/commands/vrange).

O(log(K)+M) where K is the number of elements in the start prefix, and M is the number of elements returned. In practical terms, the command is just O(M).

Since Redis 8.4.0

vrangeCount Source #

Arguments

:: RedisCtx m f 
=> ByteString

The name of the vector set key from which to retrieve elements.

-> ByteString

The starting point of the lexicographical range.

-> ByteString

The ending point of the lexicographical range.

-> Integer

The maximum number of elements to return.

If count is negative, the command returns all elements in the specified range.

-> m (f [ByteString]) 

Returns elements in a lexicographical range (https://redis.io/commands/vrange).

O(log(K)+M) where K is the number of elements in the start prefix, and M is the number of elements returned. In practical terms, the command is just O(M).

Since Redis 8.4.0

vrem Source #

Arguments

:: RedisCtx m f 
=> ByteString

The name of the key that holds the vector set.

-> ByteString

The name of the element to remove from the vector set.

-> m (f Bool) 

Remove an element from a vector set (https://redis.io/commands/vrem).

O(log(N)) for each element removed, where N is the number of elements in the vector set.

Since Redis 8.0.0

vsetattr Source #

Arguments

:: RedisCtx m f 
=> ByteString

The name of the key that holds the vector set.

-> ByteString

The name of the element in the vector set.

-> ByteString

The attributes as a JSON object string.

Use the empty string to remove existing attributes.

-> m (f Bool) 

Associate or remove the JSON attributes of an element in a vector set (https://redis.io/commands/vsetattr).

O(1)

Since Redis 8.0.0

vsim Source #

Arguments

:: RedisCtx m f 
=> ByteString

The name of the key that holds the vector set data.

-> VSimQuery

Query vector source.

Use VSimByElement to refer to an existing element, VSimByFp32 for binary float format, or VSimByValues for a list of float values.

-> m (f [ByteString]) 

Return elements similar to a given vector or element (https://redis.io/commands/vsim).

O(log(N)) where N is the number of elements in the vector set.

Since Redis 8.0.0

vsimOpts Source #

Arguments

:: RedisCtx m f 
=> ByteString

The name of the key that holds the vector set data.

-> VSimQuery

Query vector source.

-> VSimOpts

Additional search options.

COUNT limits the number of returned results. EPSILON filters out elements that are too far from the query vector. EF controls the exploration factor. FILTER applies a filtering expression and `FILTER-EF` limits filtering effort. TRUTH forces an exact linear scan. NOTHREAD executes the search in the main thread.

-> m (f [ByteString]) 

Return elements similar to a given vector or element (https://redis.io/commands/vsim).

O(log(N)) where N is the number of elements in the vector set.

Since Redis 8.0.0

vsimWithScores Source #

Arguments

:: RedisCtx m f 
=> ByteString

The name of the key that holds the vector set data.

-> VSimQuery

Query vector source.

-> m (f [(ByteString, Double)]) 

Return elements similar to a given vector or element together with their similarity scores (https://redis.io/commands/vsim).

O(log(N)) where N is the number of elements in the vector set.

Since Redis 8.0.0

vsimWithScoresOpts :: RedisCtx m f => ByteString -> VSimQuery -> VSimOpts -> m (f [(ByteString, Double)]) Source #

Return elements similar to a given vector or element together with their similarity scores (https://redis.io/commands/vsim).

O(log(N)) where N is the number of elements in the vector set.

Since Redis 8.0.0

vsimWithScoresWithAttribs Source #

Arguments

:: RedisCtx m f 
=> ByteString

The name of the key that holds the vector set data.

-> VSimQuery

Query vector source.

-> m (f VSimWithAttribsResponse) 

Return elements similar to a given vector or element together with their similarity scores and JSON attributes (https://redis.io/commands/vsim).

O(log(N)) where N is the number of elements in the vector set.

Since Redis 8.2.0

vsimWithScoresWithAttribsOpts :: RedisCtx m f => ByteString -> VSimQuery -> VSimOpts -> m (f VSimWithAttribsResponse) Source #

Return elements similar to a given vector or element together with their similarity scores and JSON attributes (https://redis.io/commands/vsim).

O(log(N)) where N is the number of elements in the vector set.

Since Redis 8.2.0

defaultARGrepOpts :: ARGrepOpts Source #

Redis default ARGrepOpts. Equivalent to omitting all optional parameters.

defaultARLastItemsOpts :: ARLastItemsOpts Source #

Redis default ARLastItemsOpts. Equivalent to omitting all optional parameters.

data ARScanOpts Source #

Constructors

ARScanOpts 

Instances

Instances details
Show ARScanOpts Source # 
Instance details

Defined in Database.Redis.ManualCommands

Eq ARScanOpts Source # 
Instance details

Defined in Database.Redis.ManualCommands

defaultARScanOpts :: ARScanOpts Source #

Redis default ARScanOpts. Equivalent to omitting all optional parameters.

data AROpValue Source #

Constructors

AROpSum 
AROpMin 
AROpMax 

Instances

Instances details
Show AROpValue Source # 
Instance details

Defined in Database.Redis.ManualCommands

Eq AROpValue Source # 
Instance details

Defined in Database.Redis.ManualCommands

data AROpCount Source #

Instances

Instances details
Show AROpCount Source # 
Instance details

Defined in Database.Redis.ManualCommands

Eq AROpCount Source # 
Instance details

Defined in Database.Redis.ManualCommands

arcount Source #

Arguments

:: RedisCtx m f 
=> ByteString

Array key.

-> m (f Integer) 

Returns the number of non-empty elements in an array (https://redis.io/commands/arcount).

O(1)

Since Redis 8.8.0

ardel Source #

Arguments

:: RedisCtx m f 
=> ByteString

Array key.

-> NonEmpty Integer

One or more zero-based indices to delete.

-> m (f Integer) 

Deletes elements at the specified indices in an array (https://redis.io/commands/ardel).

O(N) where N is the number of indices to delete.

Since Redis 8.8.0

argetrange Source #

Arguments

:: RedisCtx m f 
=> ByteString

Array key.

-> Integer

Start index.

-> Integer

End index, inclusive.

-> m (f [Maybe ByteString]) 

Gets values in a range of indices (https://redis.io/commands/argetrange).

O(N) where N is the range length.

Since Redis 8.8.0

argrep Source #

Arguments

:: RedisCtx m f 
=> ByteString

Array key.

-> ByteString

Start index or - for the first array index.

-> ByteString

End index or + for the last array index.

-> NonEmpty ARGrepPredicate

One or more predicates to apply.

-> m (f [Integer]) 

Searches array elements in a range using textual predicates (https://redis.io/commands/argrep).

O(P * C) where P is the number of visited positions and C is the cost of evaluating predicates.

Since Redis 8.8.0

argrepOpts Source #

Arguments

:: RedisCtx m f 
=> ByteString

Array key.

-> ByteString

Start index or - for the first array index.

-> ByteString

End index or + for the last array index.

-> NonEmpty ARGrepPredicate

One or more predicates to apply.

-> ARGrepOpts

Additional predicate options.

-> m (f [Integer]) 

Searches array elements in a range using textual predicates (https://redis.io/commands/argrep).

O(P * C) where P is the number of visited positions and C is the cost of evaluating predicates.

Since Redis 8.8.0

argrepWithValues Source #

Arguments

:: RedisCtx m f 
=> ByteString

Array key.

-> ByteString

Start index or - for the first array index.

-> ByteString

End index or + for the last array index.

-> NonEmpty ARGrepPredicate

One or more predicates to apply.

-> m (f ARIndexValuePairsResponse) 

Searches array elements in a range and returns matching index-value pairs (https://redis.io/commands/argrep).

O(P * C) where P is the number of visited positions and C is the cost of evaluating predicates.

Since Redis 8.8.0

argrepWithValuesOpts Source #

Arguments

:: RedisCtx m f 
=> ByteString

Array key.

-> ByteString

Start index or - for the first array index.

-> ByteString

End index or + for the last array index.

-> NonEmpty ARGrepPredicate

One or more predicates to apply.

-> ARGrepOpts

Additional predicate options.

-> m (f ARIndexValuePairsResponse) 

Searches array elements in a range and returns matching index-value pairs (https://redis.io/commands/argrep).

O(P * C) where P is the number of visited positions and C is the cost of evaluating predicates.

Since Redis 8.8.0

arinfo Source #

Arguments

:: RedisCtx m f 
=> ByteString

Array key.

-> m (f ARInfoResponse) 

Returns metadata about an array (https://redis.io/commands/arinfo).

O(1), or O(N) with FULL where N is the number of slices.

Since Redis 8.8.0

arinfoFull Source #

Arguments

:: RedisCtx m f 
=> ByteString

Array key.

-> m (f ARInfoResponse) 

Returns extended metadata about an array (https://redis.io/commands/arinfo).

O(N) where N is the number of slices.

Since Redis 8.8.0

arinsert Source #

Arguments

:: RedisCtx m f 
=> ByteString

Array key.

-> NonEmpty ByteString

Values to insert at the current insert cursor.

-> m (f Integer) 

Inserts one or more values at consecutive indices (https://redis.io/commands/arinsert).

O(N) where N is the number of values.

Since Redis 8.8.0

arlastitems Source #

Arguments

:: RedisCtx m f 
=> ByteString

Array key.

-> Integer

Maximum number of most recently inserted elements to return.

-> m (f [Maybe ByteString]) 

Returns the most recently inserted elements (https://redis.io/commands/arlastitems).

O(N) where N is the count.

Since Redis 8.8.0

arlastitemsOpts Source #

Arguments

:: RedisCtx m f 
=> ByteString

Array key.

-> Integer

Maximum number of most recently inserted elements to return.

-> ARLastItemsOpts

Additional options.

-> m (f [Maybe ByteString]) 

Returns the most recently inserted elements (https://redis.io/commands/arlastitems).

O(N) where N is the count.

Since Redis 8.8.0

arlen Source #

Arguments

:: RedisCtx m f 
=> ByteString

Array key.

-> m (f Integer) 

Returns the length of an array (max index + 1) (https://redis.io/commands/arlen).

O(1)

Since Redis 8.8.0

armget Source #

Arguments

:: RedisCtx m f 
=> ByteString

Array key.

-> NonEmpty Integer

One or more zero-based indices.

-> m (f [Maybe ByteString]) 

Gets values at multiple indices in an array (https://redis.io/commands/armget).

O(N) where N is the number of indices.

Since Redis 8.8.0

arnext Source #

Arguments

:: RedisCtx m f 
=> ByteString

Array key.

-> m (f (Maybe Integer)) 

Returns the next index that ARINSERT would use (https://redis.io/commands/arnext).

O(1)

Since Redis 8.8.0

aropValue Source #

Arguments

:: RedisCtx m f 
=> ByteString

Array key.

-> Integer

Start index.

-> Integer

End index.

-> AROpValue

Aggregate operation.

-> m (f (Maybe ByteString)) 

Performs aggregate operations on array elements in a range and returns a string result (https://redis.io/commands/arop).

O(P) where P is the number of visited positions in touched slices.

Since Redis 8.8.0

aropCount Source #

Arguments

:: RedisCtx m f 
=> ByteString

Array key.

-> Integer

Start index.

-> Integer

End index.

-> AROpCount

Aggregate operation.

-> m (f (Maybe Integer)) 

Performs aggregate operations on array elements in a range and returns an integer result (https://redis.io/commands/arop).

O(P) where P is the number of visited positions in touched slices.

Since Redis 8.8.0

arring Source #

Arguments

:: RedisCtx m f 
=> ByteString

Array key.

-> Integer

Ring buffer size.

-> NonEmpty ByteString

Values to insert.

-> m (f Integer) 

Inserts values into a ring buffer of specified size, wrapping and truncating as needed (https://redis.io/commands/arring).

O(M) normally, or O(N+M) on ring resize.

Since Redis 8.8.0

arscan Source #

Arguments

:: RedisCtx m f 
=> ByteString

Array key.

-> Integer

Start index.

-> Integer

End index.

-> m (f ARIndexValuePairsResponse) 

Iterates existing elements in a range, returning index-value pairs (https://redis.io/commands/arscan).

O(P) where P is the number of visited positions in touched slices.

Since Redis 8.8.0

arscanOpts Source #

Arguments

:: RedisCtx m f 
=> ByteString

Array key.

-> Integer

Start index.

-> Integer

End index.

-> ARScanOpts

Additional options.

-> m (f ARIndexValuePairsResponse) 

Iterates existing elements in a range, returning index-value pairs (https://redis.io/commands/arscan).

O(P) where P is the number of visited positions in touched slices.

Since Redis 8.8.0

arseek Source #

Arguments

:: RedisCtx m f 
=> ByteString

Array key.

-> Integer

The new insert cursor position.

-> m (f Bool) 

Sets the ARINSERT ARRING cursor to a specific index (<https:redis.iocommands/arseek>).

O(1)

Since Redis 8.8.0

arset Source #

Arguments

:: RedisCtx m f 
=> ByteString

Array key.

-> Integer

Start index.

-> NonEmpty ByteString

One or more values to store at consecutive indices.

-> m (f Integer) 

Sets one or more contiguous values starting at an index in an array (https://redis.io/commands/arset).

O(N) where N is the number of values.

Since Redis 8.8.0

bitcountRange Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> Integer

start

-> Integer

end

-> m (f Integer) 

bitopAnd Source #

Arguments

:: RedisCtx m f 
=> ByteString

destkey

-> [ByteString]

srckeys

-> m (f Integer) 

bitopOr Source #

Arguments

:: RedisCtx m f 
=> ByteString

destkey

-> [ByteString]

srckeys

-> m (f Integer) 

bitopXor Source #

Arguments

:: RedisCtx m f 
=> ByteString

destkey

-> [ByteString]

srckeys

-> m (f Integer) 

bitopNot Source #

Arguments

:: RedisCtx m f 
=> ByteString

destkey

-> ByteString

srckey

-> m (f Integer) 

bitpos Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> Integer

bit

-> Integer

start

-> Integer

end

-> m (f Integer) 

Find first bit set or clear in a string (http://redis.io/commands/bitpos). Since Redis 2.8.7

data BitposType Source #

Constructors

Byte 
Bit 

Instances

Instances details
RedisArg BitposType Source # 
Instance details

Defined in Database.Redis.ManualCommands

decr Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> m (f Integer) 

Decrement the integer value of a key by one (http://redis.io/commands/decr). Since Redis 1.0.0

decrby Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> Integer

decrement

-> m (f Integer) 

Decrement the integer value of a key by the given number (http://redis.io/commands/decrby). Since Redis 1.0.0

delex Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key of the string.

-> m (f Bool) 

Conditionally removes the specified key based on value or hash digest comparison (https://redis.io/commands/delex).

O(1) for IFEQ and IFNE. O(N) for IFDEQ and IFDNE, where N is the length of the string value.

Since Redis 8.4.0

delexWhen Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key of the string.

-> DelexCondition

Condition to enforce.

The DELEX command supports a set of options that modify its behavior. Only one option can be specified: IFEQ removes the key if the value is equal to the specified value. IFNE removes the key if the value is not equal to the specified value. IFDEQ removes the key if its hash digest is equal to the specified hash digest. IFDNE removes the key if its hash digest is not equal to the specified hash digest.

-> m (f Bool) 

Conditionally removes the specified key based on value or hash digest comparison (https://redis.io/commands/delex).

O(1) for IFEQ and IFNE. O(N) for IFDEQ and IFDNE, where N is the length of the string value.

Since Redis 8.4.0

digest Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key of the string.

-> m (f (Maybe ByteString)) 

Returns the hash digest of a string value (https://redis.io/commands/digest).

O(N) where N is the length of the string value.

Since Redis 8.4.0

getbit Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key.

-> Integer

Offset.

-> m (f Integer) 

Returns the bit value at offset in the string value stored at key (http://redis.io/commands/getbit). Since Redis 2.2.0

getdel :: RedisCtx m f => ByteString -> m (f (Maybe ByteString)) Source #

Returns the string value of a key after deleting the key (https://redis.io/commands/getdel).

O(1)

Since Redis 6.2.0

getex :: RedisCtx m f => ByteString -> m (f (Maybe ByteString)) Source #

Returns the string value of a key after setting its expiration time (https://redis.io/commands/getex).

O(1)

Since Redis 6.2.0

data IncrexOpts a Source #

Instances

Instances details
Show a => Show (IncrexOpts a) Source # 
Instance details

Defined in Database.Redis.ManualCommands

Eq a => Eq (IncrexOpts a) Source # 
Instance details

Defined in Database.Redis.ManualCommands

Methods

(==) :: IncrexOpts a -> IncrexOpts a -> Bool #

(/=) :: IncrexOpts a -> IncrexOpts a -> Bool #

defaultIncrexOpts :: IncrexOpts a Source #

Redis default IncrexOpts. Equivalent to omitting all optional parameters.

increx Source #

Arguments

:: RedisCtx m f 
=> ByteString

The name of the key to increment.

-> m (f (Integer, Integer)) 

Increments the numeric value of a key by one and optionally updates its expiration (https://redis.io/commands/increx).

O(1)

Since Redis 8.8.0

increxOpts Source #

Arguments

:: RedisCtx m f 
=> ByteString

The name of the key to increment.

-> IncrexOpts Integer

Bound and expiration options.

LBOUND and UBOUND constrain the result. SATURATE clips out-of-bounds values instead of rejecting the increment. EXPXEXATPXATPERSIST control the key expiration. ENX only sets the expiration when the key currently has no TTL.

-> m (f (Integer, Integer)) 

Increments the numeric value of a key by one and optionally updates its expiration (https://redis.io/commands/increx).

O(1)

Since Redis 8.8.0

increxBy Source #

Arguments

:: RedisCtx m f 
=> ByteString

The name of the key to increment.

-> Integer

The integer increment to apply.

-> IncrexOpts Integer

Bound and expiration options.

-> m (f (Integer, Integer)) 

Increments the integer value of a key by a specific amount and optionally updates its expiration (https://redis.io/commands/increx).

O(1)

Since Redis 8.8.0

increxByFloat Source #

Arguments

:: RedisCtx m f 
=> ByteString

The name of the key to increment.

-> Double

The floating-point increment to apply.

-> IncrexOpts Double

Bound and expiration options.

-> m (f (Double, Double)) 

Increments the floating-point value of a key by a specific amount and optionally updates its expiration (https://redis.io/commands/increx).

O(1)

Since Redis 8.8.0

getexOpts :: RedisCtx m f => ByteString -> GetExOpts -> m (f (Maybe ByteString)) Source #

Returns the string value of a key after setting its expiration time (https://redis.io/commands/getex).

O(1)

Since Redis 6.2.0

getrange Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> Integer

start

-> Integer

end

-> m (f ByteString) 

Get a substring of the string stored at a key (http://redis.io/commands/getrange). Since Redis 2.4.0

getset Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> ByteString

value

-> m (f (Maybe ByteString)) 

Set the string value of a key and return its old value (http://redis.io/commands/getset). Since Redis 1.0.0

incr Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> m (f Integer) 

Increment the integer value of a key by one (http://redis.io/commands/incr). Since Redis 1.0.0

incrby Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> Integer

increment

-> m (f Integer) 

Increment the integer value of a key by the given amount (http://redis.io/commands/incrby). Since Redis 1.0.0

incrbyfloat Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key.

-> Double

Increment.

-> m (f Double) 

Increment the float value of a key by the given amount (http://redis.io/commands/incrbyfloat). Since Redis 2.6.0

mget Source #

Arguments

:: RedisCtx m f 
=> NonEmpty ByteString

key

-> m (f [Maybe ByteString]) 

Get the values of all the given keys (http://redis.io/commands/mget). Since Redis 1.0.0

mset Source #

Arguments

:: RedisCtx m f 
=> NonEmpty (ByteString, ByteString)

keyValue

-> m (f Status) 

Set multiple keys to multiple values (http://redis.io/commands/mset). Since Redis 1.0.1

msetex Source #

Arguments

:: RedisCtx m f 
=> NonEmpty (ByteString, ByteString)

A series of key/value pairs.

-> m (f Bool) 

Atomically sets multiple string keys with an optional shared expiration in a single operation (https://redis.io/commands/msetex).

O(N) where N is the number of keys to set.

Since Redis 8.4.0

msetexOpts Source #

Arguments

:: RedisCtx m f 
=> NonEmpty (ByteString, ByteString)

A series of key/value pairs.

-> SetOpts

Shared condition and expiration flags.

The MSETEX command supports a set of options that modify its behavior: NX sets the keys and their expiration time only if none of the specified keys exist. XX sets the keys and their expiration time only if all of the specified keys already exist. EXPXEXAT/PXAT set the shared expiration for the specified keys. KEEPTTL retains the time to live associated with the keys.

-> m (f Bool) 

Atomically sets multiple string keys with an optional shared expiration in a single operation (https://redis.io/commands/msetex).

O(N) where N is the number of keys to set.

Since Redis 8.4.0

msetnx Source #

Arguments

:: RedisCtx m f 
=> NonEmpty (ByteString, ByteString)

keyValue

-> m (f Bool) 

Set multiple keys to multiple values, only if none of the keys exist (http://redis.io/commands/msetnx). Since Redis 1.0.1

psetex Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> Integer

milliseconds

-> ByteString

value

-> m (f Status) 

Set the value and expiration in milliseconds of a key (http://redis.io/commands/psetex). Condidered deprecated since it can be replaced by SET with the PX argument when migrating or writing new code Since Redis 2.6.0

data Condition Source #

Constructors

Nx

Only set the key if it does not already exist.

Xx

Only set the key if it already exists.

Instances

Instances details
Show Condition Source # 
Instance details

Defined in Database.Redis.ManualCommands

Eq Condition Source # 
Instance details

Defined in Database.Redis.ManualCommands

RedisArg Condition Source # 
Instance details

Defined in Database.Redis.ManualCommands

data SetOpts Source #

Constructors

SetOpts 

Fields

Instances

Instances details
Show SetOpts Source # 
Instance details

Defined in Database.Redis.ManualCommands

Eq SetOpts Source # 
Instance details

Defined in Database.Redis.ManualCommands

Methods

(==) :: SetOpts -> SetOpts -> Bool #

(/=) :: SetOpts -> SetOpts -> Bool #

defaultSetOpts :: SetOpts Source #

Redis default SetOpts. Equivalent to omitting all optional parameters.

setOpts Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> ByteString

value

-> SetOpts 
-> m (f Status) 

setGet Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> ByteString

value

-> m (f ByteString) 

setGetOpts Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> ByteString

value

-> SetOpts 
-> m (f ByteString) 

setbit Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> Integer

offset

-> ByteString

value

-> m (f Integer) 

Sets or clears the bit at offset in the string value stored at key (http://redis.io/commands/setbit). Since Redis 2.2.0

setex Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> Integer

seconds

-> ByteString

value

-> m (f Status) 

Set the value and expiration of a key (http://redis.io/commands/setex). Regarded as deprected since 2.6 as it can be replaced by SET with the EX argument when migrating or writing new code. Since Redis 2.0.0

setnx Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key to set.

-> ByteString

Value to set.

-> m (f Bool) 

O(1) Sets the value of a key, only if the key does not exist (http://redis.io/commands/setnx).

Returns a result if a value was set.

Since Redis 1.0.0

setrange Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> Integer

offset

-> ByteString

value

-> m (f Integer) 

Overwrite part of a string at key starting at the specified offset (http://redis.io/commands/setrange).

Returns the lenght of the string after it was modified.

Since Redis 2.2.0

strlen Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> m (f Integer) 

Get the length of the value stored in a key (http://redis.io/commands/strlen). Since Redis 2.2.0

substr Source #

Arguments

:: RedisCtx m f 
=> ByteString

key

-> Integer

start

-> Integer

end

-> m (f ByteString) 

Get a substring of the string stored at a key (http://redis.io/commands/substr).

Deprecated in Redis. Use getrange instead.

Since Redis 1.0.0

data XReadOpts Source #

Constructors

XReadOpts 

Instances

Instances details
Show XReadOpts Source # 
Instance details

Defined in Database.Redis.ManualCommands

Eq XReadOpts Source # 
Instance details

Defined in Database.Redis.ManualCommands

defaultXreadOpts :: XReadOpts Source #

Redis default XReadOpts. Equivalent to omitting all optional parameters.

XReadOpts
    { block = Nothing -- Don't block waiting for more records
    , recordCount    = Nothing   -- no record count
    }

xadd Source #

Arguments

:: RedisCtx m f 
=> ByteString

Stream name

-> ByteString

Message id

-> [(ByteString, ByteString)]

Message data (field, value)

-> m (f ByteString) 

O(1) Adds a value to a stream (https://redis.io/commands/xadd). Since Redis 5.0.0

xaddOpts Source #

Arguments

:: RedisCtx m f 
=> ByteString

Stream name.

-> ByteString

Message ID

-> [(ByteString, ByteString)]

Message data (field, value)

-> XAddOpts

Additional parameteers

-> m (f ByteString)

ID of the added entry.

Add a value to a stream (https://redis.io/commands/xadd). The Redis command XADD is split up into xadd, xaddOpts. Since Redis 5.0.0

data XAddOpts Source #

Constructors

XAddOpts 

Fields

data TrimStrategy Source #

Trimming strategy.

Since: 0.16.0

Constructors

TrimMaxlen Integer

Evicts entries as long as the stream's length exceeds the specified threshold, where threshold is a positive integer.

TrimMinId ByteString

Evicts entries with IDs lower than threshold, where threshold is a stream ID.

Since Redis 6.2: will fail if used on ealier versions.

data TrimType Source #

Type of the trimming.

Since: 0.16.0

Constructors

TrimExact

Exact trimming

TrimApprox (Maybe Integer)

Approximate trimming. Is faster, but may leave slightly more elements in the stream if they can't be immediately deleted.

Additional parameter Specifies the maximal count of entries that will be evicted. When LIMIT and count aren't specified, the default value of 100 * the number of entries in a macro node will be implicitly used as the count, Just 0 removes the limit entirely.

xread Source #

Arguments

:: RedisCtx m f 
=> [(ByteString, ByteString)]

(stream, id) pairs

-> m (f (Maybe [XReadResponse])) 

Read values from a stream (https://redis.io/commands/xread). The Redis command XREAD is split up into xread, xreadOpts. Since Redis 5.0.0

xreadOpts Source #

Arguments

:: RedisCtx m f 
=> [(ByteString, ByteString)]

(stream, id) pairs

-> XReadOpts

Options

-> m (f (Maybe [XReadResponse])) 

Read values from a stream (https://redis.io/commands/xread). The Redis command XREAD is split up into xread, xreadOpts. Since Redis 5.0.0

xreadGroup Source #

Arguments

:: RedisCtx m f 
=> ByteString

group name

-> ByteString

consumer name

-> [(ByteString, ByteString)]

(stream, id) pairs

-> m (f (Maybe [XReadResponse])) 

xreadGroupOpts Source #

Arguments

:: RedisCtx m f 
=> ByteString

group name

-> ByteString

consumer name

-> [(ByteString, ByteString)]

(stream, id) pairs

-> XReadGroupOpts

Options

-> m (f (Maybe [XReadResponse])) 

xack Source #

Arguments

:: RedisCtx m f 
=> ByteString

stream

-> ByteString

group name

-> [ByteString]

message IDs

-> m (f Integer) 

xackdel Source #

Arguments

:: RedisCtx m f 
=> ByteString

Stream name.

-> ByteString

Consumer group name.

-> NonEmpty ByteString

Entry IDs.

-> m (f [XEntryDeletionResult]) 

Acknowledges and conditionally deletes entries for a consumer group (https://redis.io/commands/xackdel).

O(1) for each entry ID processed.

Since Redis 8.2.0

xackdelOpts Source #

Arguments

:: RedisCtx m f 
=> ByteString

Stream name.

-> ByteString

Consumer group name.

-> NonEmpty ByteString

Entry IDs.

-> XEntryDeletionOpts

Additional options.

-> m (f [XEntryDeletionResult]) 

Acknowledges and conditionally deletes entries for a consumer group (https://redis.io/commands/xackdel).

O(1) for each entry ID processed.

Since Redis 8.2.0

data XRefPolicy Source #

Constructors

XRefPolicyKeepRef

Deletes the specified entries from the stream, but preserves existing references to these entries in all consumer groups

XRefPolicyDelRef

Deletes the specified entries from the stream and also removes all references to these entries from all consumer groups' pending entry lists, effectively cleaning up all traces of the messages. If an entry ID is not in the stream, but there are dangling references, XDELEX with DELREF would still remove all those references.

XRefPolicyAcked

Deletes the specified entries from the stream only if they have been acknowledged by all consumer groups.

Instances

Instances details
Show XRefPolicy Source # 
Instance details

Defined in Database.Redis.ManualCommands

Eq XRefPolicy Source # 
Instance details

Defined in Database.Redis.ManualCommands

RedisArg XRefPolicy Source # 
Instance details

Defined in Database.Redis.ManualCommands

data XCfgSetOpts Source #

Constructors

XCfgSetOpts 

Fields

Instances

Instances details
Show XCfgSetOpts Source # 
Instance details

Defined in Database.Redis.ManualCommands

Eq XCfgSetOpts Source # 
Instance details

Defined in Database.Redis.ManualCommands

defaultXCfgSetOpts :: XCfgSetOpts Source #

Redis default XCfgSetOpts. Equivalent to omitting all optional parameters.

At least one field must be set before calling xcfgset.

xcfgset Source #

Arguments

:: RedisCtx m f 
=> ByteString

The name of the stream key. The stream must already exist.

-> XCfgSetOpts

Configuration parameters.

At least one of xCfgSetIdmpDuration or xCfgSetIdmpMaxsize must be specified. Calling XCFGSET clears all existing producer IDMP maps for the stream.

-> m (f Status) 

Sets the IDMP configuration parameters for a stream (https://redis.io/commands/xcfgset).

O(1)

Since Redis 8.6.0

data XNackMode Source #

Instances

Instances details
Show XNackMode Source # 
Instance details

Defined in Database.Redis.ManualCommands

Eq XNackMode Source # 
Instance details

Defined in Database.Redis.ManualCommands

RedisArg XNackMode Source # 
Instance details

Defined in Database.Redis.ManualCommands

data XNackOpts Source #

Instances

Instances details
Show XNackOpts Source # 
Instance details

Defined in Database.Redis.ManualCommands

Eq XNackOpts Source # 
Instance details

Defined in Database.Redis.ManualCommands

defaultXNackOpts :: XNackOpts Source #

Redis default XNackOpts. Equivalent to omitting all optional parameters.

xidmprecord Source #

Arguments

:: RedisCtx m f 
=> ByteString

Stream key.

-> ByteString

Producer ID.

-> ByteString

Idempotency ID.

-> ByteString

Existing stream entry ID.

-> m (f Status) 

Sets IDMP metadata on an existing stream message (https://redis.io/commands/xidmprecord).

This is an internal command used during AOF loading.

O(1)

Since Redis 8.6.2

xnack Source #

Arguments

:: RedisCtx m f 
=> ByteString

Stream key.

-> ByteString

Consumer group name.

-> XNackMode

Release strategy.

-> NonEmpty ByteString

Stream entry IDs.

-> m (f Integer) 

Releases claimed messages back to the group's PEL without acknowledging them (https://redis.io/commands/xnack).

O(1) for each message ID processed.

Since Redis 8.8.0

xnackOpts Source #

Arguments

:: RedisCtx m f 
=> ByteString

Stream key.

-> ByteString

Consumer group name.

-> XNackMode

Release strategy.

-> NonEmpty ByteString

Stream entry IDs.

-> XNackOpts

Additional options.

-> m (f Integer) 

Releases claimed messages back to the group's PEL without acknowledging them (https://redis.io/commands/xnack).

O(1) for each message ID processed.

Since Redis 8.8.0

xgroupCreate Source #

Arguments

:: RedisCtx m f 
=> ByteString

Stream name.

-> ByteString

Consumer group name.

-> ByteString

ID of the message to start reading with.

-> m (f Status) 

O(1) Creates consumer group.

Fails if called on with the stream name that does not exist, use xgroupCreateOpts to override this behavior.

xgroupCreateOpts Source #

Arguments

:: RedisCtx m f 
=> ByteString

Stream name.

-> ByteString

Consumer group name.

-> ByteString

ID of the message to start reading with.

-> XGroupCreateOpts

Additional parameters.

-> m (f Status) 

O(1) Creates consumer group, accepts additional parameters.

data XGroupCreateOpts Source #

Additional parameters of the XGroupCreate

Constructors

XGroupCreateOpts 

Fields

  • xGroupCreateMkStream :: Bool

    If a stream does not exist, create it automatically with length of 0

  • xGroupCreateEntriesRead :: Maybe ByteString

    Enable consumer group lag tracking, specify an arbitrary ID. An arbitrary ID is any ID that isn't the ID of the stream's first entry, last entry, or zero ("0-0") ID. Use it to find out how many entries are between the arbitrary ID (excluding it) and the stream's last entry.

    Since Redis 7.0, fails if set on the ealier versions.

defaultXGroupCreateOpts :: XGroupCreateOpts Source #

Specifies default group opts.

Prefer using this method over use of constructor to preserve backwards compatibility.

xgroupCreateConsumer Source #

Arguments

:: RedisCtx m f 
=> ByteString

Stream name.

-> ByteString

Consumer group name.

-> ByteString

Consumer name.

-> m (f Bool)

Returns if the consumer was created or not.

O(1) Creates new consumer in the consumers group.

Since redis 6.2.0: fails on the ealier versions.

xgroupSetId Source #

Arguments

:: RedisCtx m f 
=> ByteString

Stream name.

-> ByteString

Consumr group name.

-> ByteString

Message ID or $

-> m (f Status) 

O(1) Sets last delivered id for a consumer group.

xgroupSetIdOpts Source #

Arguments

:: RedisCtx m f 
=> ByteString

Stream name.

-> ByteString

Consumer group name.

-> ByteString

Message id or @$S

-> XGroupSetIdOpts

Additional parameters.

-> m (f Status) 

O(1) a variant of the xgroupSetId that allowes to pass additional parameters.

newtype XGroupSetIdOpts Source #

Additional parameters for the xgroupSetId method

Constructors

XGroupSetIdOpts 

Fields

  • xGroupSetIdEntriesRead :: Maybe ByteString

    Enable consumer group lag tracking for an arbitrary ID. An arbitrary ID is any ID that isn't the ID of the stream's first entry, its last entry or the zero ("0-0") ID

    @since Redis 7.0, fails if set to Just on ealier versions.

defaultXGroupSetIdOpts :: XGroupSetIdOpts Source #

Default value for the XGroupSetIdOpts.

Prefer use this method over the raw constructor in order to preserve backwards compatibility.

xgroupDestroy Source #

Arguments

:: RedisCtx m f 
=> ByteString

Stream name.

-> ByteString

Consumer group name.

-> m (f Bool)

Tells if the group was destroyed or not.

O(1) destroys a group.

xgroupDelConsumer Source #

Arguments

:: RedisCtx m f 
=> ByteString

Stream name.

-> ByteString

Consumer group name.

-> ByteString

Consumer name.

-> m (f Integer)

The number of pending messages owned by the consumer.

O(1) Delete consumer.

xrange Source #

Arguments

:: RedisCtx m f 
=> ByteString

stream

-> ByteString

start

-> ByteString

end

-> Maybe Integer

COUNT

-> m (f [StreamsRecord]) 

xrevRange Source #

Arguments

:: RedisCtx m f 
=> ByteString

stream

-> ByteString

end

-> ByteString

start

-> Maybe Integer

COUNT

-> m (f [StreamsRecord]) 

xlen Source #

Arguments

:: RedisCtx m f 
=> ByteString

stream

-> m (f Integer) 

xpendingSummary Source #

Arguments

:: RedisCtx m f 
=> ByteString

Stream name.

-> ByteString

Stream consumer group.

-> m (f XPendingSummaryResponse) 

O(N) N - number of message beign returned.

Get information about pending messages (https:/redis.iocommands/xpending).

Since Redis 5.0.

data XPendingDetailOpts Source #

Additional parameters of the xpending call family

Constructors

XPendingDetailOpts 

Fields

defaultXPendingDetailOpts :: XPendingDetailOpts Source #

Default XPendingOpts values.

Prefer this method over use of the constructor in order to preserve backwards compatibility.

xpendingDetail Source #

Arguments

:: RedisCtx m f 
=> ByteString

Stream name.

-> ByteString

Consumer group name.

-> ByteString

ID of the first interesting message.

-> ByteString

ID of the last intersting message.

-> Integer

Limits the numbere of messages returned from the call.

-> XPendingDetailOpts 
-> m (f [XPendingDetailRecord]) 

O(N) N - number of messages returned.

Get detailed information about pending messages (https:/redis.iocommands/xpending).

xclaim Source #

Arguments

:: RedisCtx m f 
=> ByteString

stream

-> ByteString

group

-> ByteString

consumer

-> Integer

min idle time

-> XClaimOpts

optional arguments

-> [ByteString]

message IDs

-> m (f [StreamsRecord]) 

xclaimJustIds Source #

Arguments

:: RedisCtx m f 
=> ByteString

stream

-> ByteString

group

-> ByteString

consumer

-> Integer

min idle time

-> XClaimOpts

optional arguments

-> [ByteString]

message IDs

-> m (f [ByteString]) 

xautoclaim Source #

Arguments

:: RedisCtx m f 
=> ByteString

Stream name.

-> ByteString

Consumer group name.

-> ByteString

Consumer name.

-> Integer

Min idle time (ms).

-> ByteString

ID of the message to start.

-> m (f XAutoclaimStreamsResult) 

O(1) Transfers ownership of pending stream entries that match the specified criteria. The message should be pending for more than <min-idle-time> milliseconds and ID should be greater than <start>.

XAUTOCLAIM <stream name> <consumer group name> <min idle time> <start>

This version of function claims no more than 100 mesages, use xautoclaimOpt to override this behavior.

Since Redis 7.0: fails on ealier versions.

xautoclaimOpts Source #

Arguments

:: RedisCtx m f 
=> ByteString

Stream name.

-> ByteString

Consumer group name.

-> ByteString

Consumer name.

-> Integer

min idle time (ms).

-> ByteString

start ID.

-> XAutoclaimOpts

Additional parameters.

-> m (f XAutoclaimStreamsResult) 

O(1) if count is small. Transfers ownership of pending stream entries that match the specified criteria. See xautoclaim for details.

Allows to pass additional optional parameters to set limit.

XAUTOCLAIM <stream name> <consumer group name> <min idle time> <start> COUNT <count>

Since Redis 7.0: fails on the ealier versions.

newtype XAutoclaimOpts Source #

Additional parameters.

Constructors

XAutoclaimOpts 

Fields

type XAutoclaimStreamsResult = XAutoclaimResult StreamsRecord Source #

Version of the autoclaim result that contains data of the messages.

data XAutoclaimResult resultFormat Source #

Result of the xautoclaim family of calls

Constructors

XAutoclaimResult 

Fields

Instances

Instances details
Show resultFormat => Show (XAutoclaimResult resultFormat) Source # 
Instance details

Defined in Database.Redis.ManualCommands

Methods

showsPrec :: Int -> XAutoclaimResult resultFormat -> ShowS #

show :: XAutoclaimResult resultFormat -> String #

showList :: [XAutoclaimResult resultFormat] -> ShowS #

Eq resultFormat => Eq (XAutoclaimResult resultFormat) Source # 
Instance details

Defined in Database.Redis.ManualCommands

Methods

(==) :: XAutoclaimResult resultFormat -> XAutoclaimResult resultFormat -> Bool #

(/=) :: XAutoclaimResult resultFormat -> XAutoclaimResult resultFormat -> Bool #

RedisResult a => RedisResult (XAutoclaimResult a) Source # 
Instance details

Defined in Database.Redis.ManualCommands

xautoclaimJustIds Source #

Arguments

:: RedisCtx m f 
=> ByteString

Stream name.

-> ByteString

Consumer group name.

-> ByteString

Consumer name.

-> Integer

Min idle time (ms).

-> ByteString

start ID.

-> m (f XAutoclaimJustIdsResult) 

O(1) Transfers ownership of pending stream entries that match the specified criteria. See xautoclaim for more details about criteria.

This variant returns only id of the messages without data. This method claims no more than 100 messages, see xautoclaimJustIdsOpts for changing this default.

XAUTOCLAIM <stream name> <consumer group name> <min idle time> <start> JUSTID

Since Redis 7.0: fails on the ealier versions.

xautoclaimJustIdsOpts Source #

Arguments

:: RedisCtx m f 
=> ByteString

Stream name.

-> ByteString

Consumers group name.

-> ByteString

Consumer namee.

-> Integer

min idle time (ms).

-> ByteString

Start ID.

-> XAutoclaimOpts

Additional parametres.

-> m (f XAutoclaimJustIdsResult) 

O(1) if count is small Transfers ownership of pending stream entries that match the specified criteria. See xautoclaim for more details about criteria.

This variant returns only id of the messages without data and allows to set the maximum number of messages to be claimed.

XAUTOCLAIM <stream name> <consumer group name> <min idle time> <start> COUNT <count> JUSTID

Since Redis 7.0: fails on the ealier versions.

type XAutoclaimJustIdsResult = XAutoclaimResult ByteString Source #

Version of the autoclaim result that contains only IDs.

data XInfoConsumersResponse Source #

Data structure that is returned as a result of xinfoConsumers

Constructors

XInfoConsumersResponse 

Fields

xinfoConsumers Source #

Arguments

:: RedisCtx m f 
=> ByteString

Stream name.

-> ByteString

Group name.

-> m (f [XInfoConsumersResponse]) 

O(1) Returns information about the list of the consumers beloging to the consumer group.

Available since Redis 5.0.0

Wrapper over XINFO CONSUMERS <stream name> <group name>

data XInfoGroupsResponse Source #

Result of the xinfoGroups call.

Constructors

XInfoGroupsResponse 

Fields

xinfoGroups Source #

Arguments

:: RedisCtx m f 
=> ByteString

Stream name.

-> m (f [XInfoGroupsResponse]) 

O(1) Returns information about the groups.

Available since: Redis 5.0.0

Wrapper around XINFO GROUPS <stream name> call.

data XInfoStreamResponse Source #

Constructors

XInfoStreamResponse 

Fields

XInfoStreamEmptyResponse 

Fields

xinfoStream Source #

Arguments

:: RedisCtx m f 
=> ByteString

stream

-> m (f XInfoStreamResponse) 

Get info about a stream. The Redis command XINFO is split into xinfoConsumers, xinfoGroups, and xinfoStream. Since Redis 5.0.0

xdel Source #

Arguments

:: RedisCtx m f 
=> ByteString

stream

-> NonEmpty ByteString

message IDs

-> m (f Integer) 

Delete messages from a stream. Since Redis 5.0.0

xdelex Source #

Arguments

:: RedisCtx m f 
=> ByteString

Stream name.

-> NonEmpty ByteString

Entry IDs.

-> m (f [XEntryDeletionResult]) 

Conditionally deletes entries from a stream (https://redis.io/commands/xdelex).

O(1) for each entry ID processed.

Since Redis 8.2.0

xdelexOpts Source #

Arguments

:: RedisCtx m f 
=> ByteString

Stream name.

-> NonEmpty ByteString

Entry IDs.

-> XEntryDeletionOpts

Additional options.

-> m (f [XEntryDeletionResult]) 

Conditionally deletes entries from a stream (https://redis.io/commands/xdelex).

O(1) for each entry ID processed.

Since Redis 8.2.0

xtrim Source #

Arguments

:: RedisCtx m f 
=> ByteString

stream

-> TrimOpts 
-> m (f Integer) 

Set the upper bound for number of messages in a stream. Since Redis 5.0.0

data GeoUnit Source #

Instances

Instances details
Show GeoUnit Source # 
Instance details

Defined in Database.Redis.ManualCommands

Eq GeoUnit Source # 
Instance details

Defined in Database.Redis.ManualCommands

Methods

(==) :: GeoUnit -> GeoUnit -> Bool #

(/=) :: GeoUnit -> GeoUnit -> Bool #

RedisArg GeoUnit Source # 
Instance details

Defined in Database.Redis.ManualCommands

data GeoOrder Source #

Constructors

GeoAsc 
GeoDesc 

Instances

Instances details
Show GeoOrder Source # 
Instance details

Defined in Database.Redis.ManualCommands

Eq GeoOrder Source # 
Instance details

Defined in Database.Redis.ManualCommands

RedisArg GeoOrder Source # 
Instance details

Defined in Database.Redis.ManualCommands

data GeoAddOpts Source #

Adds one or more members to a geospatial index (https://redis.io/commands/geoadd). The Redis command GEOADD is split up into geoadd and geoAddOpts. Since Redis 3.2.0

Constructors

GeoAddOpts 

Fields

Instances

Instances details
Show GeoAddOpts Source # 
Instance details

Defined in Database.Redis.ManualCommands

Eq GeoAddOpts Source # 
Instance details

Defined in Database.Redis.ManualCommands

defaultGeoAddOpts :: GeoAddOpts Source #

Redis default GeoAddOpts. Equivalent to omitting all optional parameters.

geoadd :: RedisCtx m f => ByteString -> [(Double, Double, ByteString)] -> m (f Integer) Source #

Adds one or more members to a geospatial index (https://redis.io/commands/geoadd). The Redis command GEOADD is split up into geoadd and geoAddOpts.

Note: there is no geodel command because you can use zrem to remove elements. The Geo index structure is just a sorted set.

Since Redis 3.2.0

Redis tags: write, geo, slow

geoaddOpts :: RedisCtx m f => ByteString -> [(Double, Double, ByteString)] -> GeoAddOpts -> m (f Integer) Source #

Adds one or more members to a geospatial index (https://redis.io/commands/geoadd). The Redis command GEOADD is split up into geoadd and geoAddOpts.

Since Redis 6.2.0

geodist :: RedisCtx m f => ByteString -> ByteString -> ByteString -> Maybe GeoUnit -> m (f (Maybe Double)) Source #

Returns the distance between two members of a geospatial index (https://redis.io/commands/geodist). Since Redis 3.2.0

Redis tags: read, geo, slow

geopos :: RedisCtx m f => ByteString -> [ByteString] -> m (f [Maybe GeoCoordinates]) Source #

Returns the longitude and latitude of members from a geospatial index (https://redis.io/commands/geopos). Since Redis 3.2.0

ACL categories: read, geo, @slow.

geoSearch :: RedisCtx m f => ByteString -> GeoSearchFrom -> GeoSearchBy -> GeoSearchOpts -> m (f [GeoLocation]) Source #

Queries a geospatial index for members inside an area of a box or a circle (https://redis.io/commands/geosearch). Since Redis 6.2.0

O(N+log(M)) where N is the number of elements in the grid-aligned bounding box area around the shape provided as the filter and M is the number of items inside the shape

ACL: read, geo, @slow

Since: Redis 6.2.0

geoSearchStore :: RedisCtx m f => ByteString -> ByteString -> GeoSearchFrom -> GeoSearchBy -> GeoSearchStoreOpts -> m (f Integer) Source #

Queries a geospatial index for members inside an area of a box or a circle, optionally stores the result (https://redis.io/commands/geosearchstore). Since Redis 6.2.0

inf :: RealFloat a => a Source #

Constructor for inf Redis argument values

data ClusterInfoResponse Source #

Constructors

ClusterInfoResponse 

Fields

clusterMyshardid :: RedisCtx m f => m (f ByteString) Source #

Returns the shard ID of a node (https://redis.io/commands/cluster-myshardid).

O(1)

Since Redis 7.2.0

clusterMigrationImport Source #

Arguments

:: RedisCtx m f 
=> NonEmpty (Integer, Integer)

Slot ranges to import.

Execute this subcommand on the destination master. It accepts multiple slot ranges and returns a task ID that can later be used to monitor the migration.

-> m (f ByteString) 

Starts an atomic slot migration import task on the current node (https://redis.io/commands/cluster-migration).

O(N) where N is the total number of slots between the specified start and end slot arguments.

Since Redis 8.4.0

clusterMigrationCancelId Source #

Arguments

:: RedisCtx m f 
=> ByteString

Task identifier.

-> m (f Integer) 

Cancels an ongoing migration task by task ID (https://redis.io/commands/cluster-migration).

O(N) where N is the total number of slots between the specified start and end slot arguments.

Since Redis 8.4.0

clusterMigrationCancelAll :: RedisCtx m f => m (f Integer) Source #

Cancels all ongoing migration tasks (https://redis.io/commands/cluster-migration).

O(N) where N is the total number of slots between the specified start and end slot arguments.

Since Redis 8.4.0

clusterMigrationStatus :: RedisCtx m f => m (f ClusterMigrationStatusResponse) Source #

Returns the status of current and completed atomic slot migration tasks (https://redis.io/commands/cluster-migration).

O(N) where N is the total number of slots between the specified start and end slot arguments.

Since Redis 8.4.0

clusterMigrationStatusAll :: RedisCtx m f => m (f ClusterMigrationStatusResponse) Source #

Returns the status of all current and completed atomic slot migration tasks (https://redis.io/commands/cluster-migration).

O(N) where N is the total number of slots between the specified start and end slot arguments.

Since Redis 8.4.0

clusterMigrationStatusId Source #

Arguments

:: RedisCtx m f 
=> ByteString

Task identifier.

-> m (f ClusterMigrationStatusResponse) 

Returns the status of a specific atomic slot migration task (https://redis.io/commands/cluster-migration).

O(N) where N is the total number of slots between the specified start and end slot arguments.

Since Redis 8.4.0

command :: RedisCtx m f => m (f [CommandInfo]) Source #

functionDelete Source #

Arguments

:: RedisCtx m f 
=> ByteString

Library name.

-> m (f Status) 

Deletes a library and its functions (https://redis.io/commands/function-delete).

Deletes the library named by the argument together with all functions it contains.

O(1)

Since Redis 7.0.0

functionDump :: RedisCtx m f => m (f ByteString) Source #

Dumps all libraries into a serialized binary payload (https://redis.io/commands/function-dump).

Serializes all loaded libraries into a binary payload that can later be used with functionRestore.

O(N) where N is the number of functions.

Since Redis 7.0.0

functionFlush :: RedisCtx m f => m (f Status) Source #

Deletes all libraries and functions (https://redis.io/commands/function-flush).

Removes every library currently loaded into Redis.

O(N) where N is the number of functions deleted.

Since Redis 7.0.0

functionFlushOpts Source #

Arguments

:: RedisCtx m f 
=> FlushOpts

Flush mode.

-> m (f Status) 

Deletes all libraries and functions (https://redis.io/commands/function-flush).

Removes every library currently loaded into Redis using the requested flushing mode.

O(N) where N is the number of functions deleted.

Since Redis 7.0.0

functionKill :: RedisCtx m f => m (f Status) Source #

Terminates a function during execution (https://redis.io/commands/function-kill).

Terminates the currently running function, if it is marked as killable by Redis.

O(1)

Since Redis 7.0.0

functionLoad Source #

Arguments

:: RedisCtx m f 
=> ByteString

Library source code.

-> m (f ByteString) 

Creates a library (https://redis.io/commands/function-load).

Loads a new function library and returns its library name.

O(N) where N is the number of bytes in the function's source code.

Since Redis 7.0.0

functionLoadReplace Source #

Arguments

:: RedisCtx m f 
=> ByteString

Library source code.

-> m (f ByteString) 

Creates a library, replacing an existing one with the same name (https://redis.io/commands/function-load).

Loads a function library and replaces an existing library with the same name.

O(N) where N is the number of bytes in the function's source code.

Since Redis 7.0.0

functionRestore Source #

Arguments

:: RedisCtx m f 
=> ByteString

Serialized libraries payload.

-> m (f Status) 

Restores all libraries from a payload (https://redis.io/commands/function-restore).

Restores all libraries from a payload previously returned by functionDump.

O(N) where N is the number of functions restored.

Since Redis 7.0.0

functionRestoreOpts Source #

Arguments

:: RedisCtx m f 
=> ByteString

Serialized libraries payload.

-> FunctionRestoreOpts

Restore options.

-> m (f Status) 

Restores all libraries from a payload (https://redis.io/commands/function-restore).

Restores all libraries from a payload previously returned by functionDump, optionally selecting the restore policy.

O(N) where N is the number of functions restored.

Since Redis 7.0.0

functionStats :: RedisCtx m f => m (f Reply) Source #

Returns information about a function during execution (https://redis.io/commands/function-stats).

Returns execution statistics and runtime information for the function engine.

O(1)

Since Redis 7.0.0

data WaitAofResult Source #

Constructors

WaitAofResult 

Fields

waitaof Source #

Arguments

:: RedisCtx m f 
=> Integer

Number of local Redis instances to wait for AOF fsync on (0 or 1).

-> Integer

Number of replicas to wait for AOF fsync on.

-> Integer

Maximum time to wait in milliseconds. 0 means wait forever.

-> m (f WaitAofResult) 

O(1) Wait for preceding writes to be fsynced to the append-only file locally and/or on replicas (https://redis.io/commands/waitaof).

Blocks until all of the preceding write commands sent by the connection are written to the append-only file of the master and/or replicas.

Since Redis 7.2.0

publish Source #

Arguments

:: RedisCtx m f 
=> ByteString

channel

-> ByteString

message

-> m (f Integer) 

Post a message to a channel (http://redis.io/commands/publish).

pubSub Source #

Arguments

:: PubSub

Initial subscriptions.

-> (Message -> IO PubSub)

Callback function.

-> Redis () 

Listens to published messages on subscribed channels and channels matching the subscribed patterns. For documentation on the semantics of Redis Pub/Sub see http://redis.io/topics/pubsub.

The given callback function is called for each received message. Subscription changes are triggered by the returned PubSub. To keep subscriptions unchanged, the callback can return mempty.

Example: Subscribe to the "news" channel indefinitely.

 pubSub (subscribe ["news"]) $ \msg -> do
     putStrLn $ "Message from " ++ show (msgChannel msg)
     return mempty
 

Example: Receive a single message from the "chat" channel.

 pubSub (subscribe ["chat"]) $ \msg -> do
     putStrLn $ "Message from " ++ show (msgChannel msg)
     return $ unsubscribe ["chat"]
 

It should be noted that Redis Pub/Sub by its nature is asynchronous so returning unsubscribe does not mean that callback won't be able to receive any further messages. And to guarantee that you won't won't process messages after unsubscription and won't unsubscribe from the same channel more than once you need to use IORef or something similar

subscribe Source #

Arguments

:: [ByteString]

channel

-> PubSub 

Listen for messages published to the given channels (http://redis.io/commands/subscribe).

unsubscribe Source #

Arguments

:: [ByteString]

channel

-> PubSub 

Stop listening for messages posted to the given channels (http://redis.io/commands/unsubscribe).

psubscribe Source #

Arguments

:: [ByteString]

pattern

-> PubSub 

Listen for messages published to channels matching the given patterns (http://redis.io/commands/psubscribe).

punsubscribe Source #

Arguments

:: [ByteString]

pattern

-> PubSub 

Stop listening for messages posted to channels matching the given patterns (http://redis.io/commands/punsubscribe).

pubSubForever Source #

Arguments

:: Connection

The connection pool

-> PubSubController

The controller which keeps track of all subscriptions and handlers

-> IO ()

This action is executed once Redis acknowledges that all the subscriptions in the controller are now subscribed. You can use this after an exception (such as ConnectionLost) to signal that all subscriptions are now reactivated.

-> IO () 

Open a connection to the Redis server, register to all channels in the PubSubController, and process messages and subscription change requests forever. The only way this will ever exit is if there is an exception from the network code or an unhandled exception in a MessageCallback or PMessageCallback. For example, if the network connection to Redis dies, pubSubForever will throw a ConnectionLost. When such an exception is thrown, you can recall pubSubForever with the same PubSubController which will open a new connection and resubscribe to all the channels which are tracked in the PubSubController.

The general pattern is therefore during program startup create a PubSubController and fork a thread which calls pubSubForever in a loop (using an exponential backoff algorithm such as the retry package to not hammer the Redis server if it does die). For example,

myhandler :: ByteString -> IO ()
myhandler msg = putStrLn $ unpack $ decodeUtf8 msg

onInitialComplete :: IO ()
onInitialComplete = putStrLn "Redis acknowledged that mychannel is now subscribed"

main :: IO ()
main = do
  conn <- connect defaultConnectInfo
  pubSubCtrl <- newPubSubController [("mychannel", myhandler)] []
  concurrently ( forever $
      pubSubForever conn pubSubCtrl onInitialComplete
        `catch` (\(e :: SomeException) -> do
          putStrLn $ "Got error: " ++ show e
          threadDelay $ 50*1000) -- TODO: use exponential backoff
       ) $ restOfYourProgram


  {- elsewhere in your program, use pubSubCtrl to change subscriptions -}

At most one active pubSubForever can be running against a single PubSubController at any time. If two active calls to pubSubForever share a single PubSubController there will be deadlocks. If you do want to process messages using multiple connections to Redis, you can create more than one PubSubController. For example, create one PubSubController for each getNumCapabilities and then create a Haskell thread bound to each capability each calling pubSubForever in a loop. This will create one network connection per controller/capability and allow you to register separate channels and callbacks for each controller, spreading the load across the capabilities.

type RedisChannel = ByteString Source #

A Redis channel name

type RedisPChannel = ByteString Source #

A Redis pattern channel name

type MessageCallback = ByteString -> IO () Source #

A handler for a message from a subscribed channel. The callback is passed the message content.

Messages are processed synchronously in the receiving thread, so if the callback takes a long time it will block other callbacks and other messages from being received. If you need to move long-running work to a different thread, we suggest you use TBQueue with a reasonable bound, so that if messages are arriving faster than you can process them, you do eventually block.

If the callback throws an exception, the exception will be thrown from pubSubForever which will cause the entire Redis connection for all subscriptions to be closed. As long as you call pubSubForever in a loop you will reconnect to your subscribed channels, but you should probably add an exception handler to each callback to prevent this.

type PMessageCallback = RedisChannel -> ByteString -> IO () Source #

A handler for a message from a psubscribed channel. The callback is passed the channel the message was sent on plus the message content.

Similar to MessageCallback, callbacks are executed synchronously and any exceptions are rethrown from pubSubForever.

data PubSubController Source #

A controller that stores a set of channels, pattern channels, and callbacks. It allows you to manage Pub/Sub subscriptions and pattern subscriptions and alter them at any time throughout the life of your program. You should typically create the controller at the start of your program and then store it through the life of your program, using addChannels and removeChannels to update the current subscriptions.

newPubSubController Source #

Arguments

:: MonadIO m 
=> [(RedisChannel, MessageCallback)]

the initial subscriptions

-> [(RedisPChannel, PMessageCallback)]

the initial pattern subscriptions

-> m PubSubController 

Create a new PubSubController. Note that this does not subscribe to any channels, it just creates the controller. The subscriptions will happen once pubSubForever is called.

currentChannels :: FunctorMonadIO m => PubSubController -> m [RedisChannel] Source #

Get the list of current channels in the PubSubController. WARNING! This might not exactly reflect the subscribed channels in the Redis server, because there is a delay between adding or removing a channel in the PubSubController and when Redis receives and processes the subscription change request.

currentPChannels :: FunctorMonadIO m => PubSubController -> m [RedisPChannel] Source #

Get the list of current pattern channels in the PubSubController. WARNING! This might not exactly reflect the subscribed channels in the Redis server, because there is a delay between adding or removing a channel in the PubSubController and when Redis receives and processes the subscription change request.

addChannels Source #

Arguments

:: MonadIO m 
=> PubSubController 
-> [(RedisChannel, MessageCallback)]

the channels to subscribe to

-> [(RedisPChannel, PMessageCallback)]

the channels to pattern subscribe to

-> m UnregisterCallbacksAction 

Add channels into the PubSubController, and if there is an active pubSubForever, send the subscribe and psubscribe commands to Redis. The addChannels function is thread-safe. This function does not wait for Redis to acknowledge that the channels have actually been subscribed; use addChannelsAndWait for that.

You can subscribe to the same channel or pattern channel multiple times; the PubSubController keeps a list of callbacks and executes each callback in response to a message.

The return value is an action UnregisterCallbacksAction which will unregister the callbacks, which should typically used with bracket.

addChannelsAndWait Source #

Arguments

:: MonadIO m 
=> PubSubController 
-> [(RedisChannel, MessageCallback)]

the channels to subscribe to

-> [(RedisPChannel, PMessageCallback)]

the channels to psubscribe to

-> m UnregisterCallbacksAction 

Call addChannels and then wait for Redis to acknowledge that the channels are actually subscribed.

Note that this function waits for requested subscription change requests, so if you for example call addChannelsAndWait from multiple threads simultaneously, they will all wait their pending subscription changes to be acknowledged by Redis.

This also correctly waits if the network connection dies during the subscription change. Say that the network connection dies right after we send a subscription change to Redis. pubSubForever will throw ConnectionLost and addChannelsAndWait will continue to wait. Once you recall pubSubForever with the same PubSubController, pubSubForever will open a new connection, send subscription commands for all channels in the PubSubController (which include the ones we are waiting for), and wait for the responses from Redis. Only once we receive the response from Redis that it has subscribed to all channels in PubSubController will addChannelsAndWait unblock and return.

removeChannels :: MonadIO m => PubSubController -> [RedisChannel] -> [RedisPChannel] -> m () Source #

Remove channels from the PubSubController, and if there is an active pubSubForever, send the unsubscribe commands to Redis. Note that as soon as this function returns, no more callbacks will be executed even if more messages arrive during the period when we request to unsubscribe from the channel and Redis actually processes the unsubscribe request. This function is thread-safe.

If you remove all channels, the connection in pubSubForever to redis will stay open and waiting for any new channels from a call to addChannels. If you really want to close the connection, use killThread or cancel to kill the thread running pubSubForever.

removeChannelsAndWait :: MonadIO m => PubSubController -> [RedisChannel] -> [RedisPChannel] -> m () Source #

Call removeChannels and then wait for all pending subscription change requests to be acknowledged by Redis. This uses the same waiting logic as addChannelsAndWait. Since removeChannels immediately notifies the PubSubController to start discarding messages, you likely don't need this function and can just use removeChannels.

type UnregisterCallbacksAction = IO () Source #

An action that when executed will unregister the callbacks. It is returned from addChannels or addChannelsAndWait and typically you would use it in bracket to guarantee that you unsubscribe from channels. For example, if you are using websockets to distribute messages to clients, you could use something such as:

websocketConn <- Network.WebSockets.acceptRequest pending
let mycallback msg = Network.WebSockets.sendTextData websocketConn msg
bracket (addChannelsAndWait ctrl [("hello", mycallback)] []) id $ const $ do
  {- loop here calling Network.WebSockets.receiveData -}

withPubSub :: Connection -> [ByteString] -> [ByteString] -> (STM Message -> IO r) -> IO r Source #

Creates a subscription and automatically unsubscribes when callback returns, this function keeps flow control in the callback, so it is useful for short-lived subscriptions, when the callback knows when to exit. The function is quite simple and does not make any attempts to handle connection loss.

Note that this function does not support changing subscriptions while it is running, so it is only useful for short-lived Pub/Sub connections.

An example of usage, that is hard to implement with pubSubForever is to subscribe to a channel:

withPubSub conn ["mychannel"] [] $ \waitMsg -> do
   d <- registerDelay 1000000 -- 1 second (requires -threaded runtime)
   atomically $ asum [ readTVar >>= guard >> return Nothing
                     , Just $ waitMsg
                     ]

In case if connection is lost, user callback will receive BlockedIndefinitelyOnSTM exception.

watch Source #

Arguments

:: [ByteString]

key

-> Redis (Either Reply Status) 

Watch the given keys to determine execution of the MULTI/EXEC block (http://redis.io/commands/watch).

multiExec :: RedisTx (Queued a) -> Redis (TxResult a) Source #

Run commands inside a transaction. For documentation on the semantics of Redis transaction see http://redis.io/topics/transactions.

Inside the transaction block, command functions return their result wrapped in a Queued. The Queued result is a proxy object for the actual command's result, which will only be available after EXECing the transaction.

Example usage (note how Queued 's Applicative instance is used to combine the two individual results):

 runRedis conn $ do
     set "hello" "hello"
     set "world" "world"
     helloworld <- multiExec $ do
         hello <- get "hello"
         world <- get "world"
         return $ (,) <$> hello <*> world
     liftIO (print helloworld)
 

data Queued a Source #

A Queued value represents the result of a command inside a transaction. It is a proxy object for the actual result, which will only be available after returning from a multiExec transaction.

Queued values are composable by utilizing the Functor, Applicative or Monad interfaces.

Instances

Instances details
Applicative Queued Source # 
Instance details

Defined in Database.Redis.Transactions

Methods

pure :: a -> Queued a #

(<*>) :: Queued (a -> b) -> Queued a -> Queued b #

liftA2 :: (a -> b -> c) -> Queued a -> Queued b -> Queued c #

(*>) :: Queued a -> Queued b -> Queued b #

(<*) :: Queued a -> Queued b -> Queued a #

Functor Queued Source # 
Instance details

Defined in Database.Redis.Transactions

Methods

fmap :: (a -> b) -> Queued a -> Queued b #

(<$) :: a -> Queued b -> Queued a #

Monad Queued Source # 
Instance details

Defined in Database.Redis.Transactions

Methods

(>>=) :: Queued a -> (a -> Queued b) -> Queued b #

(>>) :: Queued a -> Queued b -> Queued b #

return :: a -> Queued a #

RedisCtx RedisTx Queued Source # 
Instance details

Defined in Database.Redis.Transactions

data TxResult a Source #

Result of a multiExec transaction.

Constructors

TxSuccess a

Transaction completed successfully. The wrapped value corresponds to the Queued value returned from the multiExec argument action.

TxAborted

Transaction aborted due to an earlier watch command.

TxError String

At least one of the commands returned an Error reply.

Instances

Instances details
NFData a => NFData (TxResult a) Source # 
Instance details

Defined in Database.Redis.Transactions

Methods

rnf :: TxResult a -> () #

Generic (TxResult a) Source # 
Instance details

Defined in Database.Redis.Transactions

Associated Types

type Rep (TxResult a) 
Instance details

Defined in Database.Redis.Transactions

type Rep (TxResult a) = D1 ('MetaData "TxResult" "Database.Redis.Transactions" "hedis-0.16.2-inplace" 'False) (C1 ('MetaCons "TxSuccess" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)) :+: (C1 ('MetaCons "TxAborted" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "TxError" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String))))

Methods

from :: TxResult a -> Rep (TxResult a) x #

to :: Rep (TxResult a) x -> TxResult a #

Show a => Show (TxResult a) Source # 
Instance details

Defined in Database.Redis.Transactions

Methods

showsPrec :: Int -> TxResult a -> ShowS #

show :: TxResult a -> String #

showList :: [TxResult a] -> ShowS #

Eq a => Eq (TxResult a) Source # 
Instance details

Defined in Database.Redis.Transactions

Methods

(==) :: TxResult a -> TxResult a -> Bool #

(/=) :: TxResult a -> TxResult a -> Bool #

type Rep (TxResult a) Source # 
Instance details

Defined in Database.Redis.Transactions

type Rep (TxResult a) = D1 ('MetaData "TxResult" "Database.Redis.Transactions" "hedis-0.16.2-inplace" 'False) (C1 ('MetaCons "TxSuccess" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)) :+: (C1 ('MetaCons "TxAborted" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "TxError" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String))))

data RedisTx a Source #

Command-context inside of MULTI/EXEC transactions. Use multiExec to run actions of this type.

In the RedisTx context, all commands return a Queued value. It is a proxy object for the actual result, which will only be available after finishing the transaction.

Instances

Instances details
MonadIO RedisTx Source # 
Instance details

Defined in Database.Redis.Transactions

Methods

liftIO :: IO a -> RedisTx a #

Applicative RedisTx Source # 
Instance details

Defined in Database.Redis.Transactions

Methods

pure :: a -> RedisTx a #

(<*>) :: RedisTx (a -> b) -> RedisTx a -> RedisTx b #

liftA2 :: (a -> b -> c) -> RedisTx a -> RedisTx b -> RedisTx c #

(*>) :: RedisTx a -> RedisTx b -> RedisTx b #

(<*) :: RedisTx a -> RedisTx b -> RedisTx a #

Functor RedisTx Source # 
Instance details

Defined in Database.Redis.Transactions

Methods

fmap :: (a -> b) -> RedisTx a -> RedisTx b #

(<$) :: a -> RedisTx b -> RedisTx a #

Monad RedisTx Source # 
Instance details

Defined in Database.Redis.Transactions

Methods

(>>=) :: RedisTx a -> (a -> RedisTx b) -> RedisTx b #

(>>) :: RedisTx a -> RedisTx b -> RedisTx b #

return :: a -> RedisTx a #

MonadRedis RedisTx Source # 
Instance details

Defined in Database.Redis.Transactions

Methods

liftRedis :: Redis a -> RedisTx a Source #

RedisCtx RedisTx Queued Source # 
Instance details

Defined in Database.Redis.Transactions

data TsSample Source #

Instances

Instances details
Show TsSample Source # 
Instance details

Defined in Database.Redis.ManualCommands.Ts

Eq TsSample Source # 
Instance details

Defined in Database.Redis.ManualCommands.Ts

RedisResult TsSample Source # 
Instance details

Defined in Database.Redis.ManualCommands.Ts

data TsIgnore Source #

Instances

Instances details
Show TsIgnore Source # 
Instance details

Defined in Database.Redis.ManualCommands.Ts

Eq TsIgnore Source # 
Instance details

Defined in Database.Redis.ManualCommands.Ts

data TsGetOpts Source #

Constructors

TsGetOpts 

Fields

Instances

Instances details
Show TsGetOpts Source # 
Instance details

Defined in Database.Redis.ManualCommands.Ts

Eq TsGetOpts Source # 
Instance details

Defined in Database.Redis.ManualCommands.Ts

data TsInfoOpts Source #

Constructors

TsInfoDefault 
TsInfoDebug 

Instances

Instances details
Show TsInfoOpts Source # 
Instance details

Defined in Database.Redis.ManualCommands.Ts

Eq TsInfoOpts Source # 
Instance details

Defined in Database.Redis.ManualCommands.Ts

tsAdd Source #

Arguments

:: RedisCtx m f 
=> ByteString

Time series key.

-> ByteString

Timestamp, or * for the current server time.

-> Double

Sample value.

-> m (f Integer) 

Appends a sample to a time series (https://redis.io/commands/ts.add).

O(M) when M is the number of compaction rules, or O(1) with no compaction

Since RedisTimeSeries 1.0.0

tsAddOpts Source #

Arguments

:: RedisCtx m f 
=> ByteString

Time series key.

-> ByteString

Timestamp, or * for the current server time.

-> Double

Sample value.

-> TsAddOpts

Insertion options.

-> m (f Integer) 

Appends a sample to a time series (https://redis.io/commands/ts.add).

O(M) when M is the number of compaction rules, or O(1) with no compaction

Since RedisTimeSeries 1.0.0

tsAlter Source #

Arguments

:: RedisCtx m f 
=> ByteString

Time series key.

-> TsAlterOpts

Alteration options.

-> m (f Status) 

Update the retention, chunk size, duplicate policy, and labels of an existing time series (https://redis.io/commands/ts.alter).

O(N) where N is the number of labels requested to update

Since RedisTimeSeries 1.0.0

tsCreate Source #

Arguments

:: RedisCtx m f 
=> ByteString

Time series key.

-> m (f Status) 

Create a new time series (https://redis.io/commands/ts.create).

O(1)

Since RedisTimeSeries 1.0.0

tsCreateOpts Source #

Arguments

:: RedisCtx m f 
=> ByteString

Time series key.

-> TsCreateOpts

Creation options.

-> m (f Status) 

Create a new time series (https://redis.io/commands/ts.create).

O(1)

Since RedisTimeSeries 1.0.0

tsCreaterule Source #

Arguments

:: RedisCtx m f 
=> ByteString

Source time series key.

-> ByteString

Destination time series key.

-> TsAggregator

Aggregation function.

-> Integer

Bucket duration in milliseconds.

-> m (f Status) 

Create a compaction rule (https://redis.io/commands/ts.createrule).

O(1)

Since RedisTimeSeries 1.0.0

tsCreateruleAlign Source #

Arguments

:: RedisCtx m f 
=> ByteString

Source time series key.

-> ByteString

Destination time series key.

-> TsAggregator

Aggregation function.

-> Integer

Bucket duration in milliseconds.

-> Integer

Alignment timestamp in milliseconds.

-> m (f Status) 

Create a compaction rule with an aligned bucket timestamp (https://redis.io/commands/ts.createrule).

O(1)

Since RedisTimeSeries 1.8.0

tsDecrby Source #

Arguments

:: RedisCtx m f 
=> ByteString

Time series key.

-> Double

Decrement amount.

-> m (f Integer) 

Decrease the value of the sample with the maximum timestamp, or create a new sample with a decremented value (https://redis.io/commands/ts.decrby).

O(M) when M is the number of compaction rules, or O(1) with no compaction

Since RedisTimeSeries 1.0.0

tsDecrbyOpts Source #

Arguments

:: RedisCtx m f 
=> ByteString

Time series key.

-> Double

Decrement amount.

-> TsIncrByOpts

Update options.

-> m (f Integer) 

Decrease the value of the sample with the maximum timestamp, or create a new sample with a decremented value (https://redis.io/commands/ts.decrby).

O(M) when M is the number of compaction rules, or O(1) with no compaction

Since RedisTimeSeries 1.0.0

tsDel Source #

Arguments

:: RedisCtx m f 
=> ByteString

Time series key.

-> Integer

Lower timestamp bound.

-> Integer

Upper timestamp bound.

-> m (f Integer) 

Delete all samples between two timestamps for a given time series (https://redis.io/commands/ts.del).

O(N) where N is the number of data points that will be removed

Since RedisTimeSeries 1.6.0

tsDelrule Source #

Arguments

:: RedisCtx m f 
=> ByteString

Source time series key.

-> ByteString

Destination time series key.

-> m (f Status) 

Delete a compaction rule (https://redis.io/commands/ts.delrule).

O(1)

Since RedisTimeSeries 1.0.0

tsGet Source #

Arguments

:: RedisCtx m f 
=> ByteString

Time series key.

-> m (f (Maybe TsSample)) 

Get the sample with the highest timestamp from a given time series (https://redis.io/commands/ts.get).

O(1)

Since RedisTimeSeries 1.0.0

tsGetOpts Source #

Arguments

:: RedisCtx m f 
=> ByteString

Time series key.

-> TsGetOpts

Read options.

-> m (f (Maybe TsSample)) 

Get the sample with the highest timestamp from a given time series (https://redis.io/commands/ts.get).

O(1)

Since RedisTimeSeries 1.0.0

tsIncrby Source #

Arguments

:: RedisCtx m f 
=> ByteString

Time series key.

-> Double

Increment amount.

-> m (f Integer) 

Increase the value of the sample with the maximum timestamp, or create a new sample with an incremented value (https://redis.io/commands/ts.incrby).

O(M) when M is the number of compaction rules, or O(1) with no compaction

Since RedisTimeSeries 1.0.0

tsIncrbyOpts Source #

Arguments

:: RedisCtx m f 
=> ByteString

Time series key.

-> Double

Increment amount.

-> TsIncrByOpts

Update options.

-> m (f Integer) 

Increase the value of the sample with the maximum timestamp, or create a new sample with an incremented value (https://redis.io/commands/ts.incrby).

O(M) when M is the number of compaction rules, or O(1) with no compaction

Since RedisTimeSeries 1.0.0

tsInfo Source #

Arguments

:: RedisCtx m f 
=> ByteString

Time series key.

-> m (f Reply) 

Returns information and statistics for a time series (https://redis.io/commands/ts.info).

The reply is a heterogeneous attribute map, so this wrapper returns the raw Reply.

O(1)

Since RedisTimeSeries 1.0.0

tsInfoOpts Source #

Arguments

:: RedisCtx m f 
=> ByteString

Time series key.

-> TsInfoOpts

Information query options.

-> m (f Reply) 

Returns information and statistics for a time series (https://redis.io/commands/ts.info).

The reply is a heterogeneous attribute map, so this wrapper returns the raw Reply.

O(1)

Since RedisTimeSeries 1.0.0

tsMadd Source #

Arguments

:: RedisCtx m f 
=> NonEmpty (ByteString, ByteString, Double)

Time series key, timestamp, and sample value triplets.

-> m (f [Integer]) 

Append new samples to one or more time series (https://redis.io/commands/ts.madd).

O(N cdot M) when N is the number of series updated and M is the number of compaction rules, or O(N) with no compaction

Since RedisTimeSeries 1.0.0

tsMget Source #

Arguments

:: RedisCtx m f 
=> NonEmpty ByteString

Filter expressions.

-> m (f Reply) 

Get the sample with the highest timestamp from each time series matching a specific filter (https://redis.io/commands/ts.mget).

The reply is heterogeneous and depends on label options, so this wrapper returns the raw Reply.

O(n) where n is the number of time-series that match the filters

Since RedisTimeSeries 1.0.0

tsMgetOpts Source #

Arguments

:: RedisCtx m f 
=> NonEmpty ByteString

Filter expressions.

-> TsMGetOpts

Read options.

-> m (f Reply) 

Get the sample with the highest timestamp from each time series matching a specific filter (https://redis.io/commands/ts.mget).

The reply is heterogeneous and depends on label options, so this wrapper returns the raw Reply.

O(n) where n is the number of time-series that match the filters

Since RedisTimeSeries 1.0.0

tsMrange Source #

Arguments

:: RedisCtx m f 
=> ByteString

Lower timestamp bound, or -.

-> ByteString

Upper timestamp bound, or +.

-> NonEmpty ByteString

Filter expressions.

-> m (f Reply) 

Query a range across multiple time series by filters in forward direction (https://redis.io/commands/ts.mrange).

The reply is heterogeneous and may include labels or grouped output, so this wrapper returns the raw Reply.

O(n/m+k) where n is the number of data points, m is the chunk size, and k is the number of returned samples

Since RedisTimeSeries 1.0.0

tsMrangeOpts Source #

Arguments

:: RedisCtx m f 
=> ByteString

Lower timestamp bound, or -.

-> ByteString

Upper timestamp bound, or +.

-> NonEmpty ByteString

Filter expressions.

-> TsMRangeOpts

Query options.

-> m (f Reply) 

Query a range across multiple time series by filters in forward direction (https://redis.io/commands/ts.mrange).

The reply is heterogeneous and may include labels or grouped output, so this wrapper returns the raw Reply.

O(n/m+k) where n is the number of data points, m is the chunk size, and k is the number of returned samples

Since RedisTimeSeries 1.0.0

tsMrevrange Source #

Arguments

:: RedisCtx m f 
=> ByteString

Lower timestamp bound, or -.

-> ByteString

Upper timestamp bound, or +.

-> NonEmpty ByteString

Filter expressions.

-> m (f Reply) 

Query a range across multiple time series by filters in reverse direction (https://redis.io/commands/ts.mrevrange).

The reply is heterogeneous and may include labels or grouped output, so this wrapper returns the raw Reply.

O(n/m+k) where n is the number of data points, m is the chunk size, and k is the number of returned samples

Since RedisTimeSeries 1.4.0

tsMrevrangeOpts Source #

Arguments

:: RedisCtx m f 
=> ByteString

Lower timestamp bound, or -.

-> ByteString

Upper timestamp bound, or +.

-> NonEmpty ByteString

Filter expressions.

-> TsMRangeOpts

Query options.

-> m (f Reply) 

Query a range across multiple time series by filters in reverse direction (https://redis.io/commands/ts.mrevrange).

The reply is heterogeneous and may include labels or grouped output, so this wrapper returns the raw Reply.

O(n/m+k) where n is the number of data points, m is the chunk size, and k is the number of returned samples

Since RedisTimeSeries 1.4.0

tsQueryindex Source #

Arguments

:: RedisCtx m f 
=> NonEmpty ByteString

Filter expressions.

-> m (f [ByteString]) 

Get all time series keys matching a filter list (https://redis.io/commands/ts.queryindex).

O(n) where n is the number of time-series that match the filters

Since RedisTimeSeries 1.0.0

tsRange Source #

Arguments

:: RedisCtx m f 
=> ByteString

Time series key.

-> ByteString

Lower timestamp bound, or -.

-> ByteString

Upper timestamp bound, or +.

-> m (f [TsSample]) 

Query a range in forward direction (https://redis.io/commands/ts.range).

O(n/m+k) where n is the number of data points, m is the chunk size, and k is the number of returned samples

Since RedisTimeSeries 1.0.0

tsRangeOpts Source #

Arguments

:: RedisCtx m f 
=> ByteString

Time series key.

-> ByteString

Lower timestamp bound, or -.

-> ByteString

Upper timestamp bound, or +.

-> TsRangeOpts

Query options.

-> m (f [TsSample]) 

Query a range in forward direction (https://redis.io/commands/ts.range).

O(n/m+k) where n is the number of data points, m is the chunk size, and k is the number of returned samples

Since RedisTimeSeries 1.0.0

tsRevrange Source #

Arguments

:: RedisCtx m f 
=> ByteString

Time series key.

-> ByteString

Lower timestamp bound, or -.

-> ByteString

Upper timestamp bound, or +.

-> m (f [TsSample]) 

Query a range in reverse direction (https://redis.io/commands/ts.revrange).

O(n/m+k) where n is the number of data points, m is the chunk size, and k is the number of returned samples

Since RedisTimeSeries 1.4.0

tsRevrangeOpts Source #

Arguments

:: RedisCtx m f 
=> ByteString

Time series key.

-> ByteString

Lower timestamp bound, or -.

-> ByteString

Upper timestamp bound, or +.

-> TsRangeOpts

Query options.

-> m (f [TsSample]) 

Query a range in reverse direction (https://redis.io/commands/ts.revrange).

O(n/m+k) where n is the number of data points, m is the chunk size, and k is the number of returned samples

Since RedisTimeSeries 1.4.0

data TopkInfo Source #

Constructors

TopkInfo 

Fields

Instances

Instances details
Show TopkInfo Source # 
Instance details

Defined in Database.Redis.ManualCommands.Topk

Eq TopkInfo Source # 
Instance details

Defined in Database.Redis.ManualCommands.Topk

RedisResult TopkInfo Source # 
Instance details

Defined in Database.Redis.ManualCommands.Topk

topkAdd Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key of the Top-K sketch.

-> NonEmpty ByteString

Items to add.

-> m (f [Maybe ByteString]) 

Adds one or more items to a Top-K sketch (https://redis.io/commands/topk.add).

Returns the items dropped from the sketch after each insertion, or Nothing when no item was expelled.

O(n cdot d), where n is the number of items and d is the depth of the sketch.

Since RedisBloom 2.0.0

topkCount Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key of the Top-K sketch.

-> NonEmpty ByteString

Items to count.

-> m (f [Integer]) 

Returns the count for one or more items in a Top-K sketch (https://redis.io/commands/topk.count).

Returns 0 for items that are not tracked by the sketch.

O(n cdot d), where n is the number of items and d is the depth of the sketch.

Since RedisBloom 2.0.0

topkIncrby Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key of the Top-K sketch.

-> NonEmpty (ByteString, Integer)

Item and increment pairs.

-> m (f [Maybe ByteString]) 

Increments the count of one or more items by a configured amount (https://redis.io/commands/topk.incrby).

Returns the items dropped from the sketch after each increment, or Nothing when no item was expelled.

O(n cdot d), where n is the number of item-increment pairs and d is the depth of the sketch.

Since RedisBloom 2.0.0

topkInfo Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key of the Top-K sketch.

-> m (f TopkInfo) 

topkList Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key of the Top-K sketch.

-> m (f [ByteString]) 

Returns the items in a Top-K sketch (https://redis.io/commands/topk.list).

O(k), where k is the configured top-k size.

Since RedisBloom 2.0.0

topkListWithCount Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key of the Top-K sketch.

-> m (f [(ByteString, Integer)]) 

Returns the items in a Top-K sketch along with their approximated counts (https://redis.io/commands/topk.list).

O(k), where k is the configured top-k size.

Since RedisBloom 2.0.0

topkReserve Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key of the Top-K sketch to create.

-> Integer

Number of items to keep in the sketch.

-> Integer

Number of counters in each array.

-> Integer

Number of counter arrays.

-> Double

Decay factor.

-> m (f Status) 

Creates an empty Top-K sketch (https://redis.io/commands/topk.reserve).

The sketch will fail to be created if the key already exists.

O(1)

Since RedisBloom 2.0.0

topkQuery Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key of the Top-K sketch.

-> NonEmpty ByteString

Items to check.

-> m (f [Bool]) 

Checks whether one or more items are present in a Top-K sketch (https://redis.io/commands/topk.query).

A False value means the item is not currently one of the tracked heavy hitters.

O(n cdot d), where n is the number of items and d is the depth of the sketch.

Since RedisBloom 2.0.0

data TDigestMergeOpts Source #

Constructors

TDigestMergeOpts 

Fields

data TDigestInfo Source #

Constructors

TDigestInfo 

Fields

tdigestAdd Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key of the t-digest sketch.

-> NonEmpty Double

Observations to add.

-> m (f Status) 

Adds one or more observations to a t-digest sketch (https://redis.io/commands/tdigest.add).

O(n log k), where n is the number of observations and k is the compression parameter.

Since RedisBloom 2.4.0

tdigestByrank Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key of the t-digest sketch.

-> NonEmpty Integer

Requested ranks.

-> m (f [Double]) 

Returns observations by their ascending ranks from a t-digest sketch (https://redis.io/commands/tdigest.byrank).

O(n log k), where n is the number of requested ranks and k is the compression parameter.

Since RedisBloom 2.4.0

tdigestByrevrank Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key of the t-digest sketch.

-> NonEmpty Integer

Requested reverse ranks.

-> m (f [Double]) 

Returns observations by their descending ranks from a t-digest sketch (https://redis.io/commands/tdigest.byrevrank).

O(n log k), where n is the number of requested reverse ranks and k is the compression parameter.

Since RedisBloom 2.4.0

tdigestCdf Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key of the t-digest sketch.

-> NonEmpty Double

Observations to query.

-> m (f [Double]) 

Returns cumulative distribution estimates for one or more observations (https://redis.io/commands/tdigest.cdf).

O(n log k), where n is the number of queried values and k is the compression parameter.

Since RedisBloom 2.4.0

tdigestCreate Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key of the t-digest sketch to create.

-> m (f Status) 

Creates an empty t-digest sketch (https://redis.io/commands/tdigest.create).

O(1)

Since RedisBloom 2.4.0

tdigestCreateOpts Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key of the t-digest sketch to create.

-> TDigestCreateOpts

Creation options.

-> m (f Status) 

Creates an empty t-digest sketch (https://redis.io/commands/tdigest.create).

O(1)

Since RedisBloom 2.4.0

tdigestInfo Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key of the t-digest sketch.

-> m (f TDigestInfo) 

Returns information about a t-digest sketch (https://redis.io/commands/tdigest.info).

O(1)

Since RedisBloom 2.4.0

tdigestMax Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key of the t-digest sketch.

-> m (f Double) 

Returns the maximum observation in a t-digest sketch (https://redis.io/commands/tdigest.max).

O(1)

Since RedisBloom 2.4.0

tdigestMerge Source #

Arguments

:: RedisCtx m f 
=> ByteString

Destination key.

-> NonEmpty ByteString

Source sketch keys.

-> m (f Status) 

Merges multiple t-digest sketches into a destination sketch (https://redis.io/commands/tdigest.merge).

O(n cdot k), where n is the number of source sketches and k is the compression parameter.

Since RedisBloom 2.4.0

tdigestMergeOpts Source #

Arguments

:: RedisCtx m f 
=> ByteString

Destination key.

-> NonEmpty ByteString

Source sketch keys.

-> TDigestMergeOpts

Merge options.

-> m (f Status) 

Merges multiple t-digest sketches into a destination sketch (https://redis.io/commands/tdigest.merge).

O(n cdot k), where n is the number of source sketches and k is the compression parameter.

Since RedisBloom 2.4.0

tdigestMin Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key of the t-digest sketch.

-> m (f Double) 

Returns the minimum observation in a t-digest sketch (https://redis.io/commands/tdigest.min).

O(1)

Since RedisBloom 2.4.0

tdigestQuantile Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key of the t-digest sketch.

-> NonEmpty Double

Quantiles to estimate.

-> m (f [Double]) 

Returns quantile estimates for one or more quantiles (https://redis.io/commands/tdigest.quantile).

O(n log k), where n is the number of quantiles and k is the compression parameter.

Since RedisBloom 2.4.0

tdigestRank Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key of the t-digest sketch.

-> NonEmpty Double

Observations to rank.

-> m (f [Integer]) 

Returns ascending rank estimates for one or more observations (https://redis.io/commands/tdigest.rank).

O(n log k), where n is the number of observations and k is the compression parameter.

Since RedisBloom 2.4.0

tdigestReset Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key of the t-digest sketch.

-> m (f Status) 

Resets a t-digest sketch to its empty state (https://redis.io/commands/tdigest.reset).

O(1)

Since RedisBloom 2.4.0

tdigestRevrank Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key of the t-digest sketch.

-> NonEmpty Double

Observations to rank.

-> m (f [Integer]) 

Returns descending rank estimates for one or more observations (https://redis.io/commands/tdigest.revrank).

O(n log k), where n is the number of observations and k is the compression parameter.

Since RedisBloom 2.4.0

tdigestTrimmedMean Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key of the t-digest sketch.

-> Double

Lower quantile bound.

-> Double

Upper quantile bound.

-> m (f Double) 

Returns the trimmed mean for observations within the provided quantile range (https://redis.io/commands/tdigest.trimmed_mean).

O(log k), where k is the compression parameter.

Since RedisBloom 2.4.0

jsonArrappend Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key holding a JSON value.

-> ByteString

Path to the array.

-> NonEmpty ByteString

Serialized JSON values to append.

-> m (f Reply) 

Appends one or more JSON values into the array at path after the last element in it (https://redis.io/commands/json.arrappend).

The reply shape depends on the path syntax, so this wrapper returns the raw Reply.

O(1) when path is evaluated to a single value, O(N) when path is evaluated to multiple values, where N is the size of the key

Since RedisJSON 1.0.0

jsonArrindex Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key holding a JSON value.

-> ByteString

Path to the array.

-> ByteString

Serialized JSON scalar to search for.

-> m (f Reply) 

Returns the index of the first occurrence of a JSON scalar value in the array at path (https://redis.io/commands/json.arrindex).

The reply shape depends on the path syntax, so this wrapper returns the raw Reply.

O(N) when path is evaluated to a single value where N is the size of the array, O(N) when path is evaluated to multiple values, where N is the size of the key

Since RedisJSON 1.0.0

jsonArrindexOpts Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key holding a JSON value.

-> ByteString

Path to the array.

-> ByteString

Serialized JSON scalar to search for.

-> JSONArrIndexOpts

Optional search range.

-> m (f Reply) 

Returns the index of the first occurrence of a JSON scalar value in the array at path (https://redis.io/commands/json.arrindex).

The reply shape depends on the path syntax, so this wrapper returns the raw Reply.

O(N) when path is evaluated to a single value where N is the size of the array, O(N) when path is evaluated to multiple values, where N is the size of the key

Since RedisJSON 1.0.0

jsonArrlen Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key holding a JSON value.

-> m (f Reply) 

Returns the length of the array at the root path (https://redis.io/commands/json.arrlen).

O(1) where path is evaluated to a single value, O(N) where path is evaluated to multiple values, where N is the size of the key

Since RedisJSON 1.0.0

jsonArrlenAt Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key holding a JSON value.

-> ByteString

Path to the array.

-> m (f Reply) 

Returns the length of the array at path (https://redis.io/commands/json.arrlen).

The reply shape depends on the path syntax, so this wrapper returns the raw Reply.

O(1) where path is evaluated to a single value, O(N) where path is evaluated to multiple values, where N is the size of the key

Since RedisJSON 1.0.0

jsonArrinsert Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key holding a JSON value.

-> ByteString

Path to the array.

-> Integer

Insertion index.

-> NonEmpty ByteString

Serialized JSON values to insert.

-> m (f Reply) 

Inserts the JSON scalar(s) value at the specified index in the array at path (https://redis.io/commands/json.arrinsert).

The reply shape depends on the path syntax, so this wrapper returns the raw Reply.

O(N) when path is evaluated to a single value where N is the size of the array, O(N) when path is evaluated to multiple values, where N is the size of the key

Since RedisJSON 1.0.0

jsonArrpop Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key holding a JSON value.

-> m (f Reply) 

Removes and returns the element at the end of the array at the root path (https://redis.io/commands/json.arrpop).

O(1) when the popped item is the last element, otherwise O(N) where N is the size of the array

Since RedisJSON 1.0.0

jsonArrpopAt Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key holding a JSON value.

-> ByteString

Path to the array.

-> m (f Reply) 

Removes and returns the element at the end of the array at path (https://redis.io/commands/json.arrpop).

The reply shape depends on the path syntax and popped value type, so this wrapper returns the raw Reply.

O(1) when the popped item is the last element, otherwise O(N) where N is the size of the array

Since RedisJSON 1.0.0

jsonArrpopAtIndex Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key holding a JSON value.

-> ByteString

Path to the array.

-> Integer

Index to pop.

-> m (f Reply) 

Removes and returns the element at the specified index in the array at path (https://redis.io/commands/json.arrpop).

The reply shape depends on the path syntax and popped value type, so this wrapper returns the raw Reply.

O(N) when the specified index is not the last element, otherwise O(1)

Since RedisJSON 1.0.0

jsonArrtrim Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key holding a JSON value.

-> ByteString

Path to the array.

-> Integer

Start index.

-> Integer

Stop index.

-> m (f Reply) 

Trims the array at path to contain only the specified inclusive range of indices from start to stop (https://redis.io/commands/json.arrtrim).

The reply shape depends on the path syntax, so this wrapper returns the raw Reply.

O(N) when path is evaluated to a single value where N is the size of the array, O(N) when path is evaluated to multiple values, where N is the size of the key

Since RedisJSON 1.0.0

jsonClear Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key holding a JSON value.

-> m (f Integer) 

Clears all values from an array or an object and sets numeric values at the root path to 0 (https://redis.io/commands/json.clear).

O(N) when path is evaluated to a single value where N is the size of the values, O(N) when path is evaluated to multiple values, where N is the size of the key

Since RedisJSON 2.0.0

jsonClearAt Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key holding a JSON value.

-> ByteString

Path to clear.

-> m (f Integer) 

Clears all values from an array or an object and sets numeric values at path to 0 (https://redis.io/commands/json.clear).

O(N) when path is evaluated to a single value where N is the size of the values, O(N) when path is evaluated to multiple values, where N is the size of the key

Since RedisJSON 2.0.0

jsonDebug :: RedisCtx m f => m (f Reply) Source #

Executes the JSON debug container command (https://redis.io/commands/json.debug).

This is a container command for debugging related tasks.

N/A

Since RedisJSON 1.0.0

jsonDebugMemory Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key holding a JSON value.

-> m (f Reply) 

Reports the size in bytes of a key at the root path (https://redis.io/commands/json.debug-memory).

The reply shape depends on the path syntax, so this wrapper returns the raw Reply.

O(N) when path is evaluated to a single value, where N is the size of the value, O(N) when path is evaluated to multiple values, where N is the size of the key

Since RedisJSON 1.0.0

jsonDebugMemoryAt Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key holding a JSON value.

-> ByteString

Path to inspect.

-> m (f Reply) 

Reports the size in bytes of a key at path (https://redis.io/commands/json.debug-memory).

The reply shape depends on the path syntax, so this wrapper returns the raw Reply.

O(N) when path is evaluated to a single value, where N is the size of the value, O(N) when path is evaluated to multiple values, where N is the size of the key

Since RedisJSON 1.0.0

jsonDel Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key holding a JSON value.

-> m (f Integer) 

Deletes a value at the root path (https://redis.io/commands/json.del).

O(N) when path is evaluated to a single value where N is the size of the deleted value, O(N) when path is evaluated to multiple values, where N is the size of the key

Since RedisJSON 1.0.0

jsonDelAt Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key holding a JSON value.

-> ByteString

Path to delete.

-> m (f Integer) 

Deletes a value at path (https://redis.io/commands/json.del).

O(N) when path is evaluated to a single value where N is the size of the deleted value, O(N) when path is evaluated to multiple values, where N is the size of the key

Since RedisJSON 1.0.0

jsonForget Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key holding a JSON value.

-> m (f Integer) 

Deletes a value at the root path (https://redis.io/commands/json.forget).

O(N) when path is evaluated to a single value where N is the size of the deleted value, O(N) when path is evaluated to multiple values, where N is the size of the key

Since RedisJSON 1.0.0

jsonForgetAt Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key holding a JSON value.

-> ByteString

Path to delete.

-> m (f Integer) 

Deletes a value at path (https://redis.io/commands/json.forget).

O(N) when path is evaluated to a single value where N is the size of the deleted value, O(N) when path is evaluated to multiple values, where N is the size of the key

Since RedisJSON 1.0.0

jsonGet Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key holding a JSON value.

-> m (f (Maybe ByteString)) 

Gets the value at the root path in JSON serialized form (https://redis.io/commands/json.get).

O(N) when path is evaluated to a single value where N is the size of the value, O(N) when path is evaluated to multiple values, where N is the size of the key

Since RedisJSON 1.0.0

jsonGetOpts Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key holding a JSON value.

-> JSONGetOpts

Formatting and path selection options.

-> m (f (Maybe ByteString)) 

Gets the value at one or more paths in JSON serialized form (https://redis.io/commands/json.get).

O(N) when path is evaluated to a single value where N is the size of the value, O(N) when path is evaluated to multiple values, where N is the size of the key

Since RedisJSON 1.0.0

jsonMerge Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key holding a JSON value.

-> ByteString

Path to merge into.

-> ByteString

Serialized JSON value.

-> m (f Status) 

Merges a given JSON value into matching paths (https://redis.io/commands/json.merge).

Consequently, JSON values at matching paths are updated, deleted, or expanded with new children.

O(M+N) when path is evaluated to a single value where M is the size of the original value and N is the size of the new value, O(M+N) when path is evaluated to multiple values where M is the size of the key and N is the size of the new value times the number of matches

Since RedisJSON 2.6.0

jsonMget Source #

Arguments

:: RedisCtx m f 
=> NonEmpty ByteString

Keys holding JSON values.

-> ByteString

Path to fetch from each key.

-> m (f [Maybe ByteString]) 

Returns the values at a path from one or more keys (https://redis.io/commands/json.mget).

O(M*N) when path is evaluated to a single value where M is the number of keys and N is the size of the value, O(N1+N2+dots+Nm) when path is evaluated to multiple values

Since RedisJSON 1.0.0

jsonMset Source #

Arguments

:: RedisCtx m f 
=> NonEmpty (ByteString, ByteString, ByteString)

Key, path, serialized JSON value triplets.

-> m (f Status) 

Sets or updates the JSON value of one or more keys (https://redis.io/commands/json.mset).

O(K*(M+N)) where K is the number of keys in the command

Since RedisJSON 2.6.0

jsonNumincrby Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key holding a JSON value.

-> ByteString

Path to the numeric value.

-> Double

Increment value.

-> m (f Reply) 

Increments the numeric value at path by a value (https://redis.io/commands/json.numincrby).

The reply shape depends on the path syntax, so this wrapper returns the raw Reply.

O(1) when path is evaluated to a single value, O(N) when path is evaluated to multiple values, where N is the size of the key

Since RedisJSON 1.0.0

jsonNummultby Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key holding a JSON value.

-> ByteString

Path to the numeric value.

-> Double

Multiplier value.

-> m (f Reply) 

Multiplies the numeric value at path by a value (https://redis.io/commands/json.nummultby).

The reply shape depends on the path syntax, so this wrapper returns the raw Reply.

O(1) when path is evaluated to a single value, O(N) when path is evaluated to multiple values, where N is the size of the key

Since RedisJSON 1.0.0

jsonObjkeys Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key holding a JSON value.

-> m (f Reply) 

Returns the key names of JSON objects at the root path (https://redis.io/commands/json.objkeys).

The reply shape depends on the path syntax, so this wrapper returns the raw Reply.

O(N) when path is evaluated to a single value, where N is the number of keys in the object, O(N) when path is evaluated to multiple values, where N is the size of the key

Since RedisJSON 1.0.0

jsonObjkeysAt Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key holding a JSON value.

-> ByteString

Path to the object.

-> m (f Reply) 

Returns the key names of JSON objects at path (https://redis.io/commands/json.objkeys).

The reply shape depends on the path syntax, so this wrapper returns the raw Reply.

O(N) when path is evaluated to a single value, where N is the number of keys in the object, O(N) when path is evaluated to multiple values, where N is the size of the key

Since RedisJSON 1.0.0

jsonObjlen Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key holding a JSON value.

-> m (f Reply) 

Returns the number of keys in JSON objects at the root path (https://redis.io/commands/json.objlen).

The reply shape depends on the path syntax, so this wrapper returns the raw Reply.

O(1) when path is evaluated to a single value, O(N) when path is evaluated to multiple values, where N is the size of the key

Since RedisJSON 1.0.0

jsonObjlenAt Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key holding a JSON value.

-> ByteString

Path to the object.

-> m (f Reply) 

Returns the number of keys in JSON objects at path (https://redis.io/commands/json.objlen).

The reply shape depends on the path syntax, so this wrapper returns the raw Reply.

O(1) when path is evaluated to a single value, O(N) when path is evaluated to multiple values, where N is the size of the key

Since RedisJSON 1.0.0

jsonResp Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key holding a JSON value.

-> m (f Reply) 

Returns the JSON value at the root path in Redis Serialization Protocol (RESP) (https://redis.io/commands/json.resp).

The reply may be any RESP shape depending on the JSON value, so this wrapper returns the raw Reply.

O(N) when path is evaluated to a single value, where N is the size of the value, O(N) when path is evaluated to multiple values, where N is the size of the key

Since RedisJSON 1.0.0

jsonRespAt Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key holding a JSON value.

-> ByteString

Path to inspect.

-> m (f Reply) 

Returns the JSON value at path in Redis Serialization Protocol (RESP) (https://redis.io/commands/json.resp).

The reply may be any RESP shape depending on the JSON value, so this wrapper returns the raw Reply.

O(N) when path is evaluated to a single value, where N is the size of the value, O(N) when path is evaluated to multiple values, where N is the size of the key

Since RedisJSON 1.0.0

jsonSet Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key holding a JSON value.

-> ByteString

Path to set.

-> ByteString

Serialized JSON value.

-> m (f (Maybe Status)) 

jsonSetOpts Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key holding a JSON value.

-> ByteString

Path to set.

-> ByteString

Serialized JSON value.

-> JSONSetOpts

Conditional and FPHA options.

-> m (f (Maybe Status)) 

Sets or updates the JSON value at a path (https://redis.io/commands/json.set).

O(M+N) when path is evaluated to a single value where M is the size of the original value and N is the size of the new value, O(M+N) when path is evaluated to multiple values where M is the size of the key and N is the size of the new value times the number of matches

Since RedisJSON 1.0.0

jsonStrappend Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key holding a JSON value.

-> ByteString

String value to append.

-> m (f Reply) 

Appends a string to JSON strings at the root path (https://redis.io/commands/json.strappend).

The reply shape depends on the path syntax, so this wrapper returns the raw Reply.

O(1) when path is evaluated to a single value, O(N) when path is evaluated to multiple values, where N is the size of the key

Since RedisJSON 1.0.0

jsonStrappendAt Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key holding a JSON value.

-> ByteString

Path to the JSON string.

-> ByteString

String value to append.

-> m (f Reply) 

Appends a string to JSON strings at path (https://redis.io/commands/json.strappend).

The reply shape depends on the path syntax, so this wrapper returns the raw Reply.

O(1) when path is evaluated to a single value, O(N) when path is evaluated to multiple values, where N is the size of the key

Since RedisJSON 1.0.0

jsonToggle Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key holding a JSON value.

-> ByteString

Path to the boolean value.

-> m (f Reply) 

Toggles a boolean value (https://redis.io/commands/json.toggle).

The reply shape depends on the path syntax, so this wrapper returns the raw Reply.

O(1) when path is evaluated to a single value, O(N) when path is evaluated to multiple values, where N is the size of the key

Since RedisJSON 2.0.0

jsonType Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key holding a JSON value.

-> m (f Reply) 

Returns the type of the JSON value at the root path (https://redis.io/commands/json.type).

The reply shape depends on the path syntax, so this wrapper returns the raw Reply.

O(1) when path is evaluated to a single value, O(N) when path is evaluated to multiple values, where N is the size of the key

Since RedisJSON 1.0.0

jsonTypeAt Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key holding a JSON value.

-> ByteString

Path to inspect.

-> m (f Reply) 

Returns the type of the JSON value at path (https://redis.io/commands/json.type).

The reply shape depends on the path syntax, so this wrapper returns the raw Reply.

O(1) when path is evaluated to a single value, O(N) when path is evaluated to multiple values, where N is the size of the key

Since RedisJSON 1.0.0

data FTOn Source #

Constructors

FTOnHash 
FTOnJson 

Instances

Instances details
Show FTOn Source # 
Instance details

Defined in Database.Redis.ManualCommands.FT

Methods

showsPrec :: Int -> FTOn -> ShowS #

show :: FTOn -> String #

showList :: [FTOn] -> ShowS #

Eq FTOn Source # 
Instance details

Defined in Database.Redis.ManualCommands.FT

Methods

(==) :: FTOn -> FTOn -> Bool #

(/=) :: FTOn -> FTOn -> Bool #

RedisArg FTOn Source # 
Instance details

Defined in Database.Redis.ManualCommands.FT

data FTSortable Source #

Constructors

FTSortable 
FTSortableUnf 

Instances

Instances details
Show FTSortable Source # 
Instance details

Defined in Database.Redis.ManualCommands.FT

Eq FTSortable Source # 
Instance details

Defined in Database.Redis.ManualCommands.FT

data FTAlterOpts Source #

Constructors

FTAlterOpts 

Instances

Instances details
Show FTAlterOpts Source # 
Instance details

Defined in Database.Redis.ManualCommands.FT

Eq FTAlterOpts Source # 
Instance details

Defined in Database.Redis.ManualCommands.FT

data FTSortBy Source #

Instances

Instances details
Show FTSortBy Source # 
Instance details

Defined in Database.Redis.ManualCommands.FT

Eq FTSortBy Source # 
Instance details

Defined in Database.Redis.ManualCommands.FT

data FTReduce Source #

Instances

Instances details
Show FTReduce Source # 
Instance details

Defined in Database.Redis.ManualCommands.FT

Eq FTReduce Source # 
Instance details

Defined in Database.Redis.ManualCommands.FT

data FTGroupBy Source #

Instances

Instances details
Show FTGroupBy Source # 
Instance details

Defined in Database.Redis.ManualCommands.FT

Eq FTGroupBy Source # 
Instance details

Defined in Database.Redis.ManualCommands.FT

data FTApply Source #

Instances

Instances details
Show FTApply Source # 
Instance details

Defined in Database.Redis.ManualCommands.FT

Eq FTApply Source # 
Instance details

Defined in Database.Redis.ManualCommands.FT

Methods

(==) :: FTApply -> FTApply -> Bool #

(/=) :: FTApply -> FTApply -> Bool #

ftList :: RedisCtx m f => m (f [ByteString]) Source #

Returns a list of all existing indexes (https://redis.io/commands/ft._list).

O(1)

Since RediSearch 2.0.0

ftAggregate Source #

Arguments

:: RedisCtx m f 
=> ByteString

Index name.

-> ByteString

Query string.

-> m (f Reply) 

Run a search query on an index and perform aggregate transformations on the results (https://redis.io/commands/ft.aggregate).

The reply shape varies with options such as WITHCURSOR, so this wrapper returns the raw Reply.

O(1)

Since RediSearch 1.1.0

ftAggregateOpts Source #

Arguments

:: RedisCtx m f 
=> ByteString

Index name.

-> ByteString

Query string.

-> FTAggregateOpts

Aggregate options and transformation steps.

-> m (f Reply) 

Run a search query on an index and perform aggregate transformations on the results (https://redis.io/commands/ft.aggregate).

The reply shape varies with options such as WITHCURSOR, so this wrapper returns the raw Reply.

O(1)

Since RediSearch 1.1.0

ftAliasAdd Source #

Arguments

:: RedisCtx m f 
=> ByteString

Alias name.

-> ByteString

Index name.

-> m (f Status) 

Adds an alias to the index (https://redis.io/commands/ft.aliasadd).

O(1)

Since RediSearch 1.0.0

ftAliasDel Source #

Arguments

:: RedisCtx m f 
=> ByteString

Alias name.

-> m (f Status) 

Deletes an alias from the index (https://redis.io/commands/ft.aliasdel).

O(1)

Since RediSearch 1.0.0

ftAliasUpdate Source #

Arguments

:: RedisCtx m f 
=> ByteString

Alias name.

-> ByteString

Index name.

-> m (f Status) 

Adds or updates an alias to the index (https://redis.io/commands/ft.aliasupdate).

O(1)

Since RediSearch 1.0.0

ftAlter Source #

Arguments

:: RedisCtx m f 
=> ByteString

Index name.

-> FTCreateField

Field definition to append to the schema.

-> m (f Status) 

Adds a new field to the index (https://redis.io/commands/ft.alter).

O(N) where N is the number of keys in the keyspace

Since RediSearch 1.0.0

ftAlterOpts Source #

Arguments

:: RedisCtx m f 
=> ByteString

Index name.

-> FTCreateField

Field definition to append to the schema.

-> FTAlterOpts

Alter options.

-> m (f Status) 

Adds a new field to the index (https://redis.io/commands/ft.alter).

O(N) where N is the number of keys in the keyspace

Since RediSearch 1.0.0

ftConfigSet Source #

Arguments

:: RedisCtx m f 
=> ByteString

Option name.

-> ByteString

Option value.

-> m (f Status) 

Sets runtime configuration options (https://redis.io/commands/ft.config-set).

O(1)

Since RediSearch 1.0.0

ftConfigGet Source #

Arguments

:: RedisCtx m f 
=> ByteString

Option name or pattern.

-> m (f Reply) 

Retrieves runtime configuration options (https://redis.io/commands/ft.config-get).

The server returns an option-dependent reply payload, so this wrapper returns the raw Reply.

O(1)

Since RediSearch 1.0.0

ftCreate Source #

Arguments

:: RedisCtx m f 
=> ByteString

Index name.

-> NonEmpty FTCreateField

Schema field definitions.

-> m (f Status) 

Creates an index with the given spec (https://redis.io/commands/ft.create).

O(K) at creation where K is the number of fields, O(N) if scanning the keyspace is triggered, where N is the number of keys in the keyspace

Since RediSearch 1.0.0

ftCreateOpts Source #

Arguments

:: RedisCtx m f 
=> ByteString

Index name.

-> NonEmpty FTCreateField

Schema field definitions.

-> FTCreateOpts

Index creation options.

-> m (f Status) 

Creates an index with the given spec (https://redis.io/commands/ft.create).

O(K) at creation where K is the number of fields, O(N) if scanning the keyspace is triggered, where N is the number of keys in the keyspace

Since RediSearch 1.0.0

ftCursorDel Source #

Arguments

:: RedisCtx m f 
=> ByteString

Index name.

-> Integer

Cursor identifier.

-> m (f Status) 

Deletes a cursor (https://redis.io/commands/ft.cursor-del).

O(1)

Since RediSearch 1.1.0

ftCursorRead Source #

Arguments

:: RedisCtx m f 
=> ByteString

Index name.

-> Integer

Cursor identifier.

-> m (f Reply) 

Reads from a cursor (https://redis.io/commands/ft.cursor-read).

The cursor batch payload is command-dependent, so this wrapper returns the raw Reply.

O(1)

Since RediSearch 1.1.0

ftCursorReadOpts Source #

Arguments

:: RedisCtx m f 
=> ByteString

Index name.

-> Integer

Cursor identifier.

-> FTCursorReadOpts

Cursor read options.

-> m (f Reply) 

Reads from a cursor (https://redis.io/commands/ft.cursor-read).

The cursor batch payload is command-dependent, so this wrapper returns the raw Reply.

O(1)

Since RediSearch 1.1.0

ftDictAdd Source #

Arguments

:: RedisCtx m f 
=> ByteString

Dictionary name.

-> NonEmpty ByteString

Terms to add.

-> m (f Integer) 

Adds terms to a dictionary (https://redis.io/commands/ft.dictadd).

O(1)

Since RediSearch 1.4.0

ftDictDel Source #

Arguments

:: RedisCtx m f 
=> ByteString

Dictionary name.

-> NonEmpty ByteString

Terms to delete.

-> m (f Integer) 

Deletes terms from a dictionary (https://redis.io/commands/ft.dictdel).

O(1)

Since RediSearch 1.4.0

ftDropIndex Source #

Arguments

:: RedisCtx m f 
=> ByteString

Index name.

-> m (f Status) 

Deletes the index (https://redis.io/commands/ft.dropindex).

O(1) or O(N) if documents are deleted, where N is the number of keys in the keyspace

Since RediSearch 2.0.0

ftDropIndexDeleteDocs Source #

Arguments

:: RedisCtx m f 
=> ByteString

Index name.

-> m (f Status) 

Deletes the index (https://redis.io/commands/ft.dropindex).

This variant also deletes indexed documents.

O(1) or O(N) if documents are deleted, where N is the number of keys in the keyspace

Since RediSearch 2.0.0

ftExplain Source #

Arguments

:: RedisCtx m f 
=> ByteString

Index name.

-> ByteString

Query string.

-> m (f ByteString) 

Returns the execution plan for a complex query (https://redis.io/commands/ft.explain).

O(1)

Since RediSearch 1.0.0

ftExplainOpts Source #

Arguments

:: RedisCtx m f 
=> ByteString

Index name.

-> ByteString

Query string.

-> FTExplainOpts

Explain options.

-> m (f ByteString) 

Returns the execution plan for a complex query (https://redis.io/commands/ft.explain).

O(1)

Since RediSearch 1.0.0

ftHybrid Source #

Arguments

:: RedisCtx m f 
=> ByteString

Index name.

-> FTHybridSearchClause

Textual search clause.

-> FTHybridVSimClause

Vector similarity clause.

-> m (f Reply) 

Performs hybrid search combining text search and vector similarity with configurable fusion methods (https://redis.io/commands/ft.hybrid).

The reply shape depends on requested projections and scoring options, so this wrapper returns the raw Reply.

O(N)

Since Redis Open Source 8.4.0

ftHybridOpts Source #

Arguments

:: RedisCtx m f 
=> ByteString

Index name.

-> FTHybridSearchClause

Textual search clause.

-> FTHybridVSimClause

Vector similarity clause.

-> FTHybridOpts

Hybrid query options.

-> m (f Reply) 

Performs hybrid search combining text search and vector similarity with configurable fusion methods (https://redis.io/commands/ft.hybrid).

The reply shape depends on requested projections and scoring options, so this wrapper returns the raw Reply.

O(N)

Since Redis Open Source 8.4.0

ftInfo Source #

Arguments

:: RedisCtx m f 
=> ByteString

Index name.

-> m (f Reply) 

Returns information and statistics on the index (https://redis.io/commands/ft.info).

The response is a heterogeneous attribute map, so this wrapper returns the raw Reply.

O(1)

Since RediSearch 1.0.0

ftProfile Source #

Arguments

:: RedisCtx m f 
=> ByteString

Index name.

-> FTProfileQueryType

Wrapped query type.

-> ByteString

Query payload for the wrapped command.

-> m (f Reply) 

Performs a SEARCH or AGGREGATE command and collects performance information (https://redis.io/commands/ft.profile).

The profiled reply depends on the wrapped query type, so this wrapper returns the raw Reply.

O(N)

Since RediSearch 2.2.0

ftProfileOpts Source #

Arguments

:: RedisCtx m f 
=> ByteString

Index name.

-> FTProfileQueryType

Wrapped query type.

-> ByteString

Query payload for the wrapped command.

-> FTProfileOpts

Profiling options.

-> m (f Reply) 

Performs a SEARCH or AGGREGATE command and collects performance information (https://redis.io/commands/ft.profile).

The profiled reply depends on the wrapped query type, so this wrapper returns the raw Reply.

O(N)

Since RediSearch 2.2.0

ftSearch Source #

Arguments

:: RedisCtx m f 
=> ByteString

Index name.

-> ByteString

Query string.

-> m (f Reply) 

Searches the index with a textual query, returning either documents or just ids (https://redis.io/commands/ft.search).

The reply shape depends on output flags such as NOCONTENT and WITHSCORES, so this wrapper returns the raw Reply.

O(N)

Since RediSearch 1.0.0

ftSearchOpts Source #

Arguments

:: RedisCtx m f 
=> ByteString

Index name.

-> ByteString

Query string.

-> FTSearchOpts

Search options.

-> m (f Reply) 

Searches the index with a textual query, returning either documents or just ids (https://redis.io/commands/ft.search).

The reply shape depends on output flags such as NOCONTENT and WITHSCORES, so this wrapper returns the raw Reply.

O(N)

Since RediSearch 1.0.0

ftSpellcheck Source #

Arguments

:: RedisCtx m f 
=> ByteString

Index name.

-> ByteString

Query string.

-> m (f Reply) 

Performs spelling correction on a query, returning suggestions for misspelled terms (https://redis.io/commands/ft.spellcheck).

The response contains nested suggestions, so this wrapper returns the raw Reply.

O(1)

Since RediSearch 1.4.0

ftSpellcheckOpts Source #

Arguments

:: RedisCtx m f 
=> ByteString

Index name.

-> ByteString

Query string.

-> FTSpellcheckOpts

Spellcheck options.

-> m (f Reply) 

Performs spelling correction on a query, returning suggestions for misspelled terms (https://redis.io/commands/ft.spellcheck).

The response contains nested suggestions, so this wrapper returns the raw Reply.

O(1)

Since RediSearch 1.4.0

ftSugAdd Source #

Arguments

:: RedisCtx m f 
=> ByteString

Suggestion dictionary key.

-> ByteString

Suggestion string.

-> Double

Suggestion score.

-> m (f Integer) 

Adds a suggestion string to an auto-complete suggestion dictionary (https://redis.io/commands/ft.sugadd).

O(1)

Since RediSearch 1.0.0

ftSugAddOpts Source #

Arguments

:: RedisCtx m f 
=> ByteString

Suggestion dictionary key.

-> ByteString

Suggestion string.

-> Double

Suggestion score.

-> FTSugAddOpts

Suggestion insertion options.

-> m (f Integer) 

Adds a suggestion string to an auto-complete suggestion dictionary (https://redis.io/commands/ft.sugadd).

O(1)

Since RediSearch 1.0.0

ftSugDel Source #

Arguments

:: RedisCtx m f 
=> ByteString

Suggestion dictionary key.

-> ByteString

Suggestion string.

-> m (f Integer) 

Deletes a string from a suggestion index (https://redis.io/commands/ft.sugdel).

O(1)

Since RediSearch 1.0.0

ftSugLen Source #

Arguments

:: RedisCtx m f 
=> ByteString

Suggestion dictionary key.

-> m (f Integer) 

Gets the size of an auto-complete suggestion dictionary (https://redis.io/commands/ft.suglen).

O(1)

Since RediSearch 1.0.0

ftTagVals Source #

Arguments

:: RedisCtx m f 
=> ByteString

Index name.

-> ByteString

Tag field name.

-> m (f [ByteString]) 

Returns the distinct tags indexed in a Tag field (https://redis.io/commands/ft.tagvals).

O(n) where n is the number of distinct tags in the field

Since RediSearch 1.0.0

data CMSInfo Source #

Constructors

CMSInfo 

Fields

Instances

Instances details
Show CMSInfo Source # 
Instance details

Defined in Database.Redis.ManualCommands.Cms

Eq CMSInfo Source # 
Instance details

Defined in Database.Redis.ManualCommands.Cms

Methods

(==) :: CMSInfo -> CMSInfo -> Bool #

(/=) :: CMSInfo -> CMSInfo -> Bool #

RedisResult CMSInfo Source # 
Instance details

Defined in Database.Redis.ManualCommands.Cms

data CMSMergeOpts Source #

Constructors

CMSMergeUnweighted (NonEmpty ByteString)

Merge the given source sketches using the default weight of 1.

CMSMergeWeighted (NonEmpty (ByteString, Integer))

Merge the given source sketches using an explicit weight for each source.

cmsincrby Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key of the Count-Min Sketch.

-> NonEmpty (ByteString, Integer)

Item and increment pairs.

-> m (f [Integer]) 

Increases the count of one or more items by increment (https://redis.io/commands/cms.incrby).

O(n) where n is the number of items

Since RedisBloom 2.0.0

cmsinfo Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key of the Count-Min Sketch.

-> m (f CMSInfo) 

Returns information about a sketch (https://redis.io/commands/cms.info).

O(1)

Since RedisBloom 2.0.0

cmsinitbydim Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key of the Count-Min Sketch to create.

-> Integer

Number of counters in each row.

-> Integer

Number of counter rows.

-> m (f Status) 

Initializes a Count-Min Sketch to dimensions specified by user (https://redis.io/commands/cms.initbydim).

O(1)

Since RedisBloom 2.0.0

cmsinitbyprob Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key of the Count-Min Sketch to create.

-> Double

Error factor.

-> Double

Probability of the error factor.

-> m (f Status) 

Initializes a Count-Min Sketch to accommodate requested tolerances (https://redis.io/commands/cms.initbyprob).

O(1)

Since RedisBloom 2.0.0

cmsmerge Source #

Arguments

:: RedisCtx m f 
=> ByteString

Destination sketch key.

-> NonEmpty ByteString

Source sketch keys.

-> m (f Status) 

Merges several sketches into one sketch (https://redis.io/commands/cms.merge).

Source sketches are merged with the default weight of 1.

O(n) where n is the number of sketches

Since RedisBloom 2.0.0

cmsmergeOpts Source #

Arguments

:: RedisCtx m f 
=> ByteString

Destination sketch key.

-> CMSMergeOpts

Source sketches with optional weights.

-> m (f Status) 

Merges several sketches into one sketch (https://redis.io/commands/cms.merge).

O(n) where n is the number of sketches

Since RedisBloom 2.0.0

cmsmergeWeighted Source #

Arguments

:: RedisCtx m f 
=> ByteString

Destination sketch key.

-> NonEmpty (ByteString, Integer)

Source sketch keys paired with weights.

-> m (f Status) 

Merges several sketches into one sketch (https://redis.io/commands/cms.merge).

O(n) where n is the number of sketches

Since RedisBloom 2.0.0

cmsquery Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key of the Count-Min Sketch.

-> NonEmpty ByteString

Items to query.

-> m (f [Integer]) 

Returns the count for one or more items in a sketch (https://redis.io/commands/cms.query).

O(n) where n is the number of items

Since RedisBloom 2.0.0

data CFInfo Source #

Constructors

CFInfo 

Fields

Instances

Instances details
Show CFInfo Source # 
Instance details

Defined in Database.Redis.ManualCommands.CF

Eq CFInfo Source # 
Instance details

Defined in Database.Redis.ManualCommands.CF

Methods

(==) :: CFInfo -> CFInfo -> Bool #

(/=) :: CFInfo -> CFInfo -> Bool #

RedisResult CFInfo Source # 
Instance details

Defined in Database.Redis.ManualCommands.CF

data CFReserveOpts Source #

Constructors

CFReserveOpts 

Fields

data CFInsertOpts Source #

Constructors

CFInsertOpts 

Fields

cfadd Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key of the Cuckoo filter.

-> ByteString

Item to add.

-> m (f Bool) 

Adds an item to a Cuckoo filter (https://redis.io/commands/cf.add).

A filter is created automatically if the key does not exist.

O(k + i), where k is the number of sub-filters and i is maxIterations.

Since RedisBloom 1.0.0

cfaddnx Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key of the Cuckoo filter.

-> ByteString

Item to add.

-> m (f Bool) 

Adds an item to a Cuckoo filter only if it did not already exist (https://redis.io/commands/cf.addnx).

A filter is created automatically if the key does not exist.

O(k + i), where k is the number of sub-filters and i is maxIterations.

Since RedisBloom 1.0.0

cfcount Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key of the Cuckoo filter.

-> ByteString

Item to count.

-> m (f Integer) 

Returns the number of times an item might appear in a Cuckoo filter (https://redis.io/commands/cf.count).

Returns 0 when the key does not exist or the item was not found.

O(k), where k is the number of sub-filters.

Since RedisBloom 1.0.0

cfdel Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key of the Cuckoo filter.

-> ByteString

Item to delete.

-> m (f Bool) 

Deletes an item from a Cuckoo filter (https://redis.io/commands/cf.del).

Returns False when the key does not exist or the item was not found.

O(k), where k is the number of sub-filters.

Since RedisBloom 1.0.0

cfexists Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key of the Cuckoo filter.

-> ByteString

Item to check.

-> m (f Bool) 

Checks whether an item may exist in a Cuckoo filter (https://redis.io/commands/cf.exists).

Returns False when the key does not exist or the item is definitely absent.

O(k), where k is the number of sub-filters.

Since RedisBloom 1.0.0

cfinfo Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key of the Cuckoo filter.

-> m (f CFInfo) 

Returns information about a Cuckoo filter (https://redis.io/commands/cf.info).

O(1)

Since RedisBloom 1.0.0

cfinsert Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key of the Cuckoo filter.

-> NonEmpty ByteString

Items to add.

-> m (f [CFInsertResult]) 

Adds one or more items to a Cuckoo filter, creating it when needed (https://redis.io/commands/cf.insert).

This is equivalent to inserting with default options and automatic creation enabled.

O(n * (k + i)), where n is the number of items, k is the number of sub-filters, and i is maxIterations.

Since RedisBloom 1.0.0

cfinsertOpts Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key of the Cuckoo filter.

-> NonEmpty ByteString

Items to add.

-> CFInsertOpts

Optional creation parameters.

-> m (f [CFInsertResult]) 

Adds one or more items to a Cuckoo filter, creating it when needed (https://redis.io/commands/cf.insert).

O(n * (k + i)), where n is the number of items, k is the number of sub-filters, and i is maxIterations.

Since RedisBloom 1.0.0

cfinsertnx Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key of the Cuckoo filter.

-> NonEmpty ByteString

Items to add.

-> m (f [CFInsertResult]) 

Adds one or more items to a Cuckoo filter only if they did not already exist (https://redis.io/commands/cf.insertnx).

This is equivalent to inserting with default options and automatic creation enabled.

O(n * (k + i)), where n is the number of items, k is the number of sub-filters, and i is maxIterations.

Since RedisBloom 1.0.0

cfinsertnxOpts Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key of the Cuckoo filter.

-> NonEmpty ByteString

Items to add.

-> CFInsertOpts

Optional creation parameters.

-> m (f [CFInsertResult]) 

Adds one or more items to a Cuckoo filter only if they did not already exist (https://redis.io/commands/cf.insertnx).

O(n * (k + i)), where n is the number of items, k is the number of sub-filters, and i is maxIterations.

Since RedisBloom 1.0.0

cfmexists Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key of the Cuckoo filter.

-> NonEmpty ByteString

Items to check.

-> m (f [Bool]) 

Checks whether one or more items may exist in a Cuckoo filter (https://redis.io/commands/cf.mexists).

A False result means the item is definitely absent, or the key does not exist.

O(k * n), where k is the number of sub-filters and n is the number of items.

Since RedisBloom 1.0.0

cfreserve Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key of the Cuckoo filter to create.

-> Integer

Initial capacity.

-> m (f Status) 

Creates an empty Cuckoo filter (https://redis.io/commands/cf.reserve).

The filter will fail if the key already exists.

O(1)

Since RedisBloom 1.0.0

cfreserveOpts Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key of the Cuckoo filter to create.

-> Integer

Initial capacity.

-> CFReserveOpts

Bucket and scaling options.

-> m (f Status) 

Creates an empty Cuckoo filter (https://redis.io/commands/cf.reserve).

O(1)

Since RedisBloom 1.0.0

data BFInfo Source #

Constructors

BFInfo 

Fields

Instances

Instances details
Show BFInfo Source # 
Instance details

Defined in Database.Redis.ManualCommands.BF

Eq BFInfo Source # 
Instance details

Defined in Database.Redis.ManualCommands.BF

Methods

(==) :: BFInfo -> BFInfo -> Bool #

(/=) :: BFInfo -> BFInfo -> Bool #

RedisResult BFInfo Source # 
Instance details

Defined in Database.Redis.ManualCommands.BF

data BFReserveOpts Source #

Constructors

BFReserveOpts 

Fields

data BFInsertOpts Source #

Constructors

BFInsertOpts 

Fields

bfadd Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key of the Bloom filter.

-> ByteString

Item to add to the Bloom filter.

-> m (f Bool) 

Adds an item to a Bloom filter (https://redis.io/commands/bf.add).

A filter is created automatically if the key does not exist.

O(k), where k is the number of hash functions used by the last sub-filter.

Since RedisBloom 1.0.0

bfcard Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key of the Bloom filter.

-> m (f Integer) 

Returns the cardinality of a Bloom filter (https://redis.io/commands/bf.card).

Returns 0 when the key does not exist.

O(1)

Since RedisBloom 2.4.4

bfexists Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key of the Bloom filter.

-> ByteString

Item to check.

-> m (f Bool) 

Determines whether an item was added to a Bloom filter (https://redis.io/commands/bf.exists).

Returns False when the key does not exist or the item was definitely not added.

O(k), where $k$ is the number of hash functions used by the last sub-filter.

Since RedisBloom 1.0.0

bfinfo Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key of the Bloom filter.

-> m (f BFInfo) 

Returns information about a Bloom filter (https://redis.io/commands/bf.info).

O(1)

Since RedisBloom 1.0.0

bfinfoCapacity Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key of the Bloom filter.

-> m (f [Integer]) 

Returns the configured capacity of a Bloom filter (https://redis.io/commands/bf.info).

O(1)

Since RedisBloom 1.0.0

bfinfoSize Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key of the Bloom filter.

-> m (f [Integer]) 

Returns the size in bytes of a Bloom filter (https://redis.io/commands/bf.info).

O(1)

Since RedisBloom 1.0.0

bfinfoFilters Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key of the Bloom filter.

-> m (f [Integer]) 

Returns the number of sub-filters in a Bloom filter (https://redis.io/commands/bf.info).

O(1)

Since RedisBloom 1.0.0

bfinfoItems Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key of the Bloom filter.

-> m (f [Integer]) 

Returns the number of unique inserted items detected by a Bloom filter (https://redis.io/commands/bf.info).

O(1)

Since RedisBloom 1.0.0

bfinfoExpansion Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key of the Bloom filter.

-> m (f [Maybe Integer]) 

Returns the expansion rate of a Bloom filter (https://redis.io/commands/bf.info).

O(1)

Returns Nothing for the non scaling filters.

Since RedisBloom 1.0.0

bfinsert Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key of the Bloom filter.

-> NonEmpty ByteString

Items to add.

-> m (f [Bool]) 

Adds one or more items to a Bloom filter, creating it when needed (https://redis.io/commands/bf.insert).

This is equivalent to inserting with default options and automatic creation enabled.

O(kn), where k is the number of hash functions and n is the number of items.

Since RedisBloom 1.0.0

bfinsertOpts Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key of the Bloom filter.

-> NonEmpty ByteString

Items to add.

-> BFInsertOpts

Optional creation and scaling parameters.

-> m (f [Bool]) 

Adds one or more items to a Bloom filter, creating it when needed (https://redis.io/commands/bf.insert).

O(kn), where k is the number of hash functions and n is the number of items.

Since RedisBloom 1.0.0

bfmadd Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key of the Bloom filter.

-> NonEmpty ByteString

Items to add.

-> m (f [Bool]) 

Adds one or more items to a Bloom filter (https://redis.io/commands/bf.madd).

A filter is created automatically if the key does not exist.

O(kn), where k is the number of hash functions and n is the number of items.

Since RedisBloom 1.0.0

bfmexists Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key of the Bloom filter.

-> NonEmpty ByteString

Items to check.

-> m (f [Bool]) 

Checks whether one or more items were added to a Bloom filter (https://redis.io/commands/bf.mexists).

A False result means the item is definitely absent, or the key does not exist.

O(kn), where k is the number of hash functions and n is the number of items.

Since RedisBloom 1.0.0

bfreserve Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key of the Bloom filter to create.

-> Double

Desired false positive probability, between 0 and 1.

-> Integer

Initial capacity.

-> m (f Status) 

Creates an empty Bloom filter (https://redis.io/commands/bf.reserve).

The filter will fail if the key already exists.

O(1)

Since RedisBloom 1.0.0

bfreserveOpts Source #

Arguments

:: RedisCtx m f 
=> ByteString

Key of the Bloom filter to create.

-> Double

Desired false positive probability, between 0 and 1.

-> Integer

Initial capacity.

-> BFReserveOpts

Scaling options for the reserved filter.

-> m (f Status) 

Creates an empty Bloom filter (https://redis.io/commands/bf.reserve).

O(1)

Since RedisBloom 1.0.0