Java實現redis事務
阿新 • • 發佈:2019-01-07
1. 正常執行的事務
上述事務正常執行,執行完後,再執行@Test public void test() { Jedis jedis = new Jedis("localhost"); Transaction transaction = jedis.multi(); transaction.lpush("key", "11"); transaction.lpush("key", "22"); transaction.lpush("key", "33"); List<Object> list = transaction.exec(); }
System.out.println(jedis.lrange("key",0,10));
會將上述事務中插入redis中的資料全部打印出來2. 執行事務的過程中丟擲異常
上述程式碼執行事務的過程中會丟擲異常,導致事務失敗,所以全部無效,再執行@Test public void test() { Jedis jedis = new Jedis("localhost"); try { Transaction transaction = jedis.multi(); transaction.lpush("key", "11"); transaction.lpush("key", "22"); int a = 6 / 0; transaction.lpush("key", "33"); List<Object> list = transaction.exec(); } catch (Exception e) { } }
System.out.println(jedis.lrange("key",0,10));
打印出的結果為空
結論: 事務要麼全部執行成功,要麼全部不執行