Skip to content

Commit a8b299a

Browse files
committed
Edits to new content, acrolinx, linter fixes
1 parent 851d367 commit a8b299a

File tree

3 files changed

+38
-29
lines changed

3 files changed

+38
-29
lines changed

articles/azure-cache-for-redis/cache-best-practices-enterprise-tiers.md

Lines changed: 24 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
---
22
title: Best practices for the Enterprise tiers
33
titleSuffix: Azure Cache for Redis
4-
description: Learn the best practices when using the high performance Azure Cache for Redis Enterprise and Enterprise Flash tiers
4+
description: Learn the best practices when using the high performance Azure Cache for Redis Enterprise and Enterprise Flash tiers.
55
author: flang-msft
66
ms.service: cache
77
ms.topic: conceptual
8-
ms.date: 09/26/2023
8+
ms.date: 05/21/2024
99
ms.author: franlanglois
1010
---
1111

@@ -29,7 +29,7 @@ Conversely, the opposite recommendation is true for the Basic, Standard, and Pre
2929

3030
## Sharding and CPU utilization
3131

32-
In the Basic, Standard, and Premium tiers of Azure Cache for Redis, determining the number of virtual CPUs (vCPUs) utilized is straightforward. Each Redis node runs on a dedicated VM. The Redis server process is single-threaded, utilizing one vCPU on each primary and each replica node. The other vCPUs on the VM are still used for other activities, such as workflow coordination for different tasks, health monitoring, and TLS load, among others.
32+
In the Basic, Standard, and Premium tiers of Azure Cache for Redis, determining the number of virtual CPUs (vCPUs) utilized is straightforward. Each Redis node runs on a dedicated virtual machine (VM). The Redis server process is single-threaded, utilizing one vCPU on each primary and each replica node. The other vCPUs on the VM are still used for other activities, such as workflow coordination for different tasks, health monitoring, and TLS load, among others.
3333

3434
When you use clustering, the effect is to spread data across more nodes with one shard per node. By increasing the number of shards, you linearly increase the number of vCPUs you use, based on the number of shards in the cluster.
3535

@@ -38,19 +38,21 @@ Redis Enterprise, on the other hand, can use multiple vCPUs for the Redis instan
3838
The tables show the number of vCPUs used for the primary shards, not the replica shards. Shards don't map one-to-one to the number of vCPUs. The tables only illustrate vCPUs, not shards. Some configurations use more shards than available vCPUs to boost performance in some usage scenarios.
3939

4040
### E1
41+
4142
|Capacity|Effective vCPUs|
4243
|---:|---:|
4344
| 2 | 1 (burstable) |
4445

45-
4646
### E5
47+
4748
|Capacity|Effective vCPUs|
4849
|---:|---:|
4950
| 2 | 1 |
5051
| 4 | 2 |
5152
| 6 | 6 |
5253

5354
### E10
55+
5456
|Capacity|Effective vCPUs|
5557
|---:|---:|
5658
| 2 | 2 |
@@ -90,6 +92,7 @@ The tables show the number of vCPUs used for the primary shards, not the replica
9092
|10|30|
9193

9294
### E200
95+
9396
|Capacity|Effective vCPUs|
9497
|---:|---:|
9598
|2|30|
@@ -99,6 +102,7 @@ The tables show the number of vCPUs used for the primary shards, not the replica
99102
|10|120|
100103

101104
### E400
105+
102106
|Capacity|Effective vCPUs|
103107
|---:|---:|
104108
|2|60|
@@ -146,24 +150,30 @@ You might also see `CROSSSLOT` errors with Enterprise clustering policy. Only th
146150
In Active-Active databases, multi-key write commands (`DEL`, `MSET`, `UNLINK`) can only be run on keys that are in the same slot. However, the following multi-key commands are allowed across slots in Active-Active databases: `MGET`, `EXISTS`, and `TOUCH`. For more information, see [Database clustering](https://docs.redis.com/latest/rs/databases/durability-ha/clustering/#multikey-operations).
147151

148152
## Enterprise Flash Best Practices
149-
The Enterprise Flash tier utilizes both NVMe Flash storage and RAM. Because Flash storage is lower cost, using the Enterprise Flash tier allows you to trade off some performance for price efficiency.
150153

151-
On Enterprise Flash instances, 20% of the cache space is on RAM, while the other 80% uses Flash storage. All of the _keys_ are stored on RAM, while the _values_ can be stored either in Flash storage or RAM. The location of the values is determined intelligently by the Redis software. "Hot" values that are accessed fequently are stored on RAM, while "Cold" values that are less commonly used are kept on Flash. Before data is read or written, it must be moved to RAM, becoming "Hot" data.
154+
The Enterprise Flash tier utilizes both NVMe Flash storage and RAM. Because Flash storage is lower cost, using the Enterprise Flash tier allows you to trade off some performance for price efficiency.
152155

153-
Because Redis will optmize for the best performance, the instance will first fill up the available RAM before adding items to Flash storage. This has a few implications for performance:
154-
- When testing with low memory usage, performance and latency may be significantly better than with a full cache instance because only RAM is being used.
155-
- As you write more data to the cache, the proportion of data in RAM compared to Flash storage will decrease, typically causing latency and throughput performance to decrease as well.
156+
On Enterprise Flash instances, 20% of the cache space is on RAM, while the other 80% uses Flash storage. All of the _keys_ are stored on RAM, while the _values_ can be stored either in Flash storage or RAM. The Redis software intelligently determines the location of the values. _Hot_ values that are accessed frequently are stored on RAM, while _Cold_ values that are less commonly used are kept on Flash. Before data is read or written, it must be moved to RAM, becoming "Hot" data.
157+
158+
Because Redis optimizes for the best performance, the instance first fills up the available RAM before adding items to Flash storage. Filly RAM first has a few implications for performance:
159+
160+
- Better performance and lower latency can occur when testing with low memory usage. Testing with a full cache instance can yield lower performance because only RAM is being used in the low memory usage testing phase.
161+
- As you write more data to the cache, the proportion of data in RAM compared to Flash storage decreases, typically causing latency and throughput performance to decrease as well.
156162

157163
### Workloads well-suited for the Enterprise Flash tier
164+
158165
Workloads that are likely to run well on the Enterprise Flash tier often have the following characteristics:
166+
159167
- Read heavy, with a high ratio of read commands to write commands.
160-
- Access is focused on a subset of keys which are used much more frequently than the rest of the dataset.
161-
- Relatively large values in comparison to key names. (Since key names are always stored in RAM, this can become a bottleneck for memory growth.)
168+
- Access is focused on a subset of keys that are used much more frequently than the rest of the dataset.
169+
- Relatively large values in comparison to key names. (Because key names are always stored in RAM, large values can become a bottleneck for memory growth.)
170+
171+
### Workloads that aren't well-suited for the Enterprise Flash tier
162172

163-
### Workloads that are not well-suited for the Enterprise Flash tier
164173
Some workloads have access characteristics that are less optimized for the design of the Flash tier:
174+
165175
- Write heavy workloads.
166-
- Random or uniform data access paterns across most of the dataset.
176+
- Random or uniform data access patterns across most of the dataset.
167177
- Long key names with relatively small value sizes.
168178

169179
## Handling Region Down Scenarios with Active Geo-Replication
@@ -187,7 +197,7 @@ Many customers want to use persistence to take periodic backups of the data on t
187197

188198
## E1 SKU Limitations
189199

190-
The E1 SKU is intented primarily for dev/test scenarios. It runs on smaller [burstable VMs](../virtual-machines/b-series-cpu-credit-model/b-series-cpu-credit-model.md), which offers variable performance based on how much CPU is consumed. Unlike other Enterprise SKU offerings, it is not possible to scale the E1 SKU out, although it is still possible to scale up to a larger SKU. The E1 SKU also does not support [active geo-replication](cache-how-to-active-geo-replication.md).
200+
The E1 SKU is intended for dev/test scenarios, primarily. E1 runs on smaller [burstable VMs](../virtual-machines/b-series-cpu-credit-model/b-series-cpu-credit-model.md). Burstable VMs offer variable performance based on how much CPU is consumed. Unlike other Enterprise SKU offerings, you can't _scale out_ the E1 SKU, although it's still possible to _scale up_ to a larger SKU. The E1 SKU also doesn't support [active geo-replication](cache-how-to-active-geo-replication.md).
191201

192202
## Related content
193203

articles/azure-cache-for-redis/cache-how-to-active-geo-replication.md

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -31,12 +31,13 @@ The Premium tier of Azure Cache for Redis offers a version of geo-replication ca
3131
## Active geo-replication prerequisites
3232

3333
There are a few restrictions when using active geo replication:
34+
3435
- Only the [RediSearch](cache-redis-modules.md#redisearch) and [RedisJSON](cache-redis-modules.md#redisjson) modules are supported
3536
- On the _Enterprise Flash_ tier, only the _No Eviction_ eviction policy can be used. All eviction policies are supported on the _Enterprise_ tier.
3637
- Data persistence isn't supported because active geo-replication provides a superior experience.
3738
- You can't add an existing (that is, running) cache to a geo-replication group. You can only add a cache to a geo-replication group when you create the cache.
38-
- All caches within a geo-replication group must have the same configuration. For example, all caches must have the same SKU, capacity, eviction policy, clustering policy, modules, and TLS setting.
39-
- You can't use the `FLUSHALL` and `FLUSHDB` Redis commands when using active geo-replication. Prohibiting the commands prevents unintended deletion of data. Use the [flush control plane operation](#flush-operation) instead.
39+
- All caches within a geo-replication group must have the same configuration. For example, all caches must have the same SKU, capacity, eviction policy, clustering policy, modules, and TLS setting.
40+
- You can't use the `FLUSHALL` and `FLUSHDB` Redis commands when using active geo-replication. Prohibiting the commands prevents unintended deletion of data. Use the [flush operation](#flush-operation) from the portal instead.
4041
- The E1 SKU does not support active geo-replication.
4142

4243
## Create or join an active geo-replication group
@@ -137,16 +138,16 @@ As before, you need to list both _Cache1_ and _Cache2_ using the `-LinkedDatabas
137138

138139
## Flush operation
139140

140-
Due to the potential for inadvertent data loss, you can't use the `FLUSHALL` and `FLUSHDB` Redis commands with any cache instance residing in a geo-replication group. Instead, use the **Flush Cache(s)** button located at the top of the **Active geo-replication** working pane.
141+
Due to the potential for inadvertent data loss, you can't use the `FLUSHALL` and `FLUSHDB` Redis commands with any cache instance residing in a geo-replication group. Instead, use the **Flush Cache(s)** button located at the top of the **Active geo-replication** working pane.
141142

142143
:::image type="content" source="media/cache-how-to-active-geo-replication/cache-active-flush.png" alt-text="Screenshot showing Active geo-replication selected in the Resource menu and the Flush cache feature has a red box around it.":::
143144

144145
### Flush caches using Azure CLI or PowerShell
145146

146-
The Azure CLI and PowerShell can also be used to trigger a flush operation. For more information on using Azure CLI, see [az redisenterprise database flush](/cli/azure/redisenterprise#az-redisenterprise-database-flush). For more information on using PowerShell, see [Invoke-AzRedisEnterpriseCacheDatabaseFlush](/powershell/module/az.redisenterprisecache/invoke-azredisenterprisecachedatabaseflush).
147+
The Azure CLI and PowerShell can also be used to trigger a flush operation. For more information on using Azure CLI, see [az redisenterprise database flush](/cli/azure/redisenterprise#az-redisenterprise-database-flush). For more information on using PowerShell, see [Invoke-AzRedisEnterpriseCacheDatabaseFlush](/powershell/module/az.redisenterprisecache/invoke-azredisenterprisecachedatabaseflush).
147148

148149
> [!IMPORTANT]
149-
> Be careful when using the **Flush Caches** feature. Selecting the button removes all data from the current cache and from ALL linked caches in the geo-replication group.
150+
> Be careful when using the **Flush Caches** feature. Selecting the button removes all data from the current cache and from ALL linked caches in the geo-replication group.
150151
>
151152
152153
Manage access to the feature using [Azure role-based access control](../role-based-access-control/overview.md). Only authorized users should be given access to flush all caches.
@@ -155,7 +156,5 @@ Manage access to the feature using [Azure role-based access control](../role-bas
155156

156157
Learn more about Azure Cache for Redis features.
157158

158-
* [Azure Cache for Redis service tiers](cache-overview.md#service-tiers)
159-
* [High availability for Azure Cache for Redis](cache-high-availability.md)
160-
161-
159+
- [Azure Cache for Redis service tiers](cache-overview.md#service-tiers)
160+
- [High availability for Azure Cache for Redis](cache-high-availability.md)

0 commit comments

Comments
 (0)