1. 程式人生 > >redis 實現樂觀鎖

redis 實現樂觀鎖

轉載務必說明出處:https://blog.csdn.net/LiaoHongHB/article/details/83410650

1、redis通過事務機制中watch命令可以實現Java樂觀鎖機制

public void watch() {
        try {
            String watchKeys = "watchKeys";
            jedis.set(watchKeys, "value");
            //監聽key為watchKeys的值
            jedis.watch(watchkeys);

            //開啟事務
            Transaction tx = jedis.multi();

            //watchKeys自增加一
            tx.incr(watchKeys);

            //執行事務,如果其他執行緒對watchKeys中的value進行修改,則該事務將不會執行
            //通過redis事務以及watch命令實現Java的樂觀鎖
            List<Object> exec = tx.exec();
            if (exec == null) {
                System.out.println("事務未執行");
            } else {
                System.out.println("事務成功執行,watchKeys的value成功修改");
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            jedis.close();
        }
}