복붙노트

[REDIS] 동시에 여러 프로그램 레디 스 동작은 읽기 / 일을 같은 해시 키 델

REDIS

동시에 여러 프로그램 레디 스 동작은 읽기 / 일을 같은 해시 키 델

나는 프로그램 (program_1) (Jedis 기반을)했다고 정기적으로 레디 스의 HASH (KEY_1)에 기록합니다. 나는이 실행 정기적으로, 그리고 레디 스 트랜잭션에 다음을한다는 것을 다른 프로그램 (program_2) (별도의 JVM 프로세스)했습니다 :

        Transaction transaction = redis.multi();
        //get the current entity table
        Response<Map<String, String>> currentEntityTableResponse = transaction.hgetAll(KEY_1);
        transaction.del(KEY_1);
        transaction.exec();

program_2이 (KEY_1와) 해시를 삭제하면 내 가정은 다음 시간 program_1가 다시 해시를 생성합니다 실행됩니다. 이 올바른지 ?

해결법

  1. ==============================

    1.예. 레디 스는 단일 스레드이며, 그들이 마칠 때까지 거래 program_2 시작은, 해시 KEY_1가 더 이상 때 ​​다시 프로그램 1 실행이 존재합니다 그렇다면, 차단하지 않습니다.

    예. 레디 스는 단일 스레드이며, 그들이 마칠 때까지 거래 program_2 시작은, 해시 KEY_1가 더 이상 때 ​​다시 프로그램 1 실행이 존재합니다 그렇다면, 차단하지 않습니다.

  2. from https://stackoverflow.com/questions/17274638/redis-behavior-with-multiple-concurrent-programs-doing-read-del-on-the-same-hash by cc-by-sa and MIT license