centrifugal / centrifuge

Real-time messaging library for Go. The simplest way to add feature-rich and scalable WebSocket support to your application. The core of Centrifugo server.

Home Page:https://pkg.go.dev/github.com/centrifugal/centrifuge

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

KeyDB connect

flymedllva opened this issue · comments

Hi!

Trying to change host from Redis to KeyDB, I get the following errors

 {"level":"error","ts":"2022-10-28T10:15:18.103Z","message":"error dialing to Redis","error":"dial tcp 10.100.12.40:6379: i/o timeout","addr":"domain.com:6379"}                 │
 {"level":"error","ts":"2022-10-28T10:15:18.103Z","message":"error flushing publish pipeline","error":"dial tcp 10.100.12.40:6379: i/o timeout"}                                                              │
 {"level":"error","ts":"2022-10-28T10:15:18.103Z","message":"error publishing node control command","error":"dial tcp 10.100.12.40:6379: i/o timeout"}                                                        │
 {"level":"fatal","ts":"2022-10-28T10:15:18.103Z","message":"node.Run: dial tcp 10.100.12.40:6379: i/o timeout"}

However, redis-cli, ui for redis, https://github.com/go-redis/redis successfully connect to KeyDB

Do you have any idea why the Centrifuge might not work?

Hello @flymedllva,

I just ran the example we have with locally running KeyDB 6.3.0 - and it works without issues, could you try the same?

Also, there is a branch in Centrifuge where I tried to run tests in CI with KeyDB - and they passed.

Thank you, there are indeed problems in our infastructure.

In general, shouldn't there be any problems when using KeyDB? I see in the documentation it says that the support is experimental. Do you run tests on KeyDB every release?

Do you run tests on KeyDB every release?

Not yet, tests for KeyDB v6.3.1 not even in master here - this requires some refactoring in tests because currently things are a bit messy.

In general, all things written here - https://centrifugal.dev/docs/server/engines#keydb-engine - equally applied to Centrifuge lib, while KeyDB will be fully backwards compatible with Redis the library will work with it.