class Redis::Connection

Overview

The connection wraps the TCP connection to the Redis server.

Included Modules

Defined in:

connection.cr

Constant Summary

CRLF = "\r\n"

Constructors

Instance Method Summary

Instance methods inherited from module Redis::Commands

brpop(*keys : String, timeout : Time::Span)
brpop(*keys : String, timeout : Int | Float)
brpop(*keys : String, timeout : String)
brpop
, decr(key : String) decr, decrby(key : String, amount : Int | String) decrby, del(*keys : String) del, exists(*keys : String) exists, get(key : String) get, incr(key : String) incr, incrby(key : String, amount : Int | String) incrby, keys(pattern = "*") keys, lpop(key, *values) lpop, lpush(key, *values) lpush, publish(channel : String, message : String) publish, rpop(key : String) rpop, rpoplpush(source : String, destination : String) rpoplpush, rpush(key, *values) rpush, run(command) run, sadd(key : String, *values : String) sadd, scard(key : String) scard, sdiff(first : String, second : String) sdiff, set(key : String, value : String, ex : String | Int | Nil = nil, px : String | Int | Nil = nil, nx = false, xx = false, keepttl = false)
set(key, value, ex : Time, nx = false, xx = false, keepttl = false)
set(key, value, ex : Time::Span, nx = false, xx = false, keepttl = false)
set
, sinter(first : String, *others : String) sinter, sismember(key : String, value : String) sismember, smembers(key : String) smembers, srem(key : String, *values : String) srem, 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
, xgroup(command : String, key : String, groupname : String)
xgroup(command : String, key : String, groupname : String, *args : String)
xgroup
, xlen(key : String) xlen, 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 : NamedTuple = NamedTuple.new) xreadgroup

Constructor Detail

def self.new(uri : URI = URI.parse("redis:///")) #

We receive all connection information in the URI.

SSL connections require specifying the rediss:// scheme. Password authentication uses the URI password. DB selection uses the URI path.


[View source]

Instance Method Detail

def close #

Close the connection to the server.


[View source]
def flush #

Flush the connection buffer and make sure we've sent everything to the server.


[View source]
def multi(retries = 5, &) #

Execute a transaction within the server. The transaction is automatically committed at the end of the block or can be rolled back with Transaction#discard. Transactions are also rolled back if an exception is raised.

redis.multi do |redis|
  redis.set "foo", "bar"
  redis.incr "counter"
  raise "Oops!"
end

redis.get "foo" # => nil
redis.get "counter" # => nil

[View source]
def pipeline(&) #

Execute a pipeline of commands. A pipeline sends all commands to the server before reading any of the results.

redis.pipeline do |redis|
  redis.set "foo", "bar"
  redis.incr "counter"
end

[View source]
def psubscribe(*channels : String, &block : Subscription, self -> ) #

[View source]
def punsubscribe(*channels : String) #

[View source]
def read #

Read the next value from the server


[View source]
def run(command, retries = 5) #

Execute the given command and return the result from the server. Commands must be an Enumerable.

run({"set", "foo", "bar"})

[View source]
def subscribe(*channels : String, &block : Subscription, self -> ) #

[View source]
def unsubscribe(*channels : String) #

[View source]