ホームページ  >  記事  >  データベース  >  SpringBoot が Redis 操作 API を統合する方法

SpringBoot が Redis 操作 API を統合する方法

PHPz
PHPz転載
2023-05-29 18:19:131027ブラウズ

SpringDataRedis は Redis の基礎となる解釈を呼び出します

  • SpringBoot2.X より前は、公式に推奨されている Jedis 接続 Redis が直接使用されていました。

  • In 2 After 。操作は安全ではありません。安全でないことを回避したい場合は、Jedis プール接続プールを使用してください。BIO

  • lettuce: Netty は最下層として使用されます。インスタンスは複数のスレッド間で共有できます。 、スレッドの非互換性はありません。安全の場合は、スレッドの数を減らすことができます。NIOSpringBoot が Redis 操作 API を統合する方法

    SpringBoot は Redis を統合します (ソース コード分析)
    • SpringBoot のすべての構成クラス、自動構成クラスがあります
    • #自動構成クラスはプロパティ ファイルにバインドされます

ソース コードで Spring.factories

# を見つけます

  • #redis を検索し、AutoConfiguration

    を見つけます
  • ##Ctrl キーを押しながらクリックしてクラスに入ります

    SpringBoot が Redis 操作 API を統合する方法

  • ##redisproperties.class を検索
  • SpringBoot が Redis 操作 API を統合する方法

  • Ctrl キーを押しながらクリックして入力
  • SpringBoot が Redis 操作 API を統合する方法

  • # これには、すべての Redis 関連の構成が含まれています。最初に簡単に見てみましょう。他のものについては後ほど説明します。
  • SpringBoot が Redis 操作 API を統合する方法

  • ##デフォルトで注入される Bean

  • SpringBoot が Redis 操作 API を統合する方法

  • ただし、デフォルトの redisTemplate にはいくつかの問題があります。そのキーは Object 型ですが、一般的なキーはすべて String 型であり、強制的な型変換が必要です。そのため、前述したように、RedisTemplate を自分で定義できます

  • #構成ファイルを構成するとき、接続プールを構成する必要がある場合は、 lettuce を使用してください。Redis を直接構成しないでください。構成しても有効になりません。

    SpringBoot が Redis 操作 API を統合する方法

  • チェックを入れてください。インジェクション中の RedisConnectionFactory
  • SpringBoot が Redis 操作 API を統合する方法

    #JedisConnectionFactory と LettuceConnectionFactory という 2 つのサブクラスがあります
  • #JedisConnectionFactory クラスの多くの依存クラスは存在しないため、直接使用することはできません。依存関係はすべて存在します
  • SpringBoot が Redis 操作 API を統合する方法

    したがって、設定するときは、レタスの
  • SpringBoot が Redis 操作 API を統合する方法

  • を直接使用しないでください。 jedis の構成
  • SpringBoot が Redis 操作 API を統合する方法

  • #SpringBoot 統合 Redis (構成)

  • yml
  • SpringBoot が Redis 操作 API を統合する方法

    プロパティをコピーして、yml 形式で構成ファイルを作成します。私はまだ yml が好きです
  • SpringBoot が Redis 操作 API を統合する方法

    spring:
      redis:
        host: localhost
        port: 6379

    Maven
  • 在项目创建的时候选择,如果没有选择就添加
    <dependency>
      <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-redis</artifactId>
    </dependency>
  • テストの作成

  • ##SpringBoot によってデフォルトで作成されたテスト クラスを開きます
  • SpringBoot が Redis 操作 API を統合する方法

redisTemp のデータ型操作メソッドはすべて opsFor で始まり、その後に型が続きます

  • 例, opsForValueは文字列を操作するためのものですSpringBoot が Redis 操作 API を統合する方法

そうすると後続のアプリケーションは前に書いたAPIと同じになります

  • SpringBoot が Redis 操作 API を統合する方法

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

  • 关于事物的

  • redisTemplate.unwatch();
    redisTemplate.watch("key");
    redisTemplate.multi();
    redisTemplate.discard();
    redisTemplate.exec();

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

    RedisConnection connection = redisTemplate.getConnectionFactory().getConnection();connection.flushAll();connection.flushDb();connection.close();

    测试代码及其执行结果

    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*****/

    以上がSpringBoot が Redis 操作 API を統合する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

    声明:
    この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。