15

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:

  • price
  • performance
  • ease of use
  • anything
Kris van der Mast
  • 15,905
  • 7
  • 35
  • 57
MaxWillmo
  • 2,100
  • 2
  • 19
  • 33

3 Answers3

38

You actually need to evaluate 3 possible options:

  • Windows Azure Shared Caching (previously Windows Azure AppFabric Caching)
  • Windows Azure Caching (Preview)
    • Uses the free memory of your roles (so you don't need to pay anything extra to use this)
    • No quotas (except for the memory available on your instances), no throttling, ...
    • Dedicated to your cloud service
    • Improved performance over Shared Caching (see end of this page)
    • Support for large caches over 100 GB
    • Support for memcache binary and text protocols (so existing applications that are based on memcached can leverage the caching preview)
    • Visual Studio support
  • Memcached
    • Can be used in Windows Azure
    • Uses memory of your roles, just like the caching preview
    • Free, just like the caching preview
    • No Visual Studio support
    • Dedicated, no quotas, support for large caches, ...

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.

Sandrino Di Mattia
  • 24,394
  • 2
  • 55
  • 64
  • Brilliant, clear and exactly what I needed. Do you have a link to which I can keep up to date with Windows Azure Caching Preview? – MaxWillmo Sep 13 '12 at 13:30
  • Also, does Windows Azure Caching automatically remove unused cache same as Memcached? – MaxWillmo Sep 13 '12 at 13:57
  • 1
    I don't know how Memcached exactly handles unused cache, but Azure Caching allows you to work with Time-out-based invalidation and notification-based invalidation: http://msdn.microsoft.com/en-us/library/windowsazure/hh914130.aspx. And I suggest you follow the Windows Azure blog to keep up to date with the Caching preview and all other Azure featrues: http://blogs.msdn.com/b/windowsazure/ – Sandrino Di Mattia Sep 13 '12 at 14:21
1

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.

Jon
  • 101
  • 1
  • 4
1

Note that Windows Azure Caching has been retired.

The replacement Azure Cache for Redis, is Redis compatible, so Memcached vs. Redis? might help you.

Fowl
  • 4,552
  • 2
  • 22
  • 39