Redis on Azure Performance Benchmark – ScaleGrid for Redis™ vs. Azure Cache
Tags: azure, database, redis, cloud
Published: 2020-11-27 18:57:18

---
title: Redis on Azure Performance Benchmark – ScaleGrid for Redis™ vs. Azure Cache
published: true
description: In this performance benchmark, we put ScaleGrid for Redis™ up against Azure Cache for Redis. See which provider gives you the most value for your money!
tags: Azure, Database, Redis, Cloud
cover_image: https://scalegrid.io/blog/wp-content/uploads/2020/11/ScaleGrid-Redis-Azure-Cache-Benchmark-ScaleGrid-Blog.jpg
---
<link rel="canonical" href="https://scalegrid.io/blog/redis-azure-performance-benchmark/" />
<p style="text-align: justify;"><a style="color: #2da964;" target="_blank" href="https://redis.io/">Redis</a> is an advanced key-value store. In fact, it is the <a style="color: #2da964;" href="https://db-engines.com/en/ranking" target="_blank">number one key value store</a> and eighth most popular database in the world. It has high throughput and runs from memory, but also has the ability to persist data on disk. Redis is a great caching solution for highly demanding applications, and there are many solutions available to help you deploy and manage Redis in the cloud. In this post, we are going to compare <a style="color: #2da964;" target="_blank" href="https://scalegrid.io/blog/redis-azure-performance-benchmark/">ScaleGrid for Redis™</a> vs. Azure Cache for Redis performance and management features to help you pick the best managed solution for your Redis deployment.<p>

<p style="text-align: justify;">ScaleGrid is a DBaaS provider that provides fully managed hosting not only for <a style="color: #2da964;" href="https://scalegrid.io/redis.html" target="_blank">Redis™</a>, but also for <a style="color: #2da964;" href="https://scalegrid.io/mongodb.html" target="_blank">MongoDB® database</a>, <a style="color: #2da964;" href="https://scalegrid.io/mysql.html" target="_blank">MySQL</a>, and <a style="color: #2da964;" href="https://scalegrid.io/postgresql.html" target="_blank">PostgreSQL</a>. The <a style="color: #2da964;" href="https://help.scalegrid.io/docs/getting-started-bring-your-own-cloud-plans" target="_blank">Bring Your Own Cloud</a> (BYOC) plan hosts the database server in your own AWS, Azure or GCP account.</p>

<p style="text-align: justify;">Azure provides a hosted service for Redis called <a style="color: #2da964;" href="https://azure.microsoft.com/en-us/services/cache/" target="_blank">Azure Cache for Redis</a>.</p>

<h2 style="padding-top: 15px;">ScaleGrid for Redis™ vs. Azure Cache for Redis Performance Benchmark</h2>
<p style="text-align: justify;">In this benchmark, we measure the performance in throughput and latency. Throughput is measured in operations per second (ops/sec), and latency in microseconds. Check out our <a style="color: #2da964;" href="#3">Benchmark Configurations</a> section later on in this post for information on how this performance benchmark was configured.</p>
<h2 style="padding-top: 15px;"><a id="1"></a>Throughput Performance</h2>
<a href="https://scalegrid.io/blog/redis-azure-performance-benchmark/"><img src="https://scalegrid.io/blog/wp-content/uploads/2020/11/ScaleGrid-Redis-Azure-Cache-Throughput.png" alt="ScaleGrid Redis Azure Cache Throughput Graph" width="100%" height="auto" class="alignnone size-full wp-image-6037" /></a>

<table width="100%">
<tbody>
<tr>
<th style="width: 10%;"><b>Connections</b></th>
<th style="width: 18%; padding: 10px; border: 1px solid #eee; background: #2da964; color: #fff;"><b>ScaleGrid for Redis™
</b></th>
<th style="width: 18%; padding: 10px; border: 1px solid #eee; background: #273039; color: #fff;"><b>Azure Cache
C3 Std. 6GB</b></th>
<th style="width: 18%; padding: 10px; border: 1px solid #eee; background: #273039; color: #fff;"><b>Azure Cache
P1 6GB</b></th>
<th style="width: 18%; padding: 10px; border: 1px solid #eee; background: #273039; color: #fff;"><b>Azure Cache
P2 13GB</b></th>
<th style="width: 18%; padding: 10px; border: 1px solid #eee; background: #def5fe;"><b>ScaleGrid Improvement</b></th>
</tr>
<tr>
<td style="padding: 10px; border: 1px solid #eee;">100</td>
<td style="padding: 10px; border: 1px solid #eee;">134,667</td>
<td style="padding: 10px; border: 1px solid #eee;">16,461</td>
<td style="padding: 10px; border: 1px solid #eee;">19,881</td>
<td style="padding: 10px; border: 1px solid #eee;">38,459</td>
<td style="padding: 10px; border: 1px solid #eee;">439%</td>
</tr>
<tr>
<td style="padding: 10px; border: 1px solid #eee;">200</td>
<td style="padding: 10px; border: 1px solid #eee;">147,551</td>
<td style="padding: 10px; border: 1px solid #eee;">16,246</td>
<td style="padding: 10px; border: 1px solid #eee;">25,361</td>
<td style="padding: 10px; border: 1px solid #eee;">35,459</td>
<td style="padding: 10px; border: 1px solid #eee;">474%</td>
</tr>
<tr>
<td style="padding: 10px; border: 1px solid #eee;">300</td>
<td style="padding: 10px; border: 1px solid #eee;">152,341</td>
<td style="padding: 10px; border: 1px solid #eee;">15,872</td>
<td style="padding: 10px; border: 1px solid #eee;">25,346</td>
<td style="padding: 10px; border: 1px solid #eee;">35,045</td>
<td style="padding: 10px; border: 1px solid #eee;">499%</td>
</tr>
<tr>
<td style="padding: 10px; border: 1px solid #eee;">400</td>
<td style="padding: 10px; border: 1px solid #eee;">152,624</td>
<td style="padding: 10px; border: 1px solid #eee;">15,235</td>
<td style="padding: 10px; border: 1px solid #eee;">19,043</td>
<td style="padding: 10px; border: 1px solid #eee;">37,301</td>
<td style="padding: 10px; border: 1px solid #eee;">539%</td>
</tr>
</tbody>
</table>

<table style="margin-top: 15px;" width="100%">
<tbody>
<tr>
<td style="padding: 15px; background: #def5fe;"><span style="font-size: 18px;">As we can see in the above graph, <b>ScaleGrid for Redis™ achieves approximately 5x higher throughput</b> compared to Azure Cache for Redis when benchmarked with 100-400 connections. For example, while the Azure Cache for Redis P2 Premium 13GB plan manages around 36,000 ops/sec during all connection scenarios, ScaleGrid for Redis™ has over 130 000 ops/sec for all the scenarios.</span></td>
</tr>
</tbody>
</table>

<h2 style="padding-top: 15px;"><a id="2"></a>Latency Performance</h2>

<a href="https://scalegrid.io/blog/redis-azure-performance-benchmark/"><img src="https://scalegrid.io/blog/wp-content/uploads/2020/11/ScaleGrid-Redis-Azure-Cache-Latency.png" alt="ScaleGrid Redis Azure Cache Latency Performance Graph" width="100%" height="auto" class="alignnone size-full wp-image-6039" /></a>

<table width="100%">
<tbody>
<tr>
<th style="width: 10%;"><b>Connections</b></th>
<th style="width: 18%; padding: 10px; border: 1px solid #eee; background: #2da964; color: #fff;"><b>ScaleGrid for Redis™
</b></th>
<th style="width: 18%; padding: 10px; border: 1px solid #eee; background: #273039; color: #fff;"><b>Azure Cache
C3 Std. 6GB</b></th>
<th style="width: 18%; padding: 10px; border: 1px solid #eee; background: #273039; color: #fff;"><b>Azure Cache
P1 6GB</b></th>
<th style="width: 18%; padding: 10px; border: 1px solid #eee; background: #273039; color: #fff;"><b>Azure Cache
P2 13GB</b></th>
<th style="width: 18%; padding: 10px; border: 1px solid #eee; background: #def5fe;"><b>ScaleGrid Improvement</b></th>
</tr>
<tr>
<td style="padding: 10px; border: 1px solid #eee;">100</td>
<td style="padding: 10px; border: 1px solid #eee;">744</td>
<td style="padding: 10px; border: 1px solid #eee;">6,809</td>
<td style="padding: 10px; border: 1px solid #eee;">5,896</td>
<td style="padding: 10px; border: 1px solid #eee;">2,497</td>
<td style="padding: 10px; border: 1px solid #eee;">-85%</td>
</tr>
<tr>
<td style="padding: 10px; border: 1px solid #eee;">200</td>
<td style="padding: 10px; border: 1px solid #eee;">1,353</td>
<td style="padding: 10px; border: 1px solid #eee;">10,950</td>
<td style="padding: 10px; border: 1px solid #eee;">8,447</td>
<td style="padding: 10px; border: 1px solid #eee;">5,565</td>
<td style="padding: 10px; border: 1px solid #eee;">-84%</td>
</tr>
<tr>
<td style="padding: 10px; border: 1px solid #eee;">300</td>
<td style="padding: 10px; border: 1px solid #eee;">2,044</td>
<td style="padding: 10px; border: 1px solid #eee;">17,807</td>
<td style="padding: 10px; border: 1px solid #eee;">13,045</td>
<td style="padding: 10px; border: 1px solid #eee;">8,539</td>
<td style="padding: 10px; border: 1px solid #eee;">-84%</td>
</tr>
<tr>
<td style="padding: 10px; border: 1px solid #eee;">400</td>
<td style="padding: 10px; border: 1px solid #eee;">2,609</td>
<td style="padding: 10px; border: 1px solid #eee;">25,126</td>
<td style="padding: 10px; border: 1px solid #eee;">16,999</td>
<td style="padding: 10px; border: 1px solid #eee;">10,716</td>
<td style="padding: 10px; border: 1px solid #eee;">-85%</td>
</tr>
</tbody>
</table>

<table style="margin-top: 15px;" width="100%">
<tbody>
<tr>
<td style="padding: 15px; background: #def5fe;"><span style="font-size: 18px;">While Azure Cache for Redis latency increases rapidly as the number of connections grow, ScaleGrid for Redis™ steadily achieves low latency across all connection counts. On average, <b>ScaleGrid for Redis™ has 85% lower latency</b> than Azure Cache for Redis. This is especially noticeable when comparing Azure Cache for Redis (C3 Standard 6GB) to ScaleGrid for Redis™, where the difference is up to -99%.</span></td>
</tr>
</tbody>
</table>

<h3 style="padding-top: 15px;">Benchmark Summary</h3>
<p style="text-align: justify;">As you can tell from the above graphs, <a style="color: #2da964;" href="https://scalegrid.io/redis.html" target="_blank">ScaleGrid for Redis™</a> provides significantly higher throughput and lower latency. On average we can see approximately 5x the throughput and 85% lower latency compared to equivalent sizes on Azure Cache. The ScaleGrid for Redis™ <a style="color: #2da964;" href="https://scalegrid.io/pricing.html?db=REDIS&cloud=cloud_azure&replica=deployment_standalone&instance=Micro#section_pricing_byoc" target="_blank">BYOC plan</a> starts at $9 per month (720h + VM costs) and $18 per month (720h) for the <a style="color: #2da964;" href="https://scalegrid.io/pricing.html?db=REDIS&cloud=cloud_azure&replica=deployment_standalone&instance=Micro#section_pricing_dedicated" target="_blank">Dedicated hosting plan</a>. To learn more about how different Redis providers compare to ScaleGrid for Redis™, check out our <a style="color: #2da964;" href="https://scalegrid.io/redis/hosting-comparison.html" target="_blank">Redis service providers comparison chart</a> where you can learn more about ScaleGrid for Redis™.</p>
<h2 style="padding-top: 15px;"><a id="3"></a>Benchmark Configuration</h2>
<p style="text-align: justify;">Let’s take a look at the configurations we used in the performance benchmark:</p>
<table width="100%">
<tbody>
<tr>
<th style="width: 50%; padding: 10px; border: 1px solid #eee; background: #def5fe;"><b>Configuration</b></th>
<th style="width: 50%; padding: 10px; border: 1px solid #eee; background: #def5fe;"><b>Details</b></th>
</tr>
<tr>
<td style="padding: 8px 10px; border: 1px solid #eee;">Benchmark Tool</td>
<td style="padding: 8px 10px; border: 1px solid #eee;"><a style="color: #2da964;" href="https://github.com/RedisLabs/memtier_benchmark" target="_blank">Memtier Benchmark</a></td>
</tr>
<tr>
<td style="padding: 8px 10px; border: 1px solid #eee;">Azure Region for Redis</td>
<td style="padding: 8px 10px; border: 1px solid #eee;">East US</td>
</tr>
<tr>
<td style="padding: 8px 10px; border: 1px solid #eee;">Azure Region for Application</td>
<td style="padding: 8px 10px; border: 1px solid #eee;">East US</td>
</tr>
<tr>
<td style="padding: 8px 10px; border: 1px solid #eee;">Deployment Type</td>
<td style="padding: 8px 10px; border: 1px solid #eee;">Master-Slave</td>
</tr>
</tbody>
</table>

<p style="padding-top: 15px; text-align: justify;">We have benchmarked Redis™ performance for the following configurations.</p>

<table width="100%">
<tbody>
<tr>
<th style="width: 25%; padding: 10px; border: 1px solid #eee; background: #273039; color: #fff;"><b>Provider</b></th>
<th style="width: 25%; padding: 10px; border: 1px solid #eee; background: #273039; color: #fff;"><b>Plan Size</b></th>
<th style="width: 25%; padding: 10px; border: 1px solid #eee; background: #273039; color: #fff;"><b>RAM</b></th>
<th style="width: 25%; padding: 10px; border: 1px solid #eee; background: #273039; color: #fff;"><b>Monthly Cost</b></th>
</tr>
<tr>
<td style="padding: 10px; border: 1px solid #eee;">ScaleGrid for Redis™</td>
<td style="padding: 10px; border: 1px solid #eee;"><a style="color: #2da964;" href="https://scalegrid.io/pricing.html?db=REDIS&cloud=cloud_azure&replica=deployment_redis_2+1&instance=Large#section_pricing_dedicated" target="_blank">Dedicated Hosting Large on Azure</a></td>
<td style="padding: 10px; border: 1px solid #eee;">7GB memory</td>
<td style="padding: 10px; border: 1px solid #eee;">$607</td>
</tr>
<tr>
<td style="padding: 10px; border: 1px solid #eee;">Azure Cache for Redis</td>
<td style="padding: 10px; border: 1px solid #eee;">C3 Standard - Moderate network bandwidth</td>
<td style="padding: 10px; border: 1px solid #eee;">6GB memory</td>
<td style="padding: 10px; border: 1px solid #eee;">$328.50</td>
</tr>
<tr>
<td style="padding: 10px; border: 1px solid #eee;">Azure Cache for Redis</td>
<td style="padding: 10px; border: 1px solid #eee;">P1 Premium - Moderate network bandwidth</td>
<td style="padding: 10px; border: 1px solid #eee;">6GB memory</td>
<td style="padding: 10px; border: 1px solid #eee;">$404.42</td>
</tr>
<tr>
<td style="padding: 10px; border: 1px solid #eee;">Azure Cache for Redis</td>
<td style="padding: 10px; border: 1px solid #eee;">P2 Premium - High network bandwidth</td>
<td style="padding: 10px; border: 1px solid #eee;">13GB memory</td>
<td style="padding: 10px; border: 1px solid #eee;">$810.30</td>
</tr>
</tbody>
</table>

<p style="text-align: justify;">For each Redis™ server, we have benchmarked with 100, 200, 300 and 400 connections. Each connection sends 10,000 requests with 32 bytes object data size per request. We use non-SSL connections to connect Redis™ servers.</p>
<p style="text-align: justify;">Not only can ScaleGrid provide higher throughput and lower latency, it also brings many other features such as full admin access, scheduled backups and SSH access. You can find more information about <a style="color: #2da964;" href="https://scalegrid.io/redis.html" target="_blank">ScaleGrid for Redis™ on our website</a>.</p>

<h2 style="padding-top: 15px;">What to consider when choosing a Redis™ service?</h2>
<p style="text-align: justify;">So, with so many fully managed Redis™ service provider options, what are the most important features to look out for? Here is a checklist to use when choosing the right Redis hosting service for you:</p>
<ol>
<li><a style="color: #2da964;" href="#4">Dedicated Server</a></li>
<li><a style="color: #2da964;" href="#5">Scalability</a></li>
<li><a style="color: #2da964;" href="#6">Data Persistence</a></li>
<li><a style="color: #2da964;" href="#7">Backups & Restores</a></li>
<li><a style="color: #2da964;" href="#8">High Throughput & Low Latency</a></li>
</ol>

<h3 style="padding-top: 15px;"><a id="4"></a>Dedicated Server</h3>
<p style="text-align: justify;">Redis is a single-threaded server where data is stored in memory; therefore, having Redis running on a <a style="color: #2da964;" href="https://help.scalegrid.io/docs/redis-new-cluster-dedicated-hosting" target="_blank">dedicated server</a> is very important in a production environment. You don’t want your Redis server battling for CPU and memory resources with other services.</p>

<h3 style="padding-top: 15px;"><a id="5"></a>Scalability</h3>
<p style="text-align: justify;">Businesses grow, and the same for your data. It’s very important that your Redis service is able to perform a <a style="color: #2da964;" href="https://help.scalegrid.io/docs/redis-scaling" target="_blank">dynamic, in-place scale up</a> of your Redis server with little or no downtime.</p>

<h3 style="padding-top: 15px;"><a id="6"></a>Data Persistence</h3>
<p style="text-align: justify;">Depending on your business needs, you might need to persist your Redis data on physical storage. Redis provides two persistence options: RDB and AOF.</p> 
<p style="text-align: justify;">RDB is a point-in-time snapshots of your dataset at specified intervals to a Redis Database Backup file. The file can be transferred to other Redis instances.</p>
<p style="text-align: justify;">AOF stands for Append Only File. Redis logs every write operation which has been modified in your dataset.  It is a very reliable way to persist your data.</p>
<p style="text-align: justify;">Both RDB and AOF can be enabled at the same time and they have different trade offs.  For more details about their pros and cons, you can read more on <a style="color: #2da964;" href="https://redis.io/topics/persistence" target="_blank">Redis Persistence page</a> on redis.io.</p>
<p style="text-align: justify;">Your Redis service should provide options not only to persist the data, but also to deploy Redis in <a style="color: #2da964;" href="https://redis.io/topics/replication" target="_blank">master/replica</a> or <a style="color: #2da964;" href="https://redis.io/topics/cluster-tutorial" target="_blank">cluster mode</a> to minimize the chance of data loss.</p>

<h3 style="padding-top: 15px;"><a id="7"></a>Backups & Restores</h3>
<p style="text-align: justify;">Any Database as a Service (DBaaS) for Redis should also provide <a style="color: #2da964;" href="https://help.scalegrid.io/docs/redis-backups-scheduled" target="_blank">scheduled</a> and <a style="color: #2da964;" href="https://help.scalegrid.io/docs/redis-backups-on-demand" target="_blank">on-demand</a> backups so you can ensure you always have a regular schedule of backups available, and can perform them as needed before an application event. It should also provide “restore backup” options to existing databases or to a new database instance.</p>

<h3 style="padding-top: 15px;"><a id="8"></a>High Throughput & Low Latency</h3>
<p style="text-align: justify;">Redis can provide fast caching for applications. However, sometimes network latency can bottleneck accessing data from Redis. The key is to avoid physical distancing between your application and Redis. So, you want to make sure both the application and Redis are hosted on the same cloud provider region and on the same virtual network. Your Redis service provider should have the option to deploy your Redis server on the virtual network of your choice.</p>