我有一个程序(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。它是否正确 ?
答案 0 :(得分:6)
是。 Redis is single threaded和transactions block until they finish,因此如果program_2启动,则当program1再次运行时,散列KEY_1将不再存在。