Skip to content

Latest commit

 

History

18 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

THIS PROJECT DEPRECATED, RECONNECTION LOGIC AND POOLING NOW IMPLEMENTED IN stefanwille/crystal-redis

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

About

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

Resources

Stars

18 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages