module Redis::Commands
Overview
All Redis commands are defined in this module. Any paradigm that needs to
use these commands simply overrides #run
, which takes a single command
object, which must be an Enumerable
.
TODO Add more Redis commands from https://redis.io/commands
Included Modules
- Redis::Commands::Hash
- Redis::Commands::List
- Redis::Commands::Set
- Redis::Commands::SortedSet
- Redis::Commands::Stream
Direct including types
Defined in:
commands.crcommands/hash.cr
graph.cr
json.cr
search.cr
time_series.cr
Instance Method Summary
-
#decr(key : String)
Atomically decrement and return the integer value for the specified key, creating it if it does not exist
-
#decrby(key : String, amount : Int | String)
Atomically decrement and return the integer value for the specified key by the specified amount, creating it if it does not exist
-
#del(keys : Enumerable(String))
Delete all specified keys and return the number of keys deleted.
-
#del(*keys : String)
Delete all specified keys and return the number of keys deleted.
-
#exists(*keys : String)
Return the number of specified keys that exist
- #expire(key : String, ttl : Time::Span)
- #expire(key : String, ttl : Int)
- #expireat(key : String, at : Time)
-
#flushall
Delete all the keys of all the existing databases, not just the currently selected one.
-
#flushdb
Delete all the keys of the currently selected DB
-
#ft
EXPERIMENTAL RediSearch support is still under development. Some APIs may change while details are discovered.
-
#get(key : String)
Get the value for the specified key
-
#graph(key : String)
Instantiate a
Redis::Graph::Client
backed by thisRedis::Client
. -
#incr(key : String)
Atomically increment and return the integer value for the specified key, creating it if it does not exist
-
#incrby(key : String, amount : Int | String)
Atomically increment and return the integer value for the specified key by the specified amount, creating it if it does not exist
- #info
-
#json
Return a
Redis::JSON
instance that wraps the currentRedis::Client
orRedis::Cluster
.EXPERIMENTAL Support for the RedisJSON module is still under development and subject to change.
-
#keys(pattern = "*")
Get the keys whose names follow the specified glob pattern.
- #mget(keys : Enumerable(String))
- #mset(data : Hash(String, String))
- #pexpire(key : String, ttl : Time::Span)
- #pexpire(key : String, ttl : Int)
- #pexpireat(key : String, at : Time)
- #pttl(key : String)
- #publish(channel : String, message : String)
-
#run(command)
Execute the given command and return the result from the server.
- #scan(cursor : String = "0", match : String | Nil = nil, count : String | Int | Nil = nil, type : String | Nil = nil)
-
#set(key : String, value : String, ex : String | Int | Nil = nil, px : String | Int | Nil = nil, nx = false, xx = false, keepttl = false)
Set a given key to a given value, optionally specifying time-to-live (TTL).
- #set(key, value, ex : Time, nx = false, xx = false, keepttl = false)
- #set(key, value, ex : Time::Span, nx = false, xx = false, keepttl = false)
-
#ts
Return a
Redis::TimeSeries
that wraps the currentRedis::Client
orRedis::Cluster
. - #ttl(key : String)
- #type(key : String)
- #unlink(keys : Enumerable(String))
- #unlink(*keys : String)
Instance methods inherited from module Redis::Commands::Stream
xack(key : String, group : String, id : String)xack(key : String, group : String, ids : Enumerable(String)) xack, xadd(key : String, id : String, maxlen, data : Hash(String, String))
xadd(key : String, id : String, data : Hash(String, String))
xadd(key : String, id : String, maxlen = nil, **data) xadd, xautoclaim(key : String, group : String, consumer : String, min_idle_time : Time::Span, start : String, count : Int | String | Nil = nil) xautoclaim, xdel(key : String, ids : Enumerable(String))
xdel(key : String, *ids : String) xdel, xgroup(command : String, key : String, groupname : String)
xgroup(command : XGroup, key : String, groupname : String, *, id : String | Nil = nil, mkstream = false, consumer_name : String | Nil = nil)
xgroup(command : String, key : String, groupname : String, *args : String) xgroup, xgroup_create(key : String, groupname : String, *, id : String = "$", mkstream = false) xgroup_create, xgroup_create_consumer(key : String, groupname : String, consumer_name : String) xgroup_create_consumer, xlen(key : String) xlen, xpending(key : String, group : String, start : String, end finish : String, count : String | Int, idle : String | Time::Span | Nil = nil)
xpending(key : String, group : String) xpending, xrange(key : String, start min, end max, count = nil) xrange, xreadgroup(group : String, consumer : String, count : String | Int | Nil = nil, block : Time::Span | String | Int | Nil = nil, no_ack = false, streams : ::Hash(String, String) = {} of String => String)
xreadgroup(group : String, consumer : String, count : String | Int | Nil = nil, block : Time::Span | String | Int | Nil = nil, no_ack = false, streams : NamedTuple = NamedTuple.new) xreadgroup
Instance methods inherited from module Redis::Commands::SortedSet
zadd(key : String, score : String | Float, value : String)zadd(key : String, values : Enumerable) zadd, zcard(key : String) zcard, zcount(key : String, min : String, max : String) zcount, zrange(key : String, starting : String | Int, ending : String | Int, with_scores : Bool = false) zrange, zrangebyscore(key : String, low : String | Float, high : String | Float, limit : Enumerable(String) | Nil = nil) zrangebyscore, zrem(key : String, value : String) zrem, zremrangebyrank(key : String, low : Int, high : Int) zremrangebyrank, zremrangebyscore(key : String, low : String | Float, high : String | Float) zremrangebyscore, zrevrange(key : String, starting : String | Int, ending : String | Int, with_scores : Bool = false) zrevrange, zscore(key : String, value : String) zscore
Instance methods inherited from module Redis::Commands::Set
sadd(key : String, *values : String)
sadd,
scard(key : String)
scard,
sdiff(first : String, second : String)
sdiff,
sinter(first : String, *others : String)
sinter,
sismember(key : String, value : String)
sismember,
smembers(key : String)
smembers,
srem(key : String, members : Enumerable(String))srem(key : String, *values : String) srem
Instance methods inherited from module Redis::Commands::List
blpop(*keys : String, timeout : Time::Span)blpop(*keys : String, timeout : Int | Float)
blpop(*keys : String, timeout : String) blpop, brpop(keys : Enumerable(String), timeout : Int)
brpop(*keys : String, timeout : Time::Span)
brpop(*keys : String, timeout : Number)
brpop(*keys : String, timeout : String) brpop, llen(key : String) llen, lpop(key : String, count : String | Nil = nil) lpop, lpush(key : String, values : Enumerable(String))
lpush(key, *values : String) lpush, lrange(key : String, start : String | Int, finish : String | Int) lrange, lrem(key : String, count : Int, value : String) lrem, rpop(key : String) rpop, rpoplpush(source : String, destination : String) rpoplpush, rpush(key, *values : String) rpush
Instance methods inherited from module Redis::Commands::Hash
hget(key : String, field : String)
hget,
hgetall(key : String)
hgetall,
hincrby(key : String, field : String, increment : Int | String)
hincrby,
hmget(key : String, *fields : String)
hmget,
hmset(key : String, data : ::Hash(String, String))
hmset,
hset(key : String, data : ::Hash(String, String))hset(key : String, *fields : String)
hset(key : String, **fields : String) hset
Instance Method Detail
Atomically decrement and return the integer value for the specified key, creating it if it does not exist
redis.del "counter"
redis.decr "counter" # => -1
Atomically decrement and return the integer value for the specified key by the specified amount, creating it if it does not exist
redis.del "counter"
redis.decrby "counter", 2 # => -2
Delete all specified keys and return the number of keys deleted.
redis.set "foo", "12"
redis.del ["foo", "bar"] # => 1
redis.del ["foo", "bar"] # => 0
Delete all specified keys and return the number of keys deleted.
redis.set "foo", "12"
redis.del "foo", "bar" # => 1
redis.del "foo", "bar" # => 0
Return the number of specified keys that exist
redis.exists("foo", "bar") # => 0
redis.set "foo", "exists now"
redis.exists("foo", "bar") # => 1
redis.set "bar", "also exists now"
redis.exists("foo", "bar") # => 2
Delete all the keys of all the existing databases, not just the currently selected one.
EXPERIMENTAL RediSearch support is still under development. Some APIs may change while details are discovered.
Get the value for the specified key
redis.set "foo", "bar"
redis.get("foo") # => "bar"
Atomically increment and return the integer value for the specified key, creating it if it does not exist
redis.del "counter"
redis.incr "counter" # => 1
Atomically increment and return the integer value for the specified key by the specified amount, creating it if it does not exist
redis.del "counter"
redis.incrby "counter", 2 # => 2
Return a Redis::JSON
instance that wraps the current Redis::Client
or
Redis::Cluster
.
EXPERIMENTAL Support for the RedisJSON module is still under development and subject to change.
Get the keys whose names follow the specified glob pattern. If a pattern is not specified, it will return all keys by default. Be careful when using this command on Redis servers with a lot of traffic and millions of keys.
redis.keys # => ["foo", "bar", "baz"]
redis.keys("f*") # => ["foo"]
redis.keys("b*") # => ["bar", "baz"]
Execute the given command and return the result from the server. Commands
must be an Enumerable
and its size
method must be re-entrant.
run({"set", "foo", "bar"})
Set a given key to a given value, optionally specifying time-to-live (TTL).
ex
: TTL in seconds (mnemonic: "ex" = "expiration")px
: TTL in millisecondsnx
: Only set this key if it does not exist (mnemonic: "nx" = it does "not exist")xx
: only set this key if it does exist (mnemonic: "xx" = it "exists exists" — look, I don't make the rules)keepttl
: If there is a TTL already set on the key, retain that TTL instead of overwriting it
redis.set "foo", "bar", ex: 1
redis.get("foo") # => "bar"
sleep 1.second
redis.get("foo") # => nil