package redis-async

  1. Overview
  2. Docs

Module type Redis.SSource

Sourcemodule Key : sig ... end
Sourcemodule Field : sig ... end
Sourcemodule Value : sig ... end
Sourcetype t
Sourceval create : ?on_disconnect:(unit -> unit) -> ?auth:Auth.t -> where_to_connect:[< Async.Socket.Address.t ] Async.Tcp.Where_to_connect.t -> unit -> t Async.Deferred.Or_error.t
Sourceval create_using_sentinel : ?on_disconnect:(unit -> unit) -> ?sentinel_auth:Auth.t -> ?auth:Auth.t -> leader_name:string -> where_to_connect: [< Async.Socket.Address.t ] Async.Tcp.Where_to_connect.t list -> unit -> t Async.Deferred.Or_error.t
Sourceval close : t -> unit Async.Deferred.t
Sourceval close_finished : t -> unit Async.Deferred.t
Sourceval has_close_started : t -> bool

Redis commands are documented at: https://redis.io/commands

Sourceval select : t -> int -> unit Async.Deferred.Or_error.t
Sourceval flushall : t -> unit Async.Deferred.Or_error.t
Sourceval flushdb : t -> unit Async.Deferred.Or_error.t
Sourceval shutdown : t -> unit Async.Deferred.Or_error.t
Sourceval ping : t -> string -> string Async.Deferred.Or_error.t
Sourceval del : t -> Key.t list -> int Async.Deferred.Or_error.t
Sourceval exists : t -> Key.t list -> int Async.Deferred.Or_error.t
Sourceval keys : ?pattern:string -> t -> Key.t list Async.Deferred.Or_error.t
Sourceval rename : t -> Key.t -> new_key:Key.t -> unit Async.Deferred.Or_error.t
Sourceval scan : t -> cursor:Cursor.t -> ?count:int -> ?pattern:string -> unit -> (Cursor.t * Key.t list) Async.Deferred.Or_error.t
Sourceval client_tracking : t -> ?bcast:bool -> unit -> [ `All | `Key of Key.t ] Async.Pipe.Reader.t Async.Deferred.Or_error.t

Turn on Redis client tracking and provide a pipe of invalidation messages received from the server. Closing the pipe turns tracking off.

The NOLOOP option is used, which means that subscribers will not see invalidation messages caused by themselves, unless it is from the flushdb / flushall command.

Read here for more on usage: https://redis.io/commands/client-tracking https://redis.io/topics/client-side-caching

  • parameter bcast

    Whether to use BCAST. Off by default.

Sourceval mset : t -> (Key.t * Value.t) list -> unit Async.Deferred.Or_error.t
Sourceval msetnx : t -> (Key.t * Value.t) list -> bool Async.Deferred.Or_error.t
Sourceval mget : t -> Key.t list -> Value.t option list Async.Deferred.Or_error.t
Sourceval sismember : t -> Key.t -> Value.t -> bool Async.Deferred.Or_error.t
Sourceval smismember : t -> Key.t -> Value.t list -> bool list Async.Deferred.Or_error.t
Sourceval sadd : t -> Key.t -> Value.t list -> int Async.Deferred.Or_error.t
Sourceval srem : t -> Key.t -> Value.t list -> int Async.Deferred.Or_error.t
Sourceval zadd : t -> Key.t -> ([ `Score of float ] * Value.t) list -> int Async.Deferred.Or_error.t
Sourceval zrem : t -> Key.t -> Value.t list -> int Async.Deferred.Or_error.t
Sourceval pttl : t -> Key.t -> [ `Timeout of Core.Time_ns.Span.t | `No_timeout | `No_key ] Async.Deferred.Or_error.t
Sourceval pexpire : t -> Key.t -> ?nx:bool -> Core.Time_ns.Span.t -> [ `Set | `Not_set ] Async.Deferred.Or_error.t
Sourceval pexpireat : t -> Key.t -> ?nx:bool -> Core.Time_ns.t -> [ `Set | `Not_set ] Async.Deferred.Or_error.t
Sourceval zrange : t -> Key.t -> min_index:int -> max_index:int -> Value.t list Async.Deferred.Or_error.t
Sourceval zscore : t -> Key.t -> Value.t -> [ `Score of float ] option Async.Deferred.Or_error.t
Sourceval zrangebyscore : t -> Key.t -> min_score:float Core.Maybe_bound.t -> max_score:float Core.Maybe_bound.t -> Value.t list Async.Deferred.Or_error.t
Sourceval zremrangebyscore : t -> Key.t -> min_score:float Core.Maybe_bound.t -> max_score:float Core.Maybe_bound.t -> int Async.Deferred.Or_error.t
Sourceval hexists : t -> Key.t -> Field.t -> bool Async.Deferred.Or_error.t
Sourceval hset : t -> Key.t -> (Field.t * Value.t) list -> int Async.Deferred.Or_error.t
Sourceval hmget : t -> Key.t -> Field.t list -> Value.t option list Async.Deferred.Or_error.t
Sourceval hdel : t -> Key.t -> Field.t list -> int Async.Deferred.Or_error.t
Sourceval hscan : t -> cursor:Cursor.t -> ?count:int -> Key.t -> (Cursor.t * (Field.t * Value.t) list) Async.Deferred.Or_error.t
Sourceval keyevent_notifications : t -> [< Key_event.t ] as 'a list -> ('a * Key.t) Async.Pipe.Reader.t Async.Deferred.Or_error.t
Sourceval keyspace_notifications : t -> [< Key_event.t ] as 'a list -> [ `Patterns of string list | `Keys of Key.t list ] -> ('a * Key.t) Async.Pipe.Reader.t Async.Deferred.Or_error.t
Sourceval publish : t -> string -> Key.t -> int Async.Deferred.Or_error.t
Sourceval subscribe : t -> string list -> (string * Key.t) Async.Pipe.Reader.t Async.Deferred.Or_error.t
Sourceval subscribe_raw : t -> [ `Literal of string list | `Pattern of string list ] -> consume:((Core.read, Iobuf.seek) Iobuf.t -> subscription:string -> 'a) -> 'a Async.Pipe.Reader.t Async.Deferred.Or_error.t
Sourceval psubscribe : t -> string list -> (string * Key.t) Async.Pipe.Reader.t Async.Deferred.Or_error.t
Sourceval script_load : t -> string -> Redis__.Sha1.t Async.Deferred.Or_error.t
Sourceval evalsha : t -> Redis__.Sha1.t -> Key.t list -> Value.t list -> Resp3.t Async.Deferred.Or_error.t
Sourceval raw_command : t -> string list -> Resp3.t Async.Deferred.Or_error.t
Sourceval version : t -> string Async.Deferred.Or_error.t
Sourceval acl_setuser : t -> username:string -> rules:string list -> unit Async.Deferred.Or_error.t

ACL and authentication commands.

Read here for more:

https://redis.io/docs/manual/security/acl/#command-categories https://redis.io/docs/manual/security/acl/#selectors

Sourceval acl_deluser : t -> string list -> int Async.Deferred.Or_error.t
Sourceval acl_users : t -> string list Async.Deferred.Or_error.t
Sourceval acl_list : t -> string list Async.Deferred.Or_error.t
Sourceval acl_getuser : t -> username:string -> Resp3.t Async.Deferred.Or_error.t
Sourceval auth : t -> auth:Auth.t -> unit -> unit Async.Deferred.Or_error.t
Sourceval sentinel_leader : t -> string -> Core.Host_and_port.t Async.Deferred.Or_error.t

Sentinel specific commands. These will fail if not directly connected to a sentinel.

Read here for more: https://redis.io/docs/manual/sentinel/#sentinel-api

OCaml

Innovation. Community. Security.