I have heard that redis can cause out of memory errors.
I recommend NCache, a distributed caching solution. They came up with a detailed comparison of their performance against Redis and i am really impressed with that. I found NCache as one of the best Redis Alternative for .NET apps and Window users.
Reference Article: Redis Alternative for .NET Apps - NCache
YugaByte (github.com/YugaByte/yugabyte-db) is an open-source, high performance DB that supports the Redis API. Maybe of interest to you:
Disclaimer: I am one of the founders of the project.
If you're looking for Pub-Sub, Kafka might be more scalable, persistent, and reliable at the cost of being maybe slightly slower and more difficult to setup.
Redis supports ACID transactions via Lua scripts, so it blocks across all redis instances for the duration of the Lua script. Laravel uses this to ensure queue jobs are worked on by exactly one queue worker.
Redis should not be your "source of truth" database unless you really understand what you're doing and can validate it meets your use-case. It's great for key-value store, cache, pub-sub, and queues.
Memcache is a good alternative for key-value store, sessions, and catching, although I don't know how it handles ram limitations differently than redis.
Beanstalkd is a good queues database, better than redis for this purpose (although the makers of redis are coming out with an add-on module built for queues: github.com/antirez/disque/issues/190 )
j
stuff ;)
redis needs you to do the memory handling. that's true.
the question is what do you use redis for :)
because if you just need a cache ... memcache ftw ... if you need a key-value store that uses transactions : https://en.wikipedia.org/wiki/Key-value\_database
hf :) if you want it in runtime for go: https://github.com/boltdb/bolt
and so on :) specify what you want to do with it :) not just the name of the database :) so we can give you an accurate answer.