redisoid

Redis client with auto-reconnection and pool
0.3 Latest release released
kostya/redisoid
17 1
Kostya M

redisoid

Redis client for Crystal with auto-reconnection and pool (wrapper for stefanwille/crystal-redis, kostya/redis-reconnect, ysbaddaden/pool). Ready to use in production.

Installation

Add this to your application's shard.yml:

dependencies:
  redisoid:
    github: kostya/redisoid

Usage

require "redisoid"

client = Redisoid.new(host: "localhost", port: 6379, pool: 50)
client.set("bla", "abc")
p client.get("bla")

Use it in high concurency code

require "redisoid"

client = Redisoid.new(host: "localhost", port: 6379, pool: 250)

client.del("queue")

count = 0

100.times do
  spawn do
    loop do
      client.lpush("queue", "abc")
      sleep 0.01
    end
  end

  spawn do
    loop do
      if res = client.lpop("queue")
        count += 1 if res.size == 3
      else
        sleep 0.01
      end
    end
  end
end

sleep 5.0

p count
p client.pool_size
p client.pool_pending

client.del("queue")

42259
200
204
redisoid:
  github: kostya/redisoid
  version: ~> 0.3
License MIT
Crystal none

Authors

  • Konstantin Makarchev kostya27@gmail.com

Dependencies 2

  • pool
    {'github' => 'ysbaddaden/pool'}
  • redis-reconnect >= 0.3
    {'github' => 'kostya/redis-reconnect', 'version' => '>= 0.3'}

Development Dependencies 0

Dependents 0

Last synced .
search fire star recently