nextcloud / server

☁️ Nextcloud server, a safe home for all your data
https://nextcloud.com
GNU Affero General Public License v3.0
26.12k stars 3.94k forks source link

Support Redict instead of Redis #44443

Open captainepoch opened 3 months ago

captainepoch commented 3 months ago

How to use GitHub

Is your feature request related to a problem? Please describe. Redis has been relicensed to an issue that could cause problems in the future.

Describe the solution you'd like I propose to support redict instead of Redis as soon as the 7.3.0 release is available to everyone, after the forking process is completed. This will ensure that FOSS is always used into Nextcloud.

Describe alternatives you've considered No alternative besides Redict.

Additional context No additional context is needed.

solracsf commented 3 months ago

Just for the record:

image

captainepoch commented 3 months ago

I'm aware, but since this change was just out of the blue, I don't trust Redis anymore. Thus, suggesting this.

Nevertheless, thank you for putting it for the record, @solracsf :D

solracsf commented 3 months ago

Sure! If i read correctly, Redict is a fork of actual Redis (7.2.4) so, basically, it will comunicate the same way, using the same (actual) commands : GET, DEL, AUTH, KEYS... so, basically, anything, Nextcloud included, that actually communicates with Redis, will also be compatible with Redict, am I wrong?

Just like Dragonfly or KeyDB, for example. Nextcloud doesn't (offically) supports these, but they work with Nextcloud, because they use the same protocol and commands than Redis does.

\EDIT/ confirmed here: https://redict.io/docs/redis-compat/

captainepoch commented 3 months ago

I was about to reply that you're right, it's a fork of the 7.2.4 version. However, as stated at the announcement, it will diverge from the Redis codebase, and also from other Redis' forks. Also, and I quote:

No effort will be made to remain compatible with future versions of Redis® SAL.

Redict announcement, section "Future changes".

Also, it's worth it to note the relation with other forks.

J0WI commented 3 months ago

I'd rather support more caching backends than just removing Redis in favour of another.

Some more implementations:

AlexStocks commented 3 months ago

PikiwiDB(Pika): Forever Partners of Redis

Since March 20th, in response to Redis's announcement to adopt SSPL and RSAL for protecting its commercial interests, a series of projects such as KeyDB, Dragonfly, Valkey, Redict, and Garnet have voiced their intentions to become alternatives to Redis.

Since 2015, as one of the first projects to open-source on Redis protocol built on RocksDB, PikiwiDB (formerly known as Pika) has explicitly stated its intention not to replace Redis but to serve as a vital complement. It actively seeks to establish a good cooperative relationship with Redis. Additionally, PikiwiDB remains open to collaboration with other projects claiming to be the "best alternatives to Redis."

PikiwiDB(Pika) Product Matrix

Solutions to Redis Challenges

When Redis's memory usage exceeds a specific threshold (such as 16GiB), issues such as limited memory capacity, single-threaded bottlenecks causing blocking, long startup and recovery times, and high memory hardware costs may arise. PikiwiDB(Pika) continues to focus on the "disk-enhanced Redis" direction, enhancing product performance around the following technical points:

Community

The PikiwiDB(Pika) open-source community invites your participation and support. For any questions, feedback, or suggestions, please contact us through the following channels:

captainepoch commented 2 months ago

I'd rather support more caching backends than just removing Redis in favour of another.

Some more implementations:

* https://aerospike.com/

* https://docs.keydb.dev/

* https://dragonflydb.io/

* https://kvrocks.apache.org/

* https://microsoft.github.io/garnet/

* https://redict.io/

* https://valkey.io/

I also see this as a good idea, to be honest, so users can have more options!