共計 1400 個字符,預計需要花費 4 分鐘才能閱讀完成。
自動寫代碼機器人,免費開通
丸趣 TV 小編給大家分享一下 Redis 事務和 pipleline 是什么,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!
1、reidis 事務
Redis 事務可以一次執行多個命令,并且帶有以下三個重要的保證:
批量操作在發送 EXEC 命令前被放入隊列緩存。收到 EXEC 命令后進入事務執行,事務中任意命令執行失敗,其余的命令依然被執行。在事務執行過程,其他客戶端提交的命令請求不會插入到事務執行命令序列中。
一個事務從開始到執行會經歷以下三個階段:
開始事務。命令入隊。執行事務。
MULTI 開始一個事務,然后將多個命令入隊到事務中,最后由 EXEC 命令觸發事務,一并執行事務中的所有命令:
1、事務執行
2、watch
監視一個 (或多個) key,如果在事務執行之前這個 (或這些) key 被其他命令所改動,那么事務將被打斷。
3、discard
取消事務,放棄執行事務塊內的所有命令。
2、jedis 代碼 1、配置支持事務
template.setEnableTransactionSupport(true);
2、代碼:
redisTemplate.opsForValue().set( aaa , 321);
redisTemplate.watch( aaa
redisTemplate.multi();
redisTemplate.opsForValue().set( aaa , 123);
redisTemplate.opsForValue().set( bbb , 123);
redisTemplate.exec();
3、piplelinejedis 代碼:
Map String, Object map = new HashMap ();
map.put(aaa , 111);
map.put(bbb , 222);
map.put(ccc , 3333);
List list = redisTemplate.executePipelined(new RedisCallback Object () {
@Override
public Object doInRedis(RedisConnection redisConnection) throws DataAccessException {redisConnection.openPipeline(); for (Map.Entry String, Object mapEntry : map.entrySet()) {redisConnection.set(redisTemplate.getKeySerializer().serialize(mapEntry.getKey()), redisTemplate.getValueSerializer().serialize(mapEntry.getValue()));
} return null;
}, redisTemplate.getValueSerializer());
System.out.println(redisUtil.get( aaa));
System.out.println(redisUtil.get( bbb));
System.out.println(redisUtil.get( ccc));
看完了這篇文章,相信你對 Redis 事務和 pipleline 是什么有了一定的了解,想了解更多相關知識,歡迎關注丸趣 TV 行業資訊頻道,感謝各位的閱讀!
向 AI 問一下細節
丸趣 TV 網 – 提供最優質的資源集合!
正文完