redisoid

Version, currently 0.34 versions

github.com/kostya/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.

18 stars
0 dependents
License: MIT

Installation

# Add this to your shard.yml
dependencies:
  redisoid:
    github: kostya/redisoid
    version: ~> 0.3

Then run:

shards install

shard.yml

Crystal
no constraint declared
License
MIT
Author
Konstantin Makarchev kostya27@gmail.com

Dependencies

Runtime Dependencies

README

# 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`:

```yaml
dependencies:
  redisoid:
    github: kostya/redisoid
```


## Usage


```crystal
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

```crystal
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
```