Cet article présente les méthodes et les étapes de l'utilisation du Cache Redis dans le projet Springboot. Je vais le partager avec vous. Les détails sont les suivants:
Spring Data Redis résume diverses opérations du client Redis pour que nous simplifons l'utilisation.
- Lorsque Redis est utilisé comme base de données ou file d'attente de messages, nous utilisons généralement Redemplate pour fonctionner
- Lorsque Redis est utilisé comme un cache, nous pouvons l'utiliser comme implémentation de Cache Spring, en l'utilisant directement via l'annotation
1. Présentation
L'utilisation efficace du cache Redis dans les applications peut bien améliorer les performances du système, en particulier pour les opérations de requête, ce qui peut réduire efficacement la pression de la base de données.
Pour un code spécifique, reportez-vous à cet exemple de projet
2. Ajouter une référence
Rejoindre Build.gradle
compiler ('org.springframework.boot: spring-boot-starter-data-redis')Springboot introduira automatiquement les packages JAR liés à Redis. Après avoir ajouté cette référence, vous devez installer Redis localement et le démarrer, sinon une erreur sera signalée au début du programme.
3. Activer le cache à travers les annotations
Il est très simple d'activer Redis à Springboot. Il vous suffit d'ajouter l'annotation @EnableCaching sur la classe principale de l'application, puis d'ajouter l'annotation @cacheable sur la méthode de requête qui doit activer le cache.
@ SpringbootApplication @ pertiableCachingPublic Class DemoApplication implémente CommandLinerUnner {...Interface de requête:
Interface publique TestRepository étend JParePository <test, entier> {@cacheable (value = "testCache") Public Test FindOne (ID INTER);}Les classes d'entités doivent implémenter l'interface sérialisable, sinon le programme rapportera une erreur car l'objet Java ne peut pas être sérialisé en redis. Redis dans Springboot utilise par défaut par défaut par défaut, qui utilise la propre méthode de sérialisation de JDK.
Il existe un total des méthodes de sérialisation suivantes. Pour des scénarios d'utilisation spécifiques, veuillez vous référer à la documentation officielle.
1. GenericJackson2jsonredisserializer
2. GénérictoStringserializer
3. Jackson2jsonredisserializer
4. Jacksonjsonredisserializer
5. JDKSerializationDisserializer
6. OxMeSerializer
7. Stringredisserializer
À ce stade, notre programme a la possibilité d'interroger les données du cache Redis. Si cela ne vous dérange pas l'esthétique de la clé stockée dans Redis, l'œuvre sera terminée.
4. Belle clé
Après avoir exécuté notre programme, exécutez la commande clé * dans Redis-Cli et vous constaterez que la valeur de la clé est un tas de choses similaires au code brouillé:
"TestCache: /xac/XED/X00/X05SR/X00/X11java.lang.integer/x12/xe2/xa0/xa4/xf7/x81/x878/x02/x00/x01i/x0 8
La valeur clé à ce sujet est probablement inacceptable pour le personnel de fonctionnement et de maintenance de Redis. Nous devons trouver un moyen de rendre la valeur clé meilleure, du moins pour que les gens le comprennent.
La raison de la valeur de clé ci-dessus est que la classe SimpleKey est utilisée par défaut à Spring pour générer la clé Redis.
La solution est également très simple. Ajoutez une configuration de cache et spécifiez comment redis génère des touches:
@ConfigurationPublic Class CacheConfig étend CachingConfigurersupport {@autowired private reidemplate reistemplate; @Bean public cacheManager cacheManager () {redetemplate.setKeySerializer (new GenerrictoStringSerializer <objet> (object.class)); RediscacheManager CacheManager = New RediscacheManager (Redemplate); cacheManager.SetDefaultExpiration (3600); cacheManager.SetUtePrefix (true); cacheManager.SetCachepRefix (new rediscacheprefix () {private final redesserializer <string> serializer = new StringRedisSerializer (); private final Delimiter = ":"; public byte [] préfixe (string cachename) {return this.serializer .serialialize (cachename.Concat (this.deliter); }.); retour Cachemanager; }}dans
La copie de code est la suivante:
Redistetemplate.setKeySerializer (nouveau générictoStringSerializer <objet> (objet.class));
Cette ligne de code spécifie la méthode de génération des valeurs clés dans redis. La méthode de sérialisation de GenerrictoStringSerializer convertira l'objet Java en une chaîne et le stockera en redis.
5. Résumé
L'activation du cache Redis dans Springboot est très simple, il vous suffit d'ajouter quelques annotations. Dans le même temps, nous pouvons ajouter une configuration de cache pour faire que les valeurs clés stockées dans Redis ont une bonne lisibilité, plutôt qu'un tas de données brouillées.
Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.