Git Product home page Git Product logo

Comments (2)

nicolasff avatar nicolasff commented on June 30, 2024

Hello,

Webdis does not support any of the client-based logic around hash slots like redirects and migrations. With Redis Cluster, the amount of processing that is moved from Redis to the client makes the client so complex that very few client libraries seem to implement all the logic defined in the "Cluster spec" document.

Webdis supports one Redis host and port, and does not "understand" the commands you send but simply translates the HTTP requests it receives into the Redis protocol and sends that. When a response is received, it similarly translates it back to a format of your choice (like JSON or MessagePack), but does not interpret the response like what would be needed to follow a MOVED response from Redis Cluster, for example.

One way to use Webdis with multiple Redis nodes is indeed to have one Webdis instance per Redis node, and either use a simple sharding model or actually handle the cluster-specific responses yourself. Doing the sharding yourself seems much easier than implementing the Redis Cluster logic.

In addition to the simplicity of a pool that uses something like consistent hashing, I'm also concerned about the reliability of Redis Cluster and the comments made by its primary author in response to simulations that demonstrated the possibility of data loss multiple times. With these deficiencies being fundamental properties of the protocol, I do not want to encourage Webdis users to deploy such a deeply unsafe system that would also need Webdis to implement a complex and half-baked protocol that shifts a major amount of work onto the client.

from webdis.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.