クラス LettuceConnection

java.lang.ObjectSE
org.springframework.data.redis.connection.AbstractRedisConnection
org.springframework.data.redis.connection.lettuce.LettuceConnection
実装されているすべてのインターフェース:
AutoCloseableSEDefaultedRedisConnectionRedisCommandsRedisCommandsProviderRedisConnectionRedisConnectionCommandsRedisGeoCommandsRedisHashCommandsRedisHyperLogLogCommandsRedisKeyCommandsRedisListCommandsRedisPubSubCommandsRedisScriptingCommandsRedisServerCommandsRedisSetCommandsRedisStreamCommandsRedisStringCommandsRedisTxCommandsRedisZSetCommands
既知の直属サブクラス
LettuceClusterConnection

public class LettuceConnection extends AbstractRedisConnection
上に RedisConnection 実装 Lettuce Redis クライアント。

LettuceConnection によって使用される基になる Lettuce RedisClient および StatefulRedisConnection インスタンスはスレッドセーフですが、このクラス自体はスレッドセーフではありません。Redis コマンドやその他の操作を実行するときに、LettuceConnection のインスタンスを複数のスレッド間で共有しないでください。アプリケーションで最適なパフォーマンスが必要な場合は、基盤となる Lettuce クライアントライブラリ (ドライバー) によって提供される低レベルの API に直接アクセスすることをお勧めします。このようなスレッドセーフ保証が可能です。getNativeConnection() を呼び出して、必要に応じてネイティブリソースを使用するだけです。

作成者:
Costin Leau, Jennifer Hickey, Christoph Strobl, Thomas Darimont, David Liu, Mark Paluch, Ninad Divadkar, Tamil Selvan, ihaohong, John Blum
  • コンストラクターの詳細

    • LettuceConnection

      public LettuceConnection(long timeout, io.lettuce.core.RedisClient client)
      新しい LettuceConnection を作成します。
      パラメーター:
      timeout - 接続タイムアウト (ミリ秒単位)
      client - ネイティブ接続をインスタンス化するときに使用する RedisClient 
    • LettuceConnection

      public LettuceConnection(@Nullable io.lettuce.core.api.StatefulRedisConnection<byte[],byte[]> sharedConnection, long timeout, io.lettuce.core.RedisClient client)
      新しい LettuceConnection を作成します。
      パラメーター:
      sharedConnection - 他の LettuceConnection と共有されるネイティブ接続。トランザクションやブロック操作には使用されません
      timeout - 接続タイムアウト (ミリ秒単位)
      client - pub/sub、ブロッキング、tx 接続を行うときに使用する RedisClient 
    • LettuceConnection

      public LettuceConnection(@Nullable io.lettuce.core.api.StatefulRedisConnection<byte[],byte[]> sharedConnection, long timeout, @Nullable io.lettuce.core.AbstractRedisClient client, int defaultDbIndex)
      新しい LettuceConnection を作成します。
      パラメーター:
      sharedConnection - 他の LettuceConnection と共有されるネイティブ接続。トランザクションまたはブロック操作には使用しないでください。
      timeout - 接続タイムアウト (ミリ秒単位)
      client - pub/ サブ接続を行うときに使用する RedisClient
      defaultDbIndex - 専用接続を確立するときに RedisClient とともに使用する db インデックス。
      導入:
      1.7
    • LettuceConnection

      public LettuceConnection(@Nullable io.lettuce.core.api.StatefulRedisConnection<byte[],byte[]> sharedConnection, LettuceConnectionProvider connectionProvider, long timeout, int defaultDbIndex)
      新しい LettuceConnection を作成します。
      パラメーター:
      sharedConnection - 他の LettuceConnection と共有されるネイティブ接続。トランザクションまたはブロック操作には使用しないでください。
      connectionProvider - ネイティブ接続を取得および解放するための接続プロバイダー。
      timeout - 接続タイムアウト (ミリ秒単位)
      defaultDbIndex - 専用接続を確立するときに RedisClient とともに使用する db インデックス。
      導入:
      2.0
  • メソッドの詳細

    • commands

      public RedisCommands commands()
      インターフェースからコピーされた説明: RedisCommandsProvider
      RedisCommands を取得します。
      戻り値:
      決して null にはなりません。
    • geoCommands

      public RedisGeoCommands geoCommands()
      インターフェースからコピーされた説明: RedisCommandsProvider
      RedisGeoCommands を取得します。
      戻り値:
      決して null にはなりません。
    • hashCommands

      public RedisHashCommands hashCommands()
      インターフェースからコピーされた説明: RedisCommandsProvider
      RedisHashCommands を取得します。
      戻り値:
      決して null にはなりません。
    • hyperLogLogCommands

      public RedisHyperLogLogCommands hyperLogLogCommands()
      インターフェースからコピーされた説明: RedisCommandsProvider
      RedisHyperLogLogCommands を取得します。
      戻り値:
      決して null にはなりません。
    • keyCommands

      public RedisKeyCommands keyCommands()
      インターフェースからコピーされた説明: RedisCommandsProvider
      RedisKeyCommands を取得します。
      戻り値:
      決して null にはなりません。
    • listCommands

      public RedisListCommands listCommands()
      インターフェースからコピーされた説明: RedisCommandsProvider
      RedisListCommands を取得します。
      戻り値:
      決して null にはなりません。
    • scriptingCommands

      public RedisScriptingCommands scriptingCommands()
      インターフェースからコピーされた説明: RedisCommandsProvider
      RedisScriptingCommands を取得します。
      戻り値:
      決して null にはなりません。
    • setCommands

      public RedisSetCommands setCommands()
      インターフェースからコピーされた説明: RedisCommandsProvider
      RedisSetCommands を取得します。
      戻り値:
      決して null にはなりません。
    • serverCommands

      public RedisServerCommands serverCommands()
      インターフェースからコピーされた説明: RedisCommandsProvider
      RedisServerCommands を取得します。
      戻り値:
      決して null にはなりません。
    • streamCommands

      public RedisStreamCommands streamCommands()
      インターフェースからコピーされた説明: RedisCommandsProvider
      RedisStreamCommands を取得します。
      戻り値:
      決して null にはなりません。
    • stringCommands

      public RedisStringCommands stringCommands()
      インターフェースからコピーされた説明: RedisCommandsProvider
      RedisStringCommands を取得します。
      戻り値:
      決して null にはなりません。
    • zSetCommands

      public RedisZSetCommands zSetCommands()
      インターフェースからコピーされた説明: RedisCommandsProvider
      RedisZSetCommands を取得します。
      戻り値:
      決して null にはなりません。
    • convertLettuceAccessException

      protected DataAccessException convertLettuceAccessException(ExceptionSE cause)
    • execute

      public ObjectSE execute(StringSE command, byte[]... args)
      インターフェースからコピーされた説明: RedisCommands
      指定された Redis コマンドと指定された引数のネイティブまたは生の実行。

      コマンドは、できる限り解釈を少なくしてそのまま実行されます。引数や結果の処理は呼び出し側の責任になります。

      パラメーター:
      command - Redis commandSE を実行します。null であってはなりません。
      args - オプションのコマンド引数の配列。空の場合もあります。
      戻り値:
      実行結果。null の場合もあります。
    • execute

      @Nullable public ObjectSE execute(StringSE command, @Nullable io.lettuce.core.output.CommandOutput commandOutputTypeHint, byte[]... args)
      指定された引数と一緒に指定されたコマンドの「ネイティブ」または「生」の実行。
      パラメーター:
      command - 実行するコマンド
      commandOutputTypeHint - 使用する出力の型は、(null の場合があります)の場合があります。
      args - 可能なコマンド引数 (null の可能性があります)
      戻り値:
      実行結果。
      関連事項:
    • close

      public void close()
      インターフェースからコピーされた説明: RedisConnection
      接続を閉じるか終了します。
      次で指定:
      インターフェース AutoCloseableSEclose 
      次で指定:
      インターフェース RedisConnectionclose 
      オーバーライド:
      クラス AbstractRedisConnectionclose 
    • isClosed

      public boolean isClosed()
      インターフェースからコピーされた説明: RedisConnection
      基になる接続が閉じているかどうかを示します。
      戻り値:
      接続が閉じている場合は true、それ以外の場合は false。
    • getNativeConnection

      public io.lettuce.core.cluster.api.async.RedisClusterAsyncCommands<byte[],byte[]> getNativeConnection()
      インターフェースからコピーされた説明: RedisConnection
      ネイティブ接続(基になるライブラリ / ドライバオブジェクト)を返します。
      戻り値:
      基になるネイティブオブジェクト
    • isQueueing

      public boolean isQueueing()
      インターフェースからコピーされた説明: RedisConnection
      接続が「キュー」(または「マルチ」)モードであるかどうかを示します。キューイングする場合、EXEC または DISCARD コマンドが発行されるまで、すべてのコマンドが延期されます。キューイングでは結果が返されないため、接続はデータと対話するすべての操作で NULL を返します。
      戻り値:
      接続がキュー / マルチモードの場合は true、それ以外の場合は false
    • isPipelined

      public boolean isPipelined()
      インターフェースからコピーされた説明: RedisConnection
      接続が現在パイプライン化されているかどうかを示します。
      戻り値:
      接続がパイプライン化されている場合は true、それ以外の場合は false
      関連事項:
    • openPipeline

      public void openPipeline()
      インターフェースからコピーされた説明: RedisConnection
      この接続のパイプラインモードをアクティブにします。パイプライン化されると、すべてのコマンドは null を返します(レスポンスは RedisConnection.closePipeline() を介して最後に読み取られます。接続がすでにパイプライン化されているときにこのメソッドを呼び出しても効果はありません。パイプライン化は、レスポンスをすぐにリクエストせずにコマンドを発行するために使用されます。バッチ。MULTI にいくらか似ていますが、パイプラインはアトミック性を保証しません。多くのコマンドを発行するとき(バッチシナリオなど)にのみパフォーマンスを向上させようとします。

      注:

      多くの場合、パフォーマンスのメリットは最小限ですが、使用への影響は少ないため、この機能を使用する前にパフォーマンステストを行うことを検討してください。
      関連事項:
    • closePipeline

      public ListSE<ObjectSE> closePipeline()
      インターフェースからコピーされた説明: RedisConnection
      パイプラインでコマンドを実行し、その結果を返します。接続がパイプライン化されていない場合、空のコレクションが返されます。
      戻り値:
      実行されたコマンドの結果。
    • echo

      public byte[] echo(byte[] message)
      インターフェースからコピーされた説明: RedisConnectionCommands
      サーバーラウンドトリップを介して message を返します。
      パラメーター:
      message - エコーするメッセージ。
      戻り値:
      メッセージまたはパイプライン / トランザクションで使用される場合は null。
      関連事項:
    • ping

      public StringSE ping()
      インターフェースからコピーされた説明: RedisConnectionCommands
      接続のテスト。
      戻り値:
      サーバーレスポンスメッセージ - 通常は PONG。パイプライン / トランザクションで使用される場合は null。
      関連事項:
    • discard

      public void discard()
      インターフェースからコピーされた説明: RedisTxCommands
      RedisTxCommands.multi() の後に発行されたすべてのコマンドを破棄します。
      関連事項:
    • exec

      public ListSE<ObjectSE> exec()
      インターフェースからコピーされた説明: RedisTxCommands
      RedisTxCommands.multi() で開始されたトランザクションでキューに入れられたすべてのコマンドを実行します。
      RedisTxCommands.watch(byte[]...) と一緒に使用する場合、監視対象のキーのいずれかが変更されていると、操作は失敗します。
      戻り値:
      実行された各コマンドに対する応答のリスト。
      関連事項:
    • multi

      public void multi()
      インターフェースからコピーされた説明: RedisTxCommands
      トランザクションブロックの開始をマークします。
      コマンドはキューに入れられ、RedisTxCommands.exec() を呼び出すことによって実行するか、RedisTxCommands.discard() を使用してロールバックすることができます。
      関連事項:
    • select

      public void select(int dbIndex)
      インターフェースからコピーされた説明: RedisConnectionCommands
      正の dbIndex が指定された DB を選択します。
      パラメーター:
      dbIndex - データベースインデックス。
      関連事項:
    • unwatch

      public void unwatch()
      インターフェースからコピーされた説明: RedisTxCommands
      以前のすべての RedisTxCommands.watch(byte[]...) キーをフラッシュします。
      関連事項:
    • watch

      public void watch(byte[]... keys)
      インターフェースからコピーされた説明: RedisTxCommands
      RedisTxCommands.multi() で開始されたトランザクション中の変更について、指定された keys を監視します。
      パラメーター:
      keys - null であってはなりません。
      関連事項:
    • publish

      public LongSE publish(byte[] channel, byte[] message)
      インターフェースからコピーされた説明: RedisPubSubCommands
      指定されたメッセージを指定されたチャネルに公開します。
      パラメーター:
      channel - 公開するチャネル。null であってはなりません。
      message - 公開するメッセージ。null であってはなりません。
      戻り値:
      メッセージを受信したクライアントの数、またはパイプライン / トランザクションで使用されたときに null。
      関連事項:
    • getSubscription

      public Subscription getSubscription()
      インターフェースからコピーされた説明: RedisPubSubCommands
      この接続の現在のサブスクリプションを返します。接続がサブスクライブされていない場合は null を返します。
      戻り値:
      現在のサブスクリプション。使用可能なサブスクリプションがない場合は null。
    • isSubscribed

      public boolean isSubscribed()
      インターフェースからコピーされた説明: RedisPubSubCommands
      現在の接続が(少なくとも 1 つのチャネルに)サブスクライブされているかどうかを示します。
      戻り値:
      接続がサブスクライブされている場合は true、それ以外の場合は false
    • pSubscribe

      public void pSubscribe(MessageListener listener, byte[]... patterns)
      インターフェースからコピーされた説明: RedisPubSubCommands
      指定されたパターンに一致するすべてのチャネルへの接続をサブスクライブします。サブスクライブすると、接続はリスニングモードになり、他のチャネルにサブスクライブするか、サブスクライブを解除することしかできません。接続がサブスクライブ解除されるまで、他のコマンドは受け入れられません。

      この操作はブロックされており、現在のスレッドはすぐに新しいメッセージの待機を開始することに注意してください。

      パラメーター:
      listener - メッセージリスナー。null であってはなりません。
      patterns - チャネル名パターン。null であってはなりません。
      関連事項:
    • subscribe

      public void subscribe(MessageListener listener, byte[]... channels)
      インターフェースからコピーされた説明: RedisPubSubCommands
      指定されたチャネルへの接続をサブスクライブします。サブスクライブすると、接続はリスニングモードになり、他のチャネルにサブスクライブするか、サブスクライブを解除することしかできません。接続がサブスクライブ解除されるまで、他のコマンドは受け入れられません。

      この操作はブロックされており、現在のスレッドはすぐに新しいメッセージの待機を開始することに注意してください。

      パラメーター:
      listener - メッセージリスナー。null であってはなりません。
      channels - チャネル名は null であってはなりません。
      関連事項:
    • setConvertPipelineAndTxResults

      public void setConvertPipelineAndTxResults(boolean convertPipelineAndTxResults)
      パイプライン化されたトランザクション結果を期待されるデータ型に変換する必要があるかどうかを指定します。false の場合、closePipeline() および exec() の結果は、Lettuce ドライバーによって返される型になります。
      パラメーター:
      convertPipelineAndTxResults - パイプラインと tx の結果を変換するかどうか
    • setPipeliningFlushPolicy

      public void setPipeliningFlushPolicy(LettuceConnection.PipeliningFlushPolicy pipeliningFlushPolicy)
      パイプラインを使用する場合のフラッシュポリシーを構成します。
      パラメーター:
      pipeliningFlushPolicy - コマンドが Redis 接続に書き込まれるタイミングを制御するためのフラッシュポリシー。
      導入:
      2.3
      関連事項:
    • switchToPubSub

      protected io.lettuce.core.pubsub.StatefulRedisPubSubConnection<byte[],byte[]> switchToPubSub()
      現在の接続を close() し、Redis サーバーへの新しい pub/ サブ接続を開きます。
      戻り値:
      決して null にはなりません。
    • doCreateSubscription

      protected LettuceSubscription doCreateSubscription(MessageListener listener, io.lettuce.core.pubsub.StatefulRedisPubSubConnection<byte[],byte[]> connection, LettuceConnectionProvider connectionProvider)
      LettuceSubscription を作成するためのカスタマイズフック。
      パラメーター:
      listener - 通知する MessageListener
      connection - Pub/ サブ接続。
      connectionProvider - 接続解放用の LettuceConnectionProvider
      戻り値:
      LettuceSubscription
      導入:
      2.2
    • getConnection

      protected io.lettuce.core.cluster.api.sync.RedisClusterCommands<byte[],byte[]> getConnection()
    • getAsyncDedicatedConnection

      protected io.lettuce.core.cluster.api.async.RedisClusterAsyncCommands<byte[],byte[]> getAsyncDedicatedConnection()
    • doGetAsyncDedicatedConnection

      protected io.lettuce.core.api.StatefulConnection<byte[],byte[]> doGetAsyncDedicatedConnection()
    • isActive

      protected boolean isActive(RedisNode node)
      クラスからコピーされた説明: AbstractRedisConnection
      ping を送信して、ノードがアクティブかどうかを確認します。
      オーバーライド:
      クラス AbstractRedisConnectionisActive 
      戻り値:
    • getSentinelConnection

      protected RedisSentinelConnection getSentinelConnection(RedisNode sentinel)
      クラスからコピーされた説明: AbstractRedisConnection
      RedisSentinelCommands を特定のノードに接続します。
      オーバーライド:
      クラス AbstractRedisConnectiongetSentinelConnection 
      戻り値: