ホームページ  >  記事  >  データベース  >  Redis トランザクションとパイプラインについて

Redis トランザクションとパイプラインについて

藏色散人
藏色散人転載
2020-11-05 16:04:032478ブラウズ

次のコラム Redis チュートリアル では、Redis トランザクションとパイプラインについて紹介します。困っている友人の役に立てば幸いです。

Redis トランザクションとパイプラインについて

#1. reidis トランザクション

Redis トランザクションは一度に複数のコマンドを実行でき、次の 3 つの重要なコマンドがあります。保証:

    バッチ操作は、EXEC コマンドを送信する前にキュー キャッシュに入れられます。
  • EXEC コマンドを受信した後、トランザクションの実行を開始します。トランザクション内のいずれかのコマンドが実行に失敗した場合でも、残りのコマンドは引き続き実行されます。
  • トランザクション実行プロセス中、他のクライアントによって送信されたコマンド要求は、トランザクション実行コマンド シーケンスに挿入されません。
トランザクションは、開始から実行まで次の 3 つの段階を経ます:

    トランザクションの開始。
  • キューに参加するコマンド。
  • トランザクションを実行します。

MULTI トランザクションを開始し、複数のコマンドをトランザクションにキューに入れ、最後に EXEC コマンドによってトランザクションがトリガーされます。 , トランザクション内のすべてのコマンドを一緒に実行します:

1. トランザクションの実行

Redis トランザクションとパイプラインについて

2. watch

1 つ (または複数) のキーを監視します。トランザクションが実行される前に、この (またはこれらの) キーが他のコマンドによって変更された場合、トランザクションは中断されます。

Redis トランザクションとパイプラインについてRedis トランザクションとパイプラインについて

3. 破棄

トランザクションをキャンセルして譲渡します。 up 実行 トランザクション ブロック内のすべてのコマンド。

Redis トランザクションとパイプラインについて

2. jedis コード

1. 設定サポートトランザクション
template.setEnableTransactionSupport(true);
<br>

2. コード:

##

 redisTemplate.opsForValue().set("aaa", 321);
redisTemplate.watch("aaa");
redisTemplate.multi();
redisTemplate.opsForValue().set("aaa", 123);
redisTemplate.opsForValue().set("bbb", 123);
redisTemplate.exec();
<br>
3.pipleline

jedis コード:

Map<string> map = new HashMap();
map.put("aaa", 111);
map.put("bbb", 222);
map.put("ccc", 3333);

List list = redisTemplate.executePipelined(new RedisCallback<object>() {
    @Override
    public Object doInRedis(RedisConnection redisConnection) throws DataAccessException {
        redisConnection.openPipeline();        for (Map.Entry<string> mapEntry : map.entrySet()) {
            redisConnection.set(redisTemplate.getKeySerializer().serialize(mapEntry.getKey()), redisTemplate.getValueSerializer().serialize(mapEntry.getValue()));
        }        return null;
    }
}, redisTemplate.getValueSerializer());

System.out.println(redisUtil.get("aaa"));
System.out.println(redisUtil.get("bbb"));
System.out.println(redisUtil.get("ccc"));</string></object></string>
<br>

以上がRedis トランザクションとパイプラインについての詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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