Szybki start: używanie usługi Azure Cache for Redis w języku Java z klientem Redisson Redis
W tym przewodniku Szybki start dołączysz usługę Azure Cache for Redis do aplikacji Java przy użyciu klienta Redisson Redis i standardowego interfejsu API JCache JCP. Te usługi zapewniają dostęp do bezpiecznej, dedykowanej pamięci podręcznej dostępnej z dowolnej aplikacji na platformie Azure. Ten artykuł zawiera dwie opcje wybierania tożsamości platformy Azure do użycia na potrzeby połączenia usługi Redis.
Przejdź do kodu w usłudze GitHub
W tym przewodniku Szybki start użyto funkcji archetypu narzędzia Maven do wygenerowania szkieletu aplikacji. Przewodnik Szybki start przekierowuje Cię do zmodyfikowania wygenerowanego kodu w celu dotarcia do działającej przykładowej aplikacji. Jeśli chcesz przejść bezpośrednio do ukończonego kodu, zobacz przewodnik Szybki start języka Java w witrynie GitHub.
Wymagania wstępne
- Subskrypcja platformy Azure — utwórz jedną bezpłatnie
- Używanie identyfikatora Entra firmy Microsoft do uwierzytelniania w pamięci podręcznej
- Apache Maven
Tworzenie usługi Azure Cache for Redis
Aby utworzyć pamięć podręczną, zaloguj się do witryny Azure Portal. W menu portalu wybierz pozycję Utwórz zasób.
W okienku Wprowadzenie wprowadź ciąg Azure Cache for Redis na pasku wyszukiwania. W wynikach wyszukiwania znajdź usługę Azure Cache for Redis, a następnie wybierz pozycję Utwórz.
W okienku Nowa pamięć podręczna Redis Cache na karcie Podstawy skonfiguruj następujące ustawienia dla pamięci podręcznej:
Ustawienie Akcja opis Subskrypcja Wybierz subskrypcję platformy Azure. Subskrypcja do użycia w celu utworzenia nowego wystąpienia usługi Azure Cache for Redis. Grupa zasobów: Wybierz grupę zasobów lub wybierz pozycję Utwórz nową i wprowadź nową nazwę grupy zasobów. Nazwa grupy zasobów, w której ma zostać utworzona pamięć podręczna i inne zasoby. Umieszczając wszystkie zasoby aplikacji w jednej grupie zasobów, można je łatwo zarządzać lub usuwać razem. Nazwa DNS Wprowadź unikatową nazwę. Nazwa pamięci podręcznej musi być ciągiem od 1 do 63 znaków, który zawiera tylko cyfry, litery i łączniki. Nazwa musi zaczynać się i kończyć cyfrą lub literą i nie może zawierać kolejnych łączników. Nazwa hosta wystąpienia pamięci podręcznej to \<DNS name>.redis.cache.windows.net
.Lokalizacja Wybierz lokalizację. Region platformy Azure, który znajduje się w pobliżu innych usług korzystających z pamięci podręcznej. Jednostka SKU pamięci podręcznej Wybierz jednostkę SKU. Jednostka SKU określa rozmiar, wydajność i parametry funkcji, które są dostępne dla pamięci podręcznej. Aby uzyskać więcej informacji, zobacz Omówienie usługi Azure Cache for Redis. Rozmiar pamięci podręcznej Wybierz rozmiar pamięci podręcznej. Aby uzyskać więcej informacji, zobacz Omówienie usługi Azure Cache for Redis. Wybierz kartę Sieć lub wybierz pozycję Dalej: Sieć.
Na karcie Sieć wybierz metodę łączności do użycia dla pamięci podręcznej.
Wybierz kartę Zaawansowane lub wybierz pozycję Dalej: Zaawansowane.
W okienku Zaawansowane sprawdź lub wybierz metodę uwierzytelniania na podstawie następujących informacji:
- Domyślnie w przypadku nowej pamięci podręcznej w warstwie Podstawowa, Standardowa lub Premium jest włączone uwierzytelnianie Entra firmy Microsoft, a uwierzytelnianie kluczy dostępu jest wyłączone.
- W przypadku pamięci podręcznych w warstwie Podstawowa lub Standardowa można wybrać opcję portu innego niż TLS.
- W przypadku pamięci podręcznych w warstwie Standardowa i Premium można włączyć strefy dostępności. Po utworzeniu pamięci podręcznej nie można wyłączyć stref dostępności.
- W przypadku pamięci podręcznej Premium skonfiguruj ustawienia portów innych niż TLS, klastrowanie, tożsamość zarządzana i trwałość danych.
Ważne
W celu uzyskania optymalnego bezpieczeństwa zalecamy użycie identyfikatora Entra firmy Microsoft z tożsamościami zarządzanymi w celu autoryzowania żądań względem pamięci podręcznej, jeśli to możliwe. Autoryzacja przy użyciu identyfikatora Entra firmy Microsoft i tożsamości zarządzanych zapewnia doskonałe zabezpieczenia i łatwość korzystania z autoryzacji klucza dostępu współdzielonego. Aby uzyskać więcej informacji na temat używania tożsamości zarządzanych z pamięcią podręczną, zobacz Use Microsoft Entra ID for cache authentication (Używanie identyfikatora Entra firmy Microsoft do uwierzytelniania w pamięci podręcznej).
(Opcjonalnie) Wybierz kartę Tagi lub wybierz pozycję Dalej: Tagi.
(Opcjonalnie) Na karcie Tagi wprowadź nazwę i wartość tagu, jeśli chcesz podzielić zasób pamięci podręcznej.
Wybierz przycisk Przejrzyj i utwórz.
Na karcie Przeglądanie i tworzenie platforma Azure automatycznie weryfikuje konfigurację.
Po pojawieniu się zielonego komunikatu Weryfikacja przekazana wybierz pozycję Utwórz.
Nowe wdrożenie pamięci podręcznej odbywa się w ciągu kilku minut. Postęp wdrażania można monitorować w okienku Przegląd usługi Azure Cache for Redis. Gdy zostanie wyświetlony stan Uruchomiono, pamięć podręczna jest gotowa do użycia.
Pobieranie nazwy hosta, portów i kluczy dostępu z witryny Azure Portal
Aby połączyć serwer usługi Azure Cache for Redis, klient pamięci podręcznej potrzebuje nazwy hosta, portów i klucza pamięci podręcznej. Niektórzy klienci mogą odwoływać się do tych elementów przy użyciu nieco innych nazw. Nazwę hosta, porty i klucze można uzyskać w witrynie Azure Portal.
Aby uzyskać klucze dostępu, wybierz pozycję Uwierzytelnianie z menu Zasób. Następnie wybierz kartę Klucze dostępu.
Aby uzyskać nazwę hosta i porty pamięci podręcznej, wybierz pozycję Przegląd w menu Zasób. Nazwa hosta ma formę <DNS name.redis.cache.windows.net>.
Konfigurowanie środowiska roboczego
W krokach w tej sekcji przedstawiono dwie opcje wybierania tożsamości platformy Azure używanej na potrzeby połączenia z usługą Redis. Przykładowy kod analizuje wartość zmiennej środowiskowej AUTH_TYPE
i podejmuje działania w zależności od wartości.
Opcja tożsamości 1: Uwierzytelnianie przy użyciu klucza redis
W zależności od systemu operacyjnego dodaj zmienne środowiskowe dla nazwy hosta pamięci podręcznej i podstawowego klucza dostępu. Otwórz wiersz polecenia lub okno terminalu i skonfiguruj następujące wartości:
export REDIS_CACHE_HOSTNAME=<your-host-name>.redis.cache.windows.net
export REDIS_CACHE_KEY=<your-primary-access-key>
export AUTH_TYPE=RedisKey
Zastąp symbole zastępcze następującymi wartościami:
<your-host-name>
: Nazwa hosta DNS uzyskana w sekcji Właściwości zasobu usługi Azure Cache for Redis w witrynie Azure Portal.<your-primary-access-key>
: podstawowy klucz dostępu uzyskany z sekcji Klucze dostępu zasobu usługi Azure Cache for Redis w witrynie Azure Portal.
Opcja tożsamości 2: Uwierzytelnianie przy użyciu identyfikatora Entra firmy Microsoft
W zależności od systemu operacyjnego dodaj zmienne środowiskowe dla nazwy hosta i nazwy użytkownika pamięci podręcznej. Otwórz wiersz polecenia lub okno terminalu i skonfiguruj następujące wartości:
export REDIS_CACHE_HOSTNAME=<your-host-name>.redis.cache.windows.net
export USER_NAME=<user-name>
export AUTH_TYPE=MicrosoftEntraID
Zastąp symbole zastępcze następującymi wartościami:
<your-host-name>
: Nazwa hosta DNS uzyskana w sekcji Właściwości zasobu usługi Azure Cache for Redis w witrynie Azure Portal.<user-name>
: identyfikator obiektu tożsamości zarządzanej lub jednostki usługi.
Tworzenie nowej aplikacji Java
Za pomocą programu Maven wygeneruj nową aplikację przewodnika Szybki Start:
mvn archetype:generate \
-DarchetypeGroupId=org.apache.maven.archetypes \
-DarchetypeArtifactId=maven-archetype-quickstart \
-DarchetypeVersion=1.3 \
-DinteractiveMode=false \
-DgroupId=example.demo \
-DartifactId=redis-redisson-test \
-Dversion=1.0
Przejdź do nowego katalogu projektu redis-redisson-test .
Otwórz plik pom.xml i dodaj zależność dla narzędzia Redisson:
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-identity</artifactId>
<version>1.8.2</version>
</dependency>
<dependency>
<groupId>org.redisson</groupId>
<artifactId>redisson</artifactId>
<version>3.24.3</version>
</dependency>
Zapisz plik pom.xml.
Otwórz plik App.java i zastąp kod następującym:
package example.demo;
import com.azure.core.credential.TokenRequestContext;
import com.azure.identity.DefaultAzureCredential;
import com.azure.identity.DefaultAzureCredentialBuilder;
import org.redisson.Redisson;
import org.redisson.api.RedissonClient;
import org.redisson.config.Config;
import org.redisson.jcache.configuration.RedissonConfiguration;
import javax.cache.Cache;
import javax.cache.CacheManager;
import javax.cache.Caching;
import javax.cache.configuration.Configuration;
import javax.cache.configuration.MutableConfiguration;
import java.time.LocalDateTime;
/**
* Redis test
*
*/
public class App {
public static void main(String[] args) {
Config redissonconfig = getConfig();
RedissonClient redissonClient = Redisson.create(redissonconfig);
MutableConfiguration<String, String> jcacheConfig = new MutableConfiguration<>();
Configuration<String, String> config = RedissonConfiguration.fromInstance(redissonClient, jcacheConfig);
// Perform cache operations using JCache
CacheManager manager = Caching.getCachingProvider().getCacheManager();
Cache<String, String> map = manager.createCache("test", config);
// Simple get and put of string data into the cache
System.out.println("\nCache Command : GET Message");
System.out.println("Cache Response : " + map.get("Message"));
System.out.println("\nCache Command : SET Message");
map.put("Message",
String.format("Hello! The cache is working from Java! %s", LocalDateTime.now()));
// Demonstrate "SET Message" executed as expected
System.out.println("\nCache Command : GET Message");
System.out.println("Cache Response : " + map.get("Message"));
redissonClient.shutdown();
}
private static Config getConfig(){
if ("MicrosoftEntraID".equals(System.getenv("AUTH_TYPE"))) {
System.out.println("Auth with Microsoft Entra ID");
return getConfigAuthWithAAD();
} else if ("RedisKey".equals(System.getenv("AUTH_TYPE"))) {
System.out.println("Auth with Redis key");
return getConfigAuthWithKey();
}
System.out.println("Auth with Redis key");
return getConfigAuthWithKey();
}
private static Config getConfigAuthWithKey() {
// Connect to the Azure Cache for Redis over the TLS/SSL port using the key
Config redissonconfig = new Config();
redissonconfig.useSingleServer().setPassword(System.getenv("REDIS_CACHE_KEY"))
.setAddress(String.format("rediss://%s:6380", System.getenv("REDIS_CACHE_HOSTNAME")));
return redissonconfig;
}
private static Config getConfigAuthWithAAD() {
//Construct a Token Credential from Identity library, e.g. DefaultAzureCredential / ClientSecretCredential / Client CertificateCredential / ManagedIdentityCredential etc.
DefaultAzureCredential defaultAzureCredential = new DefaultAzureCredentialBuilder().build();
// Fetch a Microsoft Entra token to be used for authentication.
String token = defaultAzureCredential
.getToken(new TokenRequestContext()
.addScopes("acca5fbb-b7e4-4009-81f1-37e38fd66d78/.default")).block().getToken();
// Connect to the Azure Cache for Redis over the TLS/SSL port using the key
Config redissonconfig = new Config();
redissonconfig.useSingleServer()
.setAddress(String.format("rediss://%s:6380", System.getenv("REDIS_CACHE_HOSTNAME")))
.setUsername(System.getenv("USER_NAME")) // (Required) Username is Object ID of your managed identity or service principal
.setPassword(token); // Microsoft Entra access token as password is required.
return redissonconfig;
}
}
Ten kod pokazuje, jak nawiązać połączenie z wystąpieniem usługi Azure Cache for Redis przy użyciu identyfikatora Entra firmy Microsoft z obsługą interfejsu API usługi JCache z biblioteki klienta Redisson. W kodzie jest również przechowywana i pobierana wartość ciągu w pamięci podręcznej. Aby uzyskać więcej informacji na temat usługi JCache, zobacz specyfikację usługi JCache.
Zapisz plik App.java.
Skompiluj i uruchom aplikację
Wykonaj następujące polecenie narzędzia Maven, aby skompilować i uruchomić aplikację:
W poniższych danych wyjściowych widać, że Message
klucz miał wcześniej buforowane wartości, która została ustawiona w ostatnim uruchomieniu. Aplikacja zaktualizowała tę wartość w pamięci podręcznej.
Cache Command : GET Message
Cache Response : Hello! The cache is working from Java! 2023-12-05T15:13:11.398873
Cache Command : SET Message
Cache Command : GET Message
Cache Response : Hello! The cache is working from Java! 2023-12-05T15:45:45.748667
Czyszczenie zasobów
Jeśli planujesz kontynuować korzystanie z następnego samouczka, możesz zachować zasoby utworzone w tym przewodniku Szybki start i użyć ich ponownie.
W przeciwnym razie, jeśli skończysz z przykładową aplikacją Szybkiego startu, możesz usunąć zasoby platformy Azure utworzone w tym przewodniku Szybki start, aby uniknąć naliczania opłat.
Ważne
Usunięcie grupy zasobów jest nieodwracalne i grupa zasobów oraz wszystkie zawarte w niej zasoby zostaną trwale usunięte. Uważaj, aby nie usunąć przypadkowo niewłaściwych zasobów lub grupy zasobów. Jeśli utworzono zasoby do hostowania tego przykładu wewnątrz istniejącej grupy zasobów zawierającej zasoby, które chcesz zachować, możesz usunąć każdy zasób indywidualnie zamiast usuwać grupę zasobów.
Zaloguj się do witryny Azure Portal i wybierz pozycję Grupy zasobów.
W polu tekstowym Filtruj według nazwy wpisz nazwę grupy zasobów. Instrukcje dla tego artykułu używały grupy zasobów o nazwie
TestResources
. Na liście wyników w grupie zasobów wybierz pozycję Testuj zasoby, a następnie usuń grupę zasobów.Wpisz nazwę grupy zasobów, aby potwierdzić usunięcie, a następnie wybierz pozycję Usuń.
Po krótkim czasie grupa zasobów i wszystkie zawarte w niej zasoby zostaną usunięte.
Następne kroki
W tym przewodniku Szybki start przedstawiono sposób używania usługi Azure Cache for Redis z poziomu aplikacji Java z klientem Redisson Redis i usługą JCache. Przejdź do kolejnego Szybkiego startu, w którym wyjaśniono, jak używać usługi Microsoft Azure Cache for Redis z poziomu aplikacji internetowej ASP.NET.