0
我是Redis的新手,我正在嘗試使用Redis事務,並且希望在以下方案中使用Redis事務。需要知道這樣做是否可行:Java Redis(jedis)事務和排序集
- 開始交易。
- 從排序集中讀取前10個元素。
- A'for循環'爲每個元素做某事。
- 執行。
我試過下面的代碼,但它不能正常工作,因爲我在執行事務之前正在執行<Response>.get()
。
final Transaction tx = jedis.multi();
final Response<Set<Tuple>> tuples = tx.zrangeByScoreWithScores("randomKey", 0d, 100, 0, 10);
for (final Tuple tuple : tuples.get()) {
jedis.incr(tuple);
}
tx.exec(); //In a hope that get and sets happen in a single transaction.
有沒有辦法解決這個問題?
你看着做與reda站點與Lua和EXEC嗎? –
是的,這是我現在正在嘗試的黑客攻擊。希望使用Pipelining和事務來獲得一些東西。 – face
由於您需要數據才能夠遍歷它,所以您必須在客戶端的兩個階段執行此操作,或者使用Lua服務器端。 –