I am torn between using Memcache and using Windows Azure Caching. I have no experience in either of them so I would love for someone to come up with some deciding factors:
Redis uses a single core and shows better performance than Memcached in storing small datasets when measured in terms of cores. Memcached implements a multi-threaded architecture by utilizing multiple cores. Therefore, for storing larger datasets, Memcached can perform better than Redis.
Memcached Cloud provides various data persistence options as well as remote backups for disaster recovery purposes. After selecting Memcached Cloud in the Azure Store, it takes seconds to create your Memcached bucket and all operations are fully-automated from that moment on.
Unlike databases that store data on disk or SSDs, Memcached keeps its data in memory. By eliminating the need to access disks, in-memory key-value stores such as Memcached avoid seek time delays and can access data in microseconds. Memcached is also distributed, meaning that it is easy to scale out by adding new nodes.
Azure Cache for Redis is a fully managed, in-memory cache that enables high-performance and scalable architectures. Use it to create cloud or hybrid deployments that handle millions of requests per second at sub-millisecond latency—all with the configuration, security, and availability benefits of a managed service.
You actually need to evaluate 3 possible options:
I don't have any benchmarks, but since both Windows Azure Caching (Preview) and Memcached are dedicated solutions using the memory on your roles and support the memcached protocol, you might simply go for the Windows Azure Caching (Preview) for the Visual Studio and .NET support. And once it leaves preview you'll be able to get support for it as well.
From what I can tell, Azure cache isn't compatible with memcache:
root@**:~# memccapable -h **.cache.windows.net -p 22233 -t 1 -b
binary noop Errno: 110 Connection timed out [FAIL]
binary quit Errno: 110 Connection timed out [FAIL]
binary quitq [FAIL]
binary set Errno: 104 Connection reset by peer [FAIL]
binary setq Errno: 104 Connection reset by peer [FAIL]
binary flush Errno: 104 Connection reset by peer [FAIL]
binary flushq Errno: 104 Connection reset by peer [FAIL]
I gave up on trying to make it work. Installing memcached on an Linux Azure VM works great < 1ms latency.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With