我有一个程序(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。它是否正确 ?

最佳答案

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

09-26 18:34
查看更多