class Redis::Connection
- Redis::Connection
- Reference
- Object
Overview
The connection wraps the TCP connection to the Redis server.
Included Modules
Defined in:
connection.crConstant Summary
-
CRLF =
"\r\n"
Constructors
-
.new(uri : URI = URI.parse("redis:///"))
We receive all connection information in the URI.
Instance Method Summary
-
#close
Close the connection to the server.
-
#flush
Flush the connection buffer and make sure we've sent everything to the server.
-
#multi(retries = 5, &)
Execute a transaction within the server.
-
#pipeline(&)
Execute a pipeline of commands.
- #psubscribe(*channels : String, &block : Subscription, self -> )
- #punsubscribe(*channels : String)
-
#read
Read the next value from the server
-
#run(command, retries = 5)
Execute the given command and return the result from the server.
- #subscribe(*channels : String, &block : Subscription, self -> )
- #subscribe(*channels : String)
- #unsubscribe(*channels : String)
- #url
Instance methods inherited from module Redis::Commands
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, decr(key : String) decr, decrby(key : String, amount : Int | String) decrby, del(*keys : String) del, exists(*keys : String) exists, expire(key, ttl : Int) expire, flushdb flushdb, get(key : String) get, hget(key : String, field : String) hget, hgetall(key : String) hgetall, hmget(key : String, *fields : String) hmget, hmset(key : String, data : Hash(String, String)) hmset, hset(key : String, field : String, value : String) hset, incr(key : String) incr, incrby(key : String, amount : Int | String) incrby, info info, keys(pattern = "*") keys, 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, starting : String, ending : String) lrange, lrem(key : String, count : Int, value : String) lrem, mget(keys : Enumerable(String)) mget, mset(data : Hash(String, String)) mset, publish(channel : String, message : String) publish, rpop(key : String) rpop, rpoplpush(source : String, destination : String) rpoplpush, rpush(key, *values : String) 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, members : Enumerable(String))
srem(key : String, *values : String) srem, type(key : String) type, 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, zadd(key : String, score : String | Float, value : String)
zadd(key : String, values : Enumerable) zadd, zcard(key : String) zcard, 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
Constructor Detail
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.
Instance Method Detail
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
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
Execute the given command and return the result from the server. Commands must be an Enumerable
.
run({"set", "foo", "bar"})