Maison > base de données > Redis > Comment SpringBoot intègre l'API d'opération Redis

Comment SpringBoot intègre l'API d'opération Redis

PHPz
Libérer: 2023-05-29 18:19:13
avant
1074 Les gens l'ont consulté

SpringDataRedis appelle l'interprétation sous-jacente de Redis

  • Avant SpringBoot2

  • Jedis : l'utilisation d'une connexion directe, le fonctionnement multithread est dangereux. Si vous souhaitez éviter tout risque, utilisez le pool de connexion au pool Jedis ; Netty est utilisé comme couche inférieure et les instances peuvent être partagées entre plusieurs threads. Pour des raisons de sécurité, NIO
  • SpringBoot intègre Redis (analyse du code source) ;
  • Comment SpringBoot intègre lAPI dopération Redis

    Toutes les classes de configuration de SpringBoot ont une classe de configuration automatique
      Les classes de configuration automatiques seront liées à un fichier de propriétés
    • Trouver Spring.factories

    dans le code source , recherchez redis dedans, recherchez AutoConfiguration
  • Appuyez sur ctrl+clic pour entrer dans la classe

  • Comment SpringBoot intègre lAPI dopération Redis

  • Trouvez redisproperties.class

  • Comment SpringBoot intègre lAPI dopération Redis

  • ctrl+ cliquez pour entrer

  • Comment SpringBoot intègre lAPI dopération Redis

  • Il y a toutes les configurations liées à Redis, jetez-y un bref coup d'œil d'abord, et nous parlerons des autres plus tard

  • Comment SpringBoot intègre lAPI dopération Redis

  • Beans injectés par défaut

  • Comment SpringBoot intègre lAPI dopération Redis

  • Mais le redisTemplate par défaut a quelques problèmes. Sa clé est de type Object, mais les clés générales que nous attendons sont de type String, qui nécessite des types convertis, donc comme mentionné ci-dessus, vous pouvez définir le. RedisModèle vous-même

  • Lors de la configuration du fichier de configuration, si vous devez configurer le pool de connexions, utilisez lettuce. Ne configurez pas Redis directement s'il est configuré

    Comment SpringBoot intègre lAPI dopération Redis

  • View injection Il existe deux sous-classes de RedisConnectionFactory.
  • Comment SpringBoot intègre lAPI dopération Redis

  • , à savoir JedisConnectionFactory et LettuceConnectionFactory
  • car la classe JedisConnectionFactory dépend de De nombreuses classes n'existent pas, elles ne peuvent donc pas être utilisées directement

    .

  • Comment SpringBoot intègre lAPI dopération Redis

  • sont tous bordés de rouge et les dépendances dans lettuceConnectionFactory sont toutes là

  • Comment SpringBoot intègre lAPI dopération Redis

  • donc lors de la configuration, utilisez lettuce

  • Comment SpringBoot intègre lAPI dopération Redis

  • Ne configurer les jedis directement

  • Comment SpringBoot intègre lAPI dopération Redis

  • SpringBoot intègre Redis (configuration)

    yml
  • Comment SpringBoot intègre lAPI dopération RedisCopier les propriétés pour créer un fichier de configuration au format yml, j'aime toujours beaucoup yml

  • spring:
      redis:
        host: localhost
        port: 6379
    Copier après la connexion
    Comment SpringBoot intègre lAPI dopération RedisMaven

    在项目创建的时候选择,如果没有选择就添加
    Copier après la connexion
    <dependency>
      <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-redis</artifactId>
    </dependency>
    Copier après la connexion
  • Écrire un test

Ouvrez la classe de test créée par SpringBoot par défaut

  • Comment SpringBoot intègre lAPI dopération RedisredisTemp Les méthodes d'exploitation des types de données commencent toutes par opsFor, suivi du type

  • Pour Par exemple, opsForValue fonctionne sur des chaînes

  • Ensuite, l'application suivante est la même que l'API écrite auparavant

  • Comment SpringBoot intègre lAPI dopération Redis

  • 常用的操作可以直接点就可以了

  • 关于事物的

redisTemplate.unwatch();
redisTemplate.watch("key");
redisTemplate.multi();
redisTemplate.discard();
redisTemplate.exec();
Copier après la connexion

关于数据库的操作需要获取链接后使用连接对象操作

RedisConnection connection = redisTemplate.getConnectionFactory().getConnection();connection.flushAll();connection.flushDb();connection.close();
Copier après la connexion

测试代码及其执行结果

package co.flower.redis02springboot;import org.junit.jupiter.api.Test;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.test.context.SpringBootTest;import org.springframework.data.redis.connection.RedisConnection;import org.springframework.data.redis.core.RedisTemplate;

@SpringBootTestclass Redis02SpringbootApplicationTests {/** * 我居然直接就指定了泛型 RedisTemplate<String,Object>结果就直接报错了,删除泛型后成功     */@Autowiredprivate RedisTemplate redisTemplate;

    @Testvoid contextLoads() {// 英文测试redisTemplate.opsForValue().set("name","xiaojiejie");
        System.out.println(redisTemplate.opsForValue().get("name"));// 中文测试redisTemplate.opsForValue().set("name","小姐姐");
        System.out.println(redisTemplate.opsForValue().get("name"));
    }

}

执行结果,SpringBoot的启动加载和结束销毁没有粘贴/***SpringBootStart****/xiaojiejie
小姐姐/***SpringBootStop*****/
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:yisu.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal