Redis行为,多个并发程序在同一个散列键上执行read / del

时间:2013-06-24 11:42:26

标签: concurrency transactions redis jedis

我有一个程序(program_1)(基于Jedis)定期写入Redis HASH(KEY_1)。我有另一个定期执行的程序(program_2)(单独的JVM进程),在Redis事务中执行以下操作:

        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在下次program_1运行时删除了HASH(使用KEY_1),它将再次创建HASH。它是否正确 ?

1 个答案:

答案 0 :(得分:6)

是。 Redis is single threadedtransactions block until they finish,因此如果program_2启动,则当program1再次运行时,散列KEY_1将不再存在。