We have multiple applications (approx. 500) hosted on different servers (IIS). For caching purposes, .Net Enterprise Library (in-memory) is being used currently. But this is an overhead for the application servers when the cache grows. Therefore, we have a plan to keep a distributed cache using Redis.
Requirement: Multiple applications would write/read the data into/from redis cache. However, we would like to keep each application's data separate. This way a noisy application wouldn't have an impact on the other applications. Also it would increase the data search performance when it is segregated.
Redis enables different solutions(modes) like Standalone, Sentinel and Cluster.
I believe 'Standalone' mode would work like this. In a Redis Server, there will be a redis instance where a database can be created. With this mode, multiple application's data would be stored in the same database. This may not enable us to store the data at the application level. Though we can use the namespaces (prefix to key) to identify the application specific data, the growing number of applications and the data would have an impact on the key search from the application. Also since it is single-threaded, it is expected that there will be an impact on the operations during the peak hours.
Considering the above requirements including scalability and high availability, please suggest the best mode to go with.
P.S, We'll install the redis in a dedicated server separately from the application server.