クラス LettuceConnectionFactory

java.lang.ObjectSE
org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory
実装されたすべてのインターフェース:
DisposableBeanInitializingBeanLifecyclePhasedSmartLifecyclePersistenceExceptionTranslatorReactiveRedisConnectionFactoryRedisConnectionFactory

Connection factoryLettuce ベースの接続を作成します。

このファクトリは、getConnection() を呼び出すたびに新しい LettuceConnection を作成します。複数の LettuceConnection はデフォルトで単一のスレッドセーフなネイティブ接続を共有しますが、LettuceConnection とその clustered variant はスレッドセーフではないため、インスタンスをスレッド間で共有すべきではありません。

共有ネイティブ接続は LettuceConnection によって閉じられることはないため、デフォルトでは getConnection() で検証されません。必要に応じて、setValidateConnection(boolean) を使用してこの動作を変更してください。shareNativeConnection が true の場合、共有接続は通常の操作に使用され、LettuceConnectionProvider は、接続を共有しないブロッキングおよび tx 操作のみの接続を選択するために使用されます。ネイティブ接続共有が無効になっている場合、新しい (またはプールされた) 接続がすべての操作に使用されます。

LettuceConnectionFactory は、環境構成と client configuration を使用して構成する必要があります。Lettuce は、次の環境構成をサポートします。

この接続ファクトリは、柔軟なライフサイクル制御のために InitializingBeanSmartLifecycle を実装します。接続を取得するには、initializedstarted である必要があります。デフォルトでは、この Initializationstarts、Bean、early です。必要に応じて、この接続ファクトリを Lifecycle.stop() および restart にすることができます。early startup を無効にすると、auto-startup が有効になっている場合にライフサイクル管理がコンテナーのリフレッシュに委ねられます。

作成者:
Costin Leau, Jennifer Hickey, Thomas Darimont, Christoph Strobl, Mark Paluch, Bal á zs N é meth, Ruben Cervilla, Luis De Bello, Andrea Como, Chris Bono, John Blum
  • コンストラクターの詳細

  • メソッドの詳細

    • createRedisConfiguration

      public static RedisConfiguration createRedisConfiguration(StringSE redisUri)
      以下に従って、URISE に基づいて RedisConfiguration を作成します。
      パラメーター:
      redisUri - RedisURI 形式の接続 URI。
      戻り値:
      Redis URI を表す適切な RedisConfiguration インスタンス。
      導入:
      2.5.3
      関連事項:
    • createRedisConfiguration

      public static RedisConfiguration createRedisConfiguration(io.lettuce.core.RedisURI redisUri)
      以下に従って、RedisURI に基づいて RedisConfiguration を作成します。
      パラメーター:
      redisUri - 接続 URI。
      戻り値:
      Redis URI を表す適切な RedisConfiguration インスタンス。
      導入:
      2.5.3
      関連事項:
      • RedisURI
    • setExecutor

      public void setExecutor(AsyncTaskExecutor executor)
      クラスター全体でコマンドを非同期に実行するために使用される executor を構成します。
      パラメーター:
      executor - executor は、クラスター全体でコマンドを非同期に実行していました。
      導入:
      3.2
    • getHostName

      public StringSE getHostName()
      現在のホストを返します。
      戻り値:
      ザホスト。
    • setHostName

      @DeprecatedSE public void setHostName(StringSE hostName)
      使用すべきではありません。
      2.0 以降、RedisStandaloneConfiguration を使用してホスト名を構成します。
      ホスト名を設定します。
      パラメーター:
      hostName - 設定するホスト名。
    • getPort

      public int getPort()
      現在のポートを返します。
      戻り値:
      ポート。
    • setPort

      @DeprecatedSE public void setPort(int port)
      使用すべきではありません。
      2.0 以降、RedisStandaloneConfiguration を使用してポートを構成します。
      ポートを設定します。
      パラメーター:
      port - 設定するポート。
    • setPipeliningFlushPolicy

      public void setPipeliningFlushPolicy(LettuceConnection.PipeliningFlushPolicy pipeliningFlushPolicy)
      パイプラインを使用する場合のフラッシュポリシーを構成します。設定されていない場合、デフォルトは flush on each command です。
      パラメーター:
      pipeliningFlushPolicy - コマンドが Redis 接続に書き込まれるタイミングを制御するためのフラッシュポリシー。
      導入:
      2.3
      関連事項:
    • getTimeout

      public long getTimeout()
      接続タイムアウトを返します(ミリ秒単位)。
      戻り値:
      接続タイムアウト。
    • setTimeout

      @DeprecatedSE public void setTimeout(long timeout)
      使用すべきではありません。
      2.0 以降、LettuceClientConfiguration を使用してタイムアウトを構成します。
      接続タイムアウトを設定します(ミリ秒単位)。
      パラメーター:
      timeout - タイムアウト。
      例外:
      IllegalStateExceptionSE - LettuceClientConfiguration が不変の場合。
    • isUseSsl

      public boolean isUseSsl()
      SSL を使用するかどうかを返します。
      戻り値:
      SSL の使用。
    • setUseSsl

      @DeprecatedSE public void setUseSsl(boolean useSsl)
      使用すべきではありません。
      2.0 以降、LettuceClientConfiguration を使用して SSL の使用を構成します。
      SSL 接続を使用するように設定します。
      パラメーター:
      useSsl - SSL を使用する場合は true。
      例外:
      IllegalStateExceptionSE - LettuceClientConfiguration が不変の場合。
    • isVerifyPeer

      public boolean isVerifyPeer()
      SSL 使用時に証明書の有効性 / ホスト名チェックを検証するかどうかを返します。
      戻り値:
      SSL を使用するときにピアを検証するかどうか。
    • setVerifyPeer

      @DeprecatedSE public void setVerifyPeer(boolean verifyPeer)
      使用すべきではありません。
      2.0 以降、LettuceClientConfiguration を使用してピア検証を構成します。
      SSL を使用する場合に、証明書の有効性の検証 / ホスト名チェックを使用するように設定します。
      パラメーター:
      verifyPeer - ホスト名を確認しない場合は false。
      例外:
      IllegalStateExceptionSE - LettuceClientConfiguration が不変の場合。
    • isStartTls

      public boolean isStartTls()
      StartTLS を発行するかどうかを返します。
      戻り値:
      StartTLS の使用。
    • setStartTls

      @DeprecatedSE public void setStartTls(boolean startTls)
      使用すべきではありません。
      2.0 以降、LettuceClientConfiguration を使用して StartTLS を構成します。
      StartTLS を発行するように設定します。
      パラメーター:
      startTls - StartTLS を発行する場合は true。
      例外:
      IllegalStateExceptionSE - LettuceClientConfiguration が不変の場合。
    • getValidateConnection

      public boolean getValidateConnection()
      ネイティブ Lettuce 接続の検証が有効になっているかどうかを示します。
      戻り値:
      接続検証が有効になっています。
    • setValidateConnection

      public void setValidateConnection(boolean validateConnection)
      getConnection() への呼び出しで共有ネイティブ Lettuce 接続の検証を有効にします。検証が失敗した場合、新しい接続が作成されて使用されます。

      Lettuce は、close が呼び出されるまで自動的に再接続します。これは、共有ネイティブ接続が使用されている場合、LettuceConnection を介して発生することはないため、デフォルトは false です。

      これを true に設定すると、新しい接続ごとにサーバーへのラウンドトリップ呼び出しが発生するため、この設定は、接続の共有が有効で、ネイティブ Lettuce 接続をアクティブに閉じるコードがある場合にのみ使用する必要があります。

      パラメーター:
      validateConnection - 接続検証を有効にします。
    • getShareNativeConnection

      public boolean getShareNativeConnection()
      複数の LettuceConnection が単一のネイティブ接続を共有する必要があるかどうかを示します。
      戻り値:
      ネイティブ接続を共有しました。
    • setShareNativeConnection

      public void setShareNativeConnection(boolean shareNativeConnection)
      複数の LettuceConnection が単一のネイティブ接続を共有できるようにします。false に設定すると、LettuceConnection でのすべての操作でソケットが開閉します。
      パラメーター:
      shareNativeConnection - 接続の共有を有効にします。
    • getEagerInitialization

      public boolean getEagerInitialization()
      shared connections を積極的に初期化する必要があることを示します。積極的な初期化では、接続ファクトリ構成の早期検証を可能にするために、startup 中に実行中の Redis インスタンスが必要です。積極的な初期化は、リアクティブ API の使用中に接続がブロックされるのを防ぐため、リアクティブ API の使用に推奨されます。
      戻り値:
      {@link true} 共有接続が start() で初期化される場合。
      導入:
      2.2
      関連事項:
    • setEagerInitialization

      public void setEagerInitialization(boolean eagerInitialization)
      shared connections の先行初期化を有効にします。
      パラメーター:
      eagerInitialization - afterPropertiesSet() で先行した接続共有接続の初期化を有効にします。
      導入:
      2.2
    • getDatabase

      public int getDatabase()
      データベースのインデックスを返します。
      戻り値:
      データベースインデックス。
    • setDatabase

      @DeprecatedSE public void setDatabase(int index)
      使用すべきではありません。
      3.2 以降、RedisStandaloneConfigurationRedisSocketConfigurationRedisSentinelConfiguration、または RedisStaticMasterReplicaConfiguration を使用してデータベースインデックスを構成します。
      この接続ファクトリが使用するデータベースのインデックスを設定します。デフォルトは 0 です。
      パラメーター:
      index - データベースインデックス。
    • getClientName

      @Nullable public StringSE getClientName()
      クライアント名を返します。
      戻り値:
      クライアント名。設定されていない場合は null。
      導入:
      2.1
    • setClientName

      @DeprecatedSE public void setClientName(@Nullable StringSE clientName)
      使用すべきではありません。
      LettuceClientConfiguration を使用してクライアント名を構成します。
      この接続ファクトリが使用するクライアント名を設定します。
      パラメーター:
      clientName - クライアント名。null にすることができます。
      例外:
      IllegalStateExceptionSE - LettuceClientConfiguration が不変の場合。
      導入:
      2.1
    • getNativeClient

      @Nullable public io.lettuce.core.AbstractRedisClient getNativeClient()
      このインスタンスで使用されるネイティブ AbstractRedisClient を返します。クライアントは the bean initialization lifecycle の一部として初期化され、この接続ファクトリが初期化された場合にのみ使用できます。

      構成に応じて、クライアントは RedisClient または RedisClusterClient のいずれかになります。

      戻り値:
      ネイティブ AbstractRedisClient。初期化されていない場合は null になる可能性があります。
      導入:
      2.5
      関連事項:
    • getRequiredNativeClient

      public io.lettuce.core.AbstractRedisClient getRequiredNativeClient()
      このインスタンスで使用されるネイティブ AbstractRedisClient を返します。クライアントは the bean initialization lifecycle の一部として初期化され、この接続ファクトリが初期化された場合にのみ使用できます。まだ初期化されていない場合は、IllegalStateExceptionSE をスローします。

      構成に応じて、クライアントは RedisClient または RedisClusterClient のいずれかになります。

      戻り値:
      ネイティブ AbstractRedisClient
      例外:
      IllegalStateExceptionSE - まだ初期化されていない場合。
      導入:
      2.5
      関連事項:
    • getPassword

      @Nullable public StringSE getPassword()
      Redis サーバーでの認証に使用されるパスワードを返します。
      戻り値:
      認証用のパスワード。設定されていない場合は null。
    • setPassword

      @DeprecatedSE public void setPassword(StringSE password)
      使用すべきではありません。
      2.0 以降、RedisStandaloneConfigurationRedisSentinelConfigurationRedisClusterConfiguration を使用してパスワードを構成します。
      Redis サーバーでの認証に使用するパスワードを設定します。
      パラメーター:
      password - 設定するパスワード
    • getShutdownTimeout

      public long getShutdownTimeout()
      RedisClient をシャットダウンするためのシャットダウンタイムアウトを返します(ミリ秒単位)。
      戻り値:
      シャットダウンタイムアウト。
      導入:
      1.6
    • setShutdownTimeout

      @DeprecatedSE public void setShutdownTimeout(long shutdownTimeout)
      使用すべきではありません。
      2.0 以降、LettuceClientConfiguration を使用してシャットダウンタイムアウトを構成します。
      RedisClient をシャットダウンするためのシャットダウンタイムアウトを設定します(ミリ秒単位)。
      パラメーター:
      shutdownTimeout - シャットダウンタイムアウト。
      例外:
      IllegalStateExceptionSE - LettuceClientConfiguration が不変の場合。
      導入:
      1.6
    • getClientResources

      @Nullable public io.lettuce.core.resource.ClientResources getClientResources()
      インフラストラクチャを再利用するために ClientResources を取得します。
      戻り値:
      設定されていない場合は null。
      導入:
      1.7
    • setClientResources

      @DeprecatedSE public void setClientResources(io.lettuce.core.resource.ClientResources clientResources)
      使用すべきではありません。
      2.0 以降、LettuceClientConfiguration を使用して ClientResources を構成します。
      クライアントインフラストラクチャを再利用するように ClientResources を設定します。
      リソースを共有しない場合は null に設定します。
      パラメーター:
      clientResources - null でもかまいません。
      例外:
      IllegalStateExceptionSE - LettuceClientConfiguration が不変の場合。
      導入:
      1.7
    • getClientConfiguration

      public LettuceClientConfiguration getClientConfiguration()
      戻り値:
      LettuceClientConfiguration
      導入:
      2.0
    • getStandaloneConfiguration

      public RedisStandaloneConfiguration getStandaloneConfiguration()
      戻り値:
      RedisStandaloneConfiguration
      導入:
      2.0
    • getSocketConfiguration

      @Nullable public RedisSocketConfiguration getSocketConfiguration()
      戻り値:
      RedisSocketConfiguration または設定されていない場合は null。
      導入:
      2.1
    • getSentinelConfiguration

      @Nullable public RedisSentinelConfiguration getSentinelConfiguration()
      戻り値:
      RedisSentinelConfiguration は null の可能性があります。
      導入:
      2.0
    • getClusterConfiguration

      @Nullable public RedisClusterConfiguration getClusterConfiguration()
      戻り値:
      RedisClusterConfiguration は null の可能性があります。
      導入:
      2.0
    • getPhase

      public int getPhase()
      次で指定:
      インターフェース PhasedgetPhase 
      次で指定:
      インターフェース SmartLifecyclegetPhase 
    • setPhase

      public void setPhase(int phase)
      このエグゼキュータを一時停止および再開するためのライフサイクルフェーズを指定します。デフォルトは 0 です。
      導入:
      3.2
      関連事項:
    • isAutoStartup

      public boolean isAutoStartup()
      次で指定:
      インターフェース SmartLifecycleisAutoStartup 
      導入:
      3.3
    • setAutoStartup

      public void setAutoStartup(boolean autoStartup)
      コンテナーに含まれる ApplicationContext がリフレッシュされたときに、このライフサイクル接続ファクトリがコンテナーによって自動的に開始されるかどうかを構成します。

      この接続ファクトリは、デフォルトで afterPropertiesSet() 中に早期自動起動に設定され、ライフサイクルの早い段階で Redis 接続を作成できる可能性があります。自動起動が有効になっている場合、接続の作成を ApplicationContext リフレッシュまで遅らせるには、setEarlyStartup(boolean) を参照してください。

      パラメーター:
      autoStartup - 接続ファクトリを自動的に start() する場合は true、それ以外の場合は false。
      導入:
      3.3
      関連事項:
    • isEarlyStartup

      public boolean isEarlyStartup()
      戻り値:
      afterPropertiesSet() 中にコンポーネントを start() するかどうか。
      導入:
      3.3
    • setEarlyStartup

      public void setEarlyStartup(boolean earlyStartup)
      Bean が初期化されるときに、この InitializingBean のコンポーネントライフサイクルを afterPropertiesSet() によって早期に開始するかどうかを構成します。コンポーネントはデフォルトで自動起動になります。

      この方法は auto-startup に関連しており、ApplicationContext のリフレッシュまで Redis クライアントの起動を遅らせるために使用できます。早期起動を無効にしても、自動起動は無効になりません。

      パラメーター:
      earlyStartup - コンポーネントを早期に start() する場合は true、それ以外の場合は false。
      導入:
      3.3
      関連事項:
    • getConvertPipelineAndTxResults

      public boolean getConvertPipelineAndTxResults()
      パイプライン結果を予期されるデータ型に変換するかどうかを指定します。false の場合、LettuceConnection.closePipeline() および {LettuceConnection#exec()} の結果は、Lettuce ドライバーによって返される型になります。
      次で指定:
      インターフェース RedisConnectionFactorygetConvertPipelineAndTxResults 
      戻り値:
      true パイプラインとトランザクションの結果を変換します。それ以外の場合は false
    • setConvertPipelineAndTxResults

      public void setConvertPipelineAndTxResults(boolean convertPipelineAndTxResults)
      パイプライン化されたトランザクション結果を予期されるデータ型に変換するかどうかを指定します。false の場合、LettuceConnection.closePipeline() および {LettuceConnection#exec()} の結果は、Lettuce ドライバーによって返される型になります。
      パラメーター:
      convertPipelineAndTxResults - パイプラインとトランザクションの結果を変換する true。それ以外の場合は false
    • isRedisSentinelAware

      public boolean isRedisSentinelAware()
      戻り値:
      RedisSentinelConfiguration が存在する場合は true。
      導入:
      1.5
    • isClusterAware

      public boolean isClusterAware()
      戻り値:
      RedisClusterConfiguration が存在する場合は true。
      導入:
      1.7
    • start

      public void start()
      次で指定:
      インターフェース Lifecyclestart 
    • stop

      public void stop()
      次で指定:
      インターフェース Lifecyclestop 
    • isRunning

      public boolean isRunning()
      次で指定:
      インターフェース LifecycleisRunning 
    • afterPropertiesSet

      public void afterPropertiesSet()
      次で指定:
      インターフェース InitializingBeanafterPropertiesSet 
    • destroy

      public void destroy()
      次で指定:
      インターフェース DisposableBeandestroy 
    • getConnection

      public RedisConnection getConnection()
      インターフェースからコピーされた説明: RedisConnectionFactory
      Redis との対話に適した connection を返します。
      次で指定:
      インターフェース RedisConnectionFactorygetConnection 
      戻り値:
      Redis と対話するための connection
    • getClusterConnection

      public RedisClusterConnection getClusterConnection()
      インターフェースからコピーされた説明: RedisConnectionFactory
      Redis クラスターとの対話に適した connection を返します。
      次で指定:
      インターフェース RedisConnectionFactorygetClusterConnection 
      戻り値:
      Redis クラスターと対話するための connection
    • getSentinelConnection

      public RedisSentinelConnection getSentinelConnection()
      インターフェースからコピーされた説明: RedisConnectionFactory
      Redis Sentinel との対話に適した connection を返します。
      次で指定:
      インターフェース RedisConnectionFactorygetSentinelConnection 
      戻り値:
      Redis Sentinel と対話するための connection
    • doCreateLettuceConnection

      protected LettuceConnection doCreateLettuceConnection(@Nullable io.lettuce.core.api.StatefulRedisConnection<byte[],byte[]> sharedConnection, LettuceConnectionProvider connectionProvider, long timeout, int database)
      LettuceConnection 作成用のカスタマイズフック。
      パラメーター:
      sharedConnection - getShareNativeConnection() が true の場合、共有 StatefulRedisConnection。それ以外の場合は null。
      connectionProvider - 接続を解放する LettuceConnectionProvider
      timeout - TimeUnit.MILLISECONDSSE でのコマンドタイムアウト。
      database - 操作するデータベースインデックス。
      戻り値:
      LettuceConnection
      例外:
      IllegalArgumentExceptionSE - 必須パラメーターが null の場合。
      導入:
      2.2
    • doCreateLettuceClusterConnection

      protected LettuceClusterConnection doCreateLettuceClusterConnection(@Nullable io.lettuce.core.cluster.api.StatefulRedisClusterConnection<byte[],byte[]> sharedConnection, LettuceConnectionProvider connectionProvider, ClusterTopologyProvider topologyProvider, ClusterCommandExecutor clusterCommandExecutor, DurationSE commandTimeout)
      LettuceClusterConnection 作成用のカスタマイズフック。
      パラメーター:
      sharedConnection - getShareNativeConnection() が true の場合、共有 StatefulRedisConnection。それ以外の場合は null。
      connectionProvider - 接続を解放する LettuceConnectionProvider
      topologyProvider - ClusterTopologyProvider
      clusterCommandExecutor - 接続を解放する ClusterCommandExecutor
      commandTimeout - コマンドタイムアウト DurationSE
      戻り値:
      LettuceConnection
      例外:
      IllegalArgumentExceptionSE - 必須パラメーターが null の場合。
      導入:
      2.2
    • getReactiveConnection

      public org.springframework.data.redis.connection.lettuce.LettuceReactiveRedisConnection getReactiveConnection()
      次で指定:
      インターフェース ReactiveRedisConnectionFactorygetReactiveConnection 
      戻り値:
      リアクティブ Redis 接続。
    • getReactiveClusterConnection

      public org.springframework.data.redis.connection.lettuce.LettuceReactiveRedisClusterConnection getReactiveClusterConnection()
      次で指定:
      インターフェース ReactiveRedisConnectionFactorygetReactiveClusterConnection 
      戻り値:
      リアクティブ Redis クラスター接続。
    • initConnection

      public void initConnection()
      native connection sharing が有効になっている場合は共有接続を初期化し、既存の接続をリセットします。
    • resetConnection

      public void resetConnection()
      基礎となる共有接続をリセットして、次のアクセスで再初期化します。
    • validateConnection

      public void validateConnection()
      共有接続を検証し、無効な場合は再初期化します。
    • translateExceptionIfPossible

      public DataAccessException translateExceptionIfPossible(RuntimeExceptionSE ex)
      次で指定:
      インターフェース PersistenceExceptionTranslatortranslateExceptionIfPossible 
    • getSharedConnection

      @Nullable protected io.lettuce.core.api.StatefulRedisConnection<byte[],byte[]> getSharedConnection()
      戻り値:
      命令型 API を使用するための byte[] エンコーディングを使用した共有接続。connection sharing が無効になっている場合、または Redis クラスターに接続されている場合は null。
    • getSharedClusterConnection

      @Nullable protected io.lettuce.core.cluster.api.StatefulRedisClusterConnection<byte[],byte[]> getSharedClusterConnection()
      戻り値:
      命令型 API を使用するための byte[] エンコーディングを使用した共有クラスター接続。connection sharing が無効になっている場合、または Redis スタンドアロン / Sentinel/ マスターレプリカに接続されている場合は null。
      導入:
      2.5.7
    • getSharedReactiveConnection

      @Nullable protected io.lettuce.core.api.StatefulConnection<ByteBufferSE,ByteBufferSE> getSharedReactiveConnection()
      戻り値:
      リアクティブ API で使用するための ByteBufferSE エンコーディングを使用した共有接続。connection sharing が無効になっている場合は null。
      導入:
      2.0.1
    • doCreateConnectionProvider

      protected LettuceConnectionProvider doCreateConnectionProvider(io.lettuce.core.AbstractRedisClient client, io.lettuce.core.codec.RedisCodec<?,?> codec)
      AbstractRedisClient および RedisCodec を指定して LettuceConnectionProvider を作成します。この接続ファクトリの構成は、作成された接続プロバイダーの型を指定します。このメソッドは、RedisClient または RedisClusterClient のいずれかの LettuceConnectionProvider を作成します。サブクラスは、このメソッドをオーバーライドして、接続プロバイダーを装飾する場合があります。
      パラメーター:
      client - RedisClient または RedisClusterClient のいずれかを null にすることはできません。
      codec - 接続の作成に使用されます。null であってはなりません。デフォルトでは、byte[] コーデック。リアクティブ接続には ByteBufferSE コーデックが必要です。
      戻り値:
      接続プロバイダー。
      導入:
      2.1
    • createClient

      protected io.lettuce.core.AbstractRedisClient createClient()