Upload
stuart-mckenzie
View
239
Download
2
Embed Size (px)
Citation preview
How to Build High Performance Apps Using Microsoft Azure Redis CachePranav Rastogi | @rustd M350
Introduction
Professional ASP.NET 4.5 in C# and VBAzure Redis CacheASP.NET
AgendaWhy CacheRedisAzure Redis CacheFAQs
Typical Caching Pattern
Web Tier
Data
Storage
SQL
Data
Web Tier
Cache
Data
Data
Storage
SQL
- High Throughput- Low Consistent Latency 50% : <3ms 99% : <10ms
AzureRegion
Caching
Redis
What is Redis?“Redis is an open source, BSD licensed, advanced key-value store. It is often referred to as a data structure server since keys can contain strings, hashes, lists, sets and sorted sets. ” - redis.io
“Redis has many different use cases. The simplest way to describe it is something between a traditional database and doing computations in memory. Redis exposes data structures that are accessed in memory via a set of commands. ” – Salvatore
Rich Ecosystem• Proven at scale: Twitter, GitHub, Weibo,
Pinterest, Snapchat, Craigstlist, StackOverflow, Flickr …
• Knowledgeable community• Rich set of clients, higher level libraries• Easy to hire for
Redis features• Low latency, high throughput key-value
store Per Key expiry, choice of eviction policies.
• Atomic operations on data types Strings, hashes, lists, sets, sorted sets, bitmaps and hyperloglogs.
• Transactions• Publisher-Subscriber pattern• LUA scripting• Pipelining• Client libraries in multiple languages
Redis features…• Databases• Highly customizable replication support• Supports hierarchy of ‘Slaves’ per ‘Master’
• Persistence support• Point in time, Log every write, or both
• Clustering
Redis
Azure Redis Cache Service
Redis Cache hosted and managed by Microsoft Dedicated virtual machine per cache Sizes: 256 MB, 1 GB, 2.8 GB, 6 GB, 13 GB, 26 GB, 53 GB Available in all Azure Regions
China and Government cloud coming SSL Basic SKU : Single cache node Standard SKU: Cache node + one replica
Availability SLA of 99.9%
Azure Redis Cache
• RBAC• Provisioning Redis Cache•Monitoring/ Diagnostics• Alerts• ASP.NET Session & Output Cache Providers•Memcache protocol shim
Azure Redis Cache…
Azure Redis Cache
FAQs
We recommend all new developments use Azure Redis Cache.
https://msdn.microsoft.com/en-us/library/azure/dn766201.aspx
Which Azure Cache offering is right for me?
Cache size High Availability - Standard Network bandwidth Cache and client should be in the same
region
How to pick the Cache SKU
50% : <3ms99% : <10ms
• Pings sent via redis-benchmark.exe•Client and Cache in same region• Lightly loaded Cache
Azure Redis Cache Latency
Cache Name
Cache Size
GET/sec (Simple GET calls of 1 KB
values)
Bandwidth (Mbits/sec)
Cores (Redis)
C0 250 MB 610 5 0.25*C1 1 GB 12,200 100 1*C2 2.5 GB 24,300 200 1C3 6 GB 48,875 400 1C4 13 GB 61,350 500 1C5 26 GB 112,275 1000 1C6 53 GB 153,219 1000+ 1
Azure Redis Cache Performance
Cache and client in the same region. Network bandwidth limits on client or
server. Redis commands usage. Measure and iterate.
High Latency
Scaling Azure Redis Cache
Scale Up– aka Vertical Scaling Increased Cache Size (Memory) Increased Bandwidth Single CPU
Scale Out– aka Horizontal Scaling Increased Cache Size, Bandwidth, CPU Improved Availability Client responsible for sharding
(Static/Dynamic) Sharding on Server (Clustering) in future
roadmap
Monitor in the portal. Set eviction policies. Set Alerts. Monitor using Redis tools eg. redis-cli.exe
High Fragmentation
Benchmarking using redis-benchmark.exe
Monitoring Azure Redis Cache
Use latest version Single instance of ConnectionMultiplexer AbortOnConnectFail=false ConnectRetry ConnectionTimeout Large values/ Long running commands
Use multiple Connection Multiplexers for different connection settings.
Client configuration – StackExchange.Redis
Cache Aside pattern Retry logic Local cache
Cache patterns
Multi-Region Scenario
Web Tier
Cache
StorageAzure Region 1
Web Tier
Cache
Azure Region 2
Cache Sync
Multi-Region Scenario
Web Tier
Cache
Azure Region 1
Web Tier
Cache
Azure Region 2
SQL SQL
High Availability
Availability Set
Master
Master
Slave
Slave
Azure Redis
Endpoint [Shim]
High Availability
Availability Set
Slave
Master
Slave
Master
Azure Redis
Endpoint [Shim]
High Availability
Availability Set
Slave
Master
Slave
Master
Azure Redis
Endpoint [Shim]
Roadmap
Scale Up/ Down Configuring Redis – key space notification Persistence Azure Regions
China/ Government Cloud support
Clustering Virtual Network Geo Replication
Roadmap
Pricing Documentation Cache User Voice• Microsoft patterns & practices on Cache Retry logic Investigating Timeout Exceptions in
StackExchange.Redis Memcache protocol shim
Resources
Resources
TechNet & MSDN FlashSubscribe to our fortnightly newsletter
http://aka.ms/technetnz http://aka.ms/msdnnz
http://aka.ms/ch9nz
Microsoft Virtual AcademyFree Online Learning
http://aka.ms/mva
Sessions on Demand
Complete your session evaluation now and be in to win!
© 2015 Microsoft Corporation. All rights reserved.Microsoft, Windows and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or
other countries.MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.