Skip to content

Commit ee8725e

Browse files
authored
Merge pull request #308729 from flang-msft/fxl---remove-reddison
Fxl remove reddison
2 parents db6f67e + efcecdd commit ee8725e

5 files changed

Lines changed: 42 additions & 85 deletions

File tree

articles/redis/best-practices-client-libraries.md

Lines changed: 22 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
---
22
title: Best practices using client libraries with Azure Managed Redis
33
description: Learn about client libraries for Azure Managed Redis.
4-
ms.date: 05/18/2025
5-
ms.topic: conceptual
4+
ms.date: 11/24/2025
5+
ms.topic: article
6+
67
ms.custom:
78
- devx-track-java
89
- devx-track-javaee
@@ -17,29 +18,30 @@ appliesto:
1718

1819
# Azure Managed Redis Client libraries
1920

20-
Azure Managed Redis is based on the popular in-memory data store, Redis. Redis clients for many programming languages can access Azure Managed Redis. Each client library has its own API that makes calls to Redis server using Redis commands, but the client libraries are built to talk to any Redis server.
21+
This article helps you choose and use the best client libraries for Azure Managed Redis. You learn which libraries to use for your programming language, how to handle clustering policies, and avoid common connection issues.
22+
23+
Azure Managed Redis is based on the popular in-memory data store, Redis. Redis clients for many programming languages can access Azure Managed Redis. Each client library has its own API that makes calls to Redis server using Redis commands, but the client libraries are built to talk to any Redis server.
2124

2225
Each client library maintains its own reference documentation. The libraries also provide links to get support through the client library developer community. The Azure Managed Redis team doesn't own the development, or the support for any client libraries.
2326

2427
The following recommendations are based on popularity and whether there's an active online community to support and answer your questions. We only recommend using the latest available version, and upgrading regularly as new versions become available. These libraries are under active development and often release new versions with improvements to reliability and performance.
2528

2629
| **Client library** | **Language** | **GitHub** **repo** | **Documentation** |
2730
|---------------------------|--------------|---------------------------------------------------------------------|--------------------------------------------------------------------------------------|
28-
| StackExchange.Redis | C#/.NET | [Link](https://github.com/StackExchange/StackExchange.Redis) | [More information here](https://stackexchange.github.io/StackExchange.Redis/) |
29-
| Lettuce | Java | [Link](https://github.com/lettuce-io/) | [More information here](https://lettuce.io/) |
30-
| Jedis | Java | [Link](https://github.com/redis/jedis) | |
31-
| node_redis | Node.js | [Link](https://github.com/redis/node-redis) | |
32-
| Redisson | Java | [Link](https://github.com/redisson/redisson) | [More information here](https://redisson.org/) |
33-
| ioredis | Node.js | [Link](https://github.com/luin/ioredis) | [More information here](https://ioredis.readthedocs.io/en/stable/API/) |
31+
| StackExchange.Redis | C#/.NET | [StackExchange.Redis GitHub](https://github.com/StackExchange/StackExchange.Redis) | [StackExchange.Redis docs](https://stackexchange.github.io/StackExchange.Redis/) |
32+
| Lettuce | Java | [Lettuce GitHub](https://github.com/lettuce-io/) | [Lettuce documentation](https://lettuce.io/) |
33+
| Jedis | Java | [Jedis GitHub](https://github.com/redis/jedis) | [Jedis documentation](https://github.com/redis/jedis#readme) |
34+
| node_redis | Node.js | [node_redis GitHub](https://github.com/redis/node-redis) | [node_redis documentation](https://github.com/redis/node-redis#readme) |
35+
| ioredis | Node.js | [ioredis GitHub](https://github.com/luin/ioredis) | [ioredis API reference](https://ioredis.readthedocs.io/en/stable/API/) |
3436

3537
> [!NOTE]
36-
> Your application can use any client library that is compatible with open-source Redis to connect to your Azure Managed Redis instance.
38+
> Your application can use any client library that's compatible with open-source Redis to connect to your Azure Managed Redis instance.
3739
3840
## Choosing the right client library based on your clustering policy
3941

4042
Azure Managed Redis supports the Enterprise clustering policy and the OSS clustering policy. See more information here (add link to clustering policy information).
4143

42-
All client libraries work with your Redis instance with Enterprise clustering policy. However, if you're using the OSS clustering policy, ensure that the client library you choose supports connecting to clustered Redis instances.
44+
All client libraries work with your Redis instance with Enterprise clustering policy. However, if you're using the OSS clustering policy, ensure that the selected client library supports connecting to clustered Redis instances.
4345

4446
## Blocked commands
4547

@@ -68,64 +70,20 @@ In Active-Active databases, multi-key write commands (`DEL`, `MSET`, `UNLINK`) c
6870

6971
## Client library-specific guidance
7072

71-
For information on client library-specific guidance best practices, see the following links:
72-
73-
- [StackExchange.Redis (.NET)](best-practices-connection.md#using-forcereconnect-with-stackexchangeredis)
74-
- [Lettuce (Java)](https://github.com/Azure/AzureCacheForRedis/blob/main/Lettuce%20Best%20Practices.md)
75-
- [Jedis (Java)](https://github.com/Azure/AzureCacheForRedis/blob/main/Redis-BestPractices-Java-Jedis.md)
76-
- [Redisson (Java)](best-practices-client-libraries.md#redisson-java)
77-
- [Node.js](https://github.com/Azure/AzureCacheForRedis/blob/main/Redis-BestPractices-Node-js.md)
78-
- [PHP](https://github.com/Azure/AzureCacheForRedis/blob/main/Redis-BestPractices-PHP.md)
79-
- [HiRedisCluster](https://github.com/Azure/AzureCacheForRedis/blob/main/HiRedisCluster%20Best%20Practices.md)
80-
81-
## Redisson (Java)
82-
83-
We _recommend_ you use redisson 3.14.1 or higher. Older versions contain known connection leak issues that cause problems after failovers. Monitor the Redisson changelog for other known issues can affect features used by your application. For more information, see[`CHANGELOG`](https://github.com/redisson/redisson/blob/master/CHANGELOG.md) and the [Redisson FAQ](https://github.com/redisson/redisson/wiki/16.-FAQ).
84-
85-
Other notes:
86-
87-
- Redisson defaults to 'read from replica' strategy, unlike some other clients. To change this default, modify the 'readMode' config setting.
88-
- Redisson has a connection pooling strategy with configurable minimum and maximum settings, and the default minimum values are large. The large defaults could contribute to aggressive reconnect behaviors or 'connection storms.' To reduce the risk, consider using fewer connections because you can efficiently pipeline commands, or batches of commands, over a few connections.
89-
- Redisson has a default idle connection time-out of 10 seconds, which leads to more closing and reopening of connections than ideal.
90-
91-
Here's a recommended baseline configuration for cluster mode that you can modify as needed:
92-
93-
```yml
94-
clusterServersConfig:
95-
idleConnectionTimeout: 30000
96-
connectTimeout: 15000
97-
timeout: 5000
98-
retryAttempts: 3
99-
retryInterval: 3000
100-
checkLockSyncedSlaves: false
101-
failedSlaveReconnectionInterval: 15000
102-
failedSlaveCheckInterval: 60000
103-
subscriptionsPerConnection: 5
104-
clientName: "redisson"
105-
loadBalancer: !<org.redisson.connection.balancer.RoundRobinLoadBalancer> {}
106-
subscriptionConnectionMinimumIdleSize: 1
107-
subscriptionConnectionPoolSize: 50
108-
slaveConnectionMinimumIdleSize: 2
109-
slaveConnectionPoolSize: 24
110-
masterConnectionMinimumIdleSize: 2
111-
masterConnectionPoolSize: 24
112-
readMode: "MASTER"
113-
subscriptionMode: "MASTER"
114-
nodeAddresses:
115-
- "redis://mycacheaddress:10000"
116-
scanInterval: 1000
117-
pingConnectionInterval: 60000
118-
keepAlive: false
119-
tcpNoDelay: true
120-
```
121-
122-
For an article about Redisson's support for JCache as the store for HTTP session state in IBM Liberty on Azure, see [Use Java EE JCache with Open Liberty or WebSphere Liberty on an Azure Kubernetes Service (AKS) cluster](/azure/developer/java/ee/how-to-deploy-java-liberty-jcache).
73+
Choose your programming language to get detailed best practices and connection guidance:
74+
75+
- [StackExchange.Redis (.NET) best practices](best-practices-connection.md#using-forcereconnect-with-stackexchangeredis)
76+
- [Lettuce (Java) best practices](https://github.com/Azure/AzureCacheForRedis/blob/main/Lettuce%20Best%20Practices.md)
77+
- [Jedis (Java) best practices](https://github.com/Azure/AzureCacheForRedis/blob/main/Redis-BestPractices-Java-Jedis.md)
78+
- [Node.js best practices](https://github.com/Azure/AzureCacheForRedis/blob/main/Redis-BestPractices-Node-js.md)
79+
- [PHP best practices](https://github.com/Azure/AzureCacheForRedis/blob/main/Redis-BestPractices-PHP.md)
80+
- [HiRedisCluster best practices](https://github.com/Azure/AzureCacheForRedis/blob/main/HiRedisCluster%20Best%20Practices.md)
12381

12482
## How to use client libraries
12583

12684
Besides the reference documentation, you can find tutorials showing how to get started with Azure Managed Redis using different languages and cache clients.
12785

128-
For more information on using some of these client libraries in tutorials, seethe following articles:
86+
For more information on using some of these client libraries in tutorials, see the following articles:
12987

13088
- [Code a .NET Framework app](dotnet-how-to-use-azure-redis-cache.md)
13189
- [Code a .NET Core app](dotnet-core-quickstart.md)

articles/redis/includes/managed-redis-create.md

Lines changed: 18 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,18 @@
11
---
2-
ms.date: 05/18/2025
2+
ms.date: 11/24/2025
33
ms.topic: include
44
ms.custom:
55
- ignite-2024
66
- build-2025
77
---
88

9-
1. To create an Azure Managed Redis instance, sign in to the Azure portal and select **Create a resource**.
9+
1. To create an Azure Managed Redis instance, sign in to the Azure portal and select **Create a resource**.
1010

11-
1. On the **New** page, in the search box type **Azure Cache for Redis**.
12-
13-
1. On the **New Redis Cache** tab, configure the settings for your new cache on the Basics .
11+
1. On the **Create a resource** page, type **Azure Managed Redis** in the search box.
12+
13+
1. Select the **Azure Managed Redis** tile and select **Create**.
14+
15+
1. On the **Create Azure Managed Redis instance** pane, configure the settings for a new cache on the **Basics** tab.
1416

1517
| Setting | Choose a value | Description |
1618
| ------------ | ------- | -------------------------------------------------- |
@@ -20,47 +22,44 @@ ms.custom:
2022
| **Region** | Drop down and select a location. | Azure Managed Redis is available in selected Azure regions. |
2123
| **Data tier** | Select either **In-memory** for high-performance, or **Flash** for lower performance caches | The in-memory tiers include **Balanced**, **Memory Optimized**, and **Compute Optimized**. Use the **Flash** tier to use in-memory (RAM) and on-disk (SSD) data storage. |
2224
| **Cache Size** | Drop down and select a size. | Cache size depends on tier. The smallest size is a Balanced tier. The size largest in-memory tier is a Memory Optimized tier. |
23-
| **Performance** | Drop down and select a performance preference. | Performance depends on the number of vCPUs. Number of vCPU varies with tier. Compute Optimized has the most vCPUs. |
25+
| **Performance** | Drop down and select a performance preference. | Performance depends on the number of vCPUs. Number of vCPU varies with tier. Compute Optimized has the most vCPUs. |
2426

2527
For guidance on choosing the right performance tier, see [Choosing the right tier](../overview.md#choosing-the-right-tier).
26-
<!-- :::image type="content" source="media/managed-redis-create/managed-redis-new-cache-basics.png" alt-text="Screenshot showing the Azure Managed Redis Basics tab."::: -->
2728

2829
[!INCLUDE [tier-preview](tier-preview.md)]
2930

30-
1. Select **Next: Networking** , and select either a **Public Endpoint** or **Private Endpoint**.
31+
1. Select **Next: Networking** , and select either a **Disable public access and use private access** or **Enable public access from all networks**.
3132

3233
1. Select **Next: Active geo-replication**. To use active geo-replication it must be enabled during provisioning. Caches without active geo-replication can't be added to or join active geo-replication groups later. For more information, see [Configure active geo-replication for Azure Managed Redis instances](../how-to-active-geo-replication.md).
3334

3435
1. Select the **Next: Advanced** tab.
3536

3637
Configure any [Redis modules](../redis-modules.md) you want to add to the instance.
3738

38-
By default, for a new managed cache:
39-
- Microsoft Entra ID is enabled.
40-
- **Access Keys Authentication** is disabled for security reasons.
41-
42-
> [!IMPORTANT]
43-
> For optimal security, we recommend that you use Microsoft Entra ID with managed identities to authorize requests against your cache if possible. Authorization by using Microsoft Entra ID and managed identities provides superior security and ease of use over shared access key authorization. For more information about using managed identities with your cache, see [Use Microsoft Entra ID for cache authentication](/azure/azure-cache-for-redis/cache-azure-active-directory-for-authentication).
44-
4539
Set **Clustering policy**:
4640
- Use **Enterprise** in order to use RedisSearch or other modules
4741
- Use **OSS** for a clustered cache.
4842
- Use **Non-clustered (Preview)** for a non-clustered cache.
4943

5044
For more information on choosing **Clustering policy**, see [Cluster policy](../architecture.md#cluster-policies).
5145

52-
<!-- :::image type="content" source="media/managed-redis-create/managed-redis-advanced-settings.png" alt-text="Screenshot that shows the Azure Managed Redis Advanced tab."::: -->
46+
By default, for a new managed cache:
47+
- Microsoft Entra ID is enabled.
48+
- **Access Keys Authentication** is disabled for security reasons.
5349

5450
> [!IMPORTANT]
55-
> You can't change the clustering policy of an Azure Managed Redis instance after you create it. If you're using [RediSearch](../redis-modules.md#redisearch), the Enterprise cluster policy is required, and `NoEviction` is the only eviction policy supported.
51+
> You can't change modules after you create a cache instance. Modules must be enabled at the time you create an Azure Managed Redis instance. There is no option to enable the configuration of a module after you create a cache.
5652
>
5753
5854
> [!IMPORTANT]
59-
> If you're using this cache instance in a geo-replication group, eviction policies cannot be changed after the instance is created. Be sure to know the eviction policies of your primary nodes before you create the cache. For more information on active geo-replication, see [Active geo-replication prerequisites](../how-to-active-geo-replication.md#active-geo-replication-prerequisites).
55+
> For optimal security, we recommend that you use Microsoft Entra ID with managed identities to authorize requests against your cache if possible. Authorization by using Microsoft Entra ID and managed identities provides superior security and ease of use over shared access key authorization. For more information about using managed identities with your cache, see [Use Microsoft Entra ID for cache authentication](/azure/azure-cache-for-redis/cache-azure-active-directory-for-authentication).
56+
57+
> [!IMPORTANT]
58+
> You can't change the clustering policy of an Azure Managed Redis instance after you create it. If you're using [RediSearch](../redis-modules.md#redisearch), the Enterprise cluster policy is required, and `NoEviction` is the only eviction policy supported.
6059
>
6160
6261
> [!IMPORTANT]
63-
> You can't change modules after you create a cache instance. Modules must be enabled at the time you create an Azure Cache for Redis instance. There is no option to enable the configuration of a module after you create a cache.
62+
> If you're using this cache instance in a geo-replication group, eviction policies cannot be changed after the instance is created. Be sure to know the eviction policies of your primary nodes before you create the cache. For more information on active geo-replication, see [Active geo-replication prerequisites](../how-to-active-geo-replication.md#active-geo-replication-prerequisites).
6463
>
6564
6665
1. Select **Next: Tags** and skip.
Binary file not shown.
Binary file not shown.

articles/redis/includes/redis-cache-resource-group-clean-up.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
ms.date: 05/18/2025
2+
ms.date: 11/24/2025
33
ms.topic: include
44
ms.custom:
55
- build-2025
@@ -18,7 +18,7 @@ Otherwise, if you're finished with the quickstart sample application, you can de
1818

1919
1. In the **Filter by name** textbox, type the name of your resource group. The instructions for this article used a resource group named `TestResources`. On your resource group in the result list, select **Test Resources** then **Delete resource group**.
2020

21-
:::image type="content" source="../media/java-redisson-get-started/redis-cache-delete-resource-group.png" alt-text="Screenshot of the Azure portal that shows the Resource group page with the Delete resource group button highlighted." lightbox="../media/java-redisson-get-started/redis-cache-delete-resource-group.png":::
21+
:::image type="content" source="media/cache-delete-resource-group/cache-confirm-deletion.png" alt-text="Screenshot of the Azure portal that shows the Resource group page with the Delete resource group button highlighted." lightbox="media/cache-delete-resource-group/cache-delete-resource-group.png":::
2222

2323
1. Type the name of your resource group to confirm deletion and then select **Delete**.
2424

0 commit comments

Comments
 (0)