之前在工作的過程中做了很多鎖的校驗,有做併發鎖校驗,也有做分布式系統訂單狀態校驗的鎖,但是這次造成線上bug的**是因為自己乙個很小的失誤,這次紀念一下。
這次是在解決批量去操作的時候,去將要批量操作的資料去鎖住,防止併發操作(分布式系統互動要注意這種併發和冪等的操作)。這裡在迴圈中去加了redis的鎖,這個倒是美什麼,但是在每一步迴圈結束的時候去釋放了鎖,而且在發現bug的時候居然定位了很久。這裡去紀念一下這個鎖。
獲取鎖的**
正確的釋放位置 之前在迴圈中釋放redis的鎖 肯定不能防住併發
mongodb的乙個小坑
若collection裡有其他的資料,顯示時注意要往query裡新增true,並且需要放在最前面。解釋 下圖是名為test的collection裡面的資料。可以看到上面5條是一樣的資料,第6條是為了測試故意新增進去的。首先,當你執行命令db.getcollection test find 結果如下。...
Mybatis的乙個小坑
以前一直用的ibatis,前陣子才改用的mybatis,對於一些細節不太了解,所以踩了這個坑。廢話不多說,上 下面是出問題的sql語句 insert into g label obj relation his id label obj relation,id label,followed obj c...
oracle板塊的乙個帖子小糾結了一下
帖子內容 表 字段 name id aaa 1,2,3 bbb 1,2 結果 name id aaa 1 aaa 2 aaa 3 bbb 1 bbb 2 蘭蘭 select name,regexp substr id,1,n from test a left join select level ro...