Oracle NoSQL Database is well-suited for you if your data formats are not consistent, if you have limited hardware resources, if you higher data throughput (whether the database is on the cloud or running locally), and if you don't need a declarative query language to maintain a standardized schema of your data. If you need reduced data redundancy and require ACID compliance, you are better off finding an SQL database solution.
Perfect solution for caching needs. If you have a bottleneck due to frequent data access to your database, then Redis can really help you by diverting those traffic away from your database. Its key/value pair structure also makes data lookup very efficient, providing excellent performance.
Data-model flexibility. Unlike RDBMS solutions, Oracle NoSQL does not restrict you to a predefined set of data types.
Ability to Handle an Increased Amount of Traffic. As Oracle NoSQL can process queries much quicker than Oracle Database, Oracle NoSQL is able to respond to a lot more queries in the same amount of time.
Data-model simplicity. In SQL-oriented databases, there is a learning curve in learning the relationship between databases, tables, rows, and keys. On the other hand, Oracle NoSQL's key-value based storage is much easier to get the hang of.
Easy for developers to understand. Unlike Riak, which I've used in the past, it's fast without having to worry about eventual consistency.
Reliable. With a proper multi-node configuration, it can handle failover instantly.
Configurable. We primarily still use Memcache for caching but one of the teams uses Redis for both long-term storage and temporary expiry keys without taking on another external dependency.
Fast. We process tens of thousands of RPS and it doesn't skip a beat.
Fewer analytical functions to choose from. When compared to Oracle Database, there is significant difference in the amount of built-in analytical functions.
Eventual data consistency. It is not guaranteed that a write or delete query will be immediately visible for subsequent queries.
Data redundancy. As there are no mechanisms that insure data integrity, users are more likely to have redundant data across their documents.
Redis is super fast but it comes with a cost. Whole dataset resides in RAM. So it can be costly as primary memory is more costly, then secondary ones.
Persistence issues: To achieve it, Redis uses a memory dump to create a persistence snapshot, that's cool. But it requires some Linux Kernel tweaking to avoid performance degradation while the Redis server process is forking. This further causes latency.
Master-slave structure side effect: Master-slave architecture comes with its own side effects. Please note that there will be only one master with multiple slaves for replication. All writing goes to the master, which creates more load on the master node. So, when the master goes down, the whole architecture does.
We will definitely continue using Redis because: 1. It is free and open source. 2. We already use it in so many applications, it will be hard for us to let go. 3. There isn't another competitive product that we know of that gives a better performance. 4. We never had any major issues with Redis, so no point turning our backs.
It is quite simple to set up for the purpose of managing user sessions in the backend. It can be easily integrated with other products or technologies, such as Spring in Java. If you need to actually display the data stored in Redis in your application this is a bit difficult to understand initially but is possible.
The support team has always been excellent in handling our mostly questions, rarely problems. They are responsive, find the solution and get us moving forward again. I have never had to escalate a case with them. They have always solved our problems in a very timely manner. I highly commend the support team.
UI isn't that great compared to the other competitors. The management of our memcached cluster was becoming pretty complicated as the application grew in size. Redis is a much better option compared to memcached. Redis is bit unreliable compared to the alternative RabbitMQ especially when it needs to be integrated with Celery.
We pay less for computing resources, as Oracle NoSQL databases respond quicker than our previous SQL databases.
Our database administrators and software developers do not need to worry about "data massaging" and can focus on perfecting application logic.
Oracle NoSQL has built-in integration to other Oracle products, so we didn't not need to spend money on building custom integrators or higher additional developers.
Existing tools like Redisson that were built over Redis reduced dev time in solving challenging problems, which had a positive impact on ROI.
We initially misused Redis for persistent storage which had a negative impact on ROI because we were paying a lot for inactive users.
The increased performance we achieved using Redis in areas like locking helped us improve the performance of our system reducing the likelihood of system timeouts.