Redis is often used as a cache, although it offers a lot more than just in-memory caching (it supports persistence, for instance).
What are the reasons why one would choose to use Redis rather than the .NET MemoryCache
? Persistence and data types (other than key-value pairs) come to mind, but I'm sure there must be other reasons for using an extra architectural layer (i.e. Redis).
MemoryCache is embedded in the process , hence can only be used as a plain key-value store from that process.
An seperate server counterpart of MemoryCache would be memcached
.
Whereas redis is a data structure server which can be hosted on other servers can interacted with over the network just like memcached , but redis supports a long list of complex data types and operations on them, to provide logical and intelligent caching.