Here are the pros and cons of using redis.
Pros
Fast
transaction (because single threaded)
Cons
No secondary key support
No reindexing support
No reliable change streams unlike mongodb, dynamodb
Cost (since all the data has to be kept in memory, we need more and more ram)
No reliable persistence. (PS People say that rdb snapshot serves as a back up store for redis but help me understand what happens when we have 12 gb ram and we put 13 gb of data. redis will only have 12 gb of data, but if using the rdb snapshot if I bring up another redis with 20gb ram, will it have all my data or 1 gb is gone forever. How reliable is this mechanism??)
No auto balancing of keys. (application level sharding is a must)
Considering the above pros and cons I see only few use cases where we can have redis as Only and Primary data store. Like
- Session store.
Am I missing anything? What additional capabilities does redis miss than other databases like mongodb, mysql (Here I am only talking about being production ready and reliability not starting nosql vs sql debate :) ).