Hacker News new | ask | show | jobs
by Brainix 3870 days ago
Feedback on the documentation:

It's not immediately obvious to me how Geode is different from Redis. When would I want to use Geode over Redis, and vice versa?

4 comments

Redis and in-memory data grids are pretty different animals. I would characterize IMDG's like Geode to be concurrent write intensive, and have flexible data models. It also scales out better than Redis in a more automated fashion.

Redis is a great read-intensive cache. It also has a powerful data model, but you have to use their data models. Example: If you want to run calculations on lists or sets, they have powerful operations you can call.

IMDG's such as Geode were built with the rise of automated trading in the finance industry.

Geode also understands Redis protocol, so you can point your Redis clients to Geode. This is interesting because the problem with Redis data structures is that they cannot scale beyond the memory available to the Redis server. The further limitation that Redis server is single threaded and cannot really be scaled up, only makes the problem worse.

With Geode your Redis data structures can scale horizontally.

This

> Data is persisted in write-optimized disk storage. Consistency checking is configurable between highest performance caching and ACID transactions.

seems pretty different to redis. I don't think Redis does ACID transactions.

Redis is single-threaded, so everything it does on a per-node basis is implicitly atomic. You can also force the single thread to handle a block of commands from a single socket at once by using MULTI (otherwise commands can be interleaved with other commands from other sockets).
It's not guaranteed to be atomic in failure conditions. Also, the biggest difference between Redis and Geode would be the "distributed" part, which involves maintaining these guarantees across a cluster of machines (which Redis demonstratingly doesn't do).
That's pretty hand-wavey. All databases can be made to lose all guarantees under failure conditions.
Here's an old post showing how to create a custom indexing schemes in Geode (QuadTreeIndex for spatial data): http://blogs.vmware.com/vfabric/2012/12/gemfire-patternspart...