需求:
要統計乙個頁面的訪問人數,如果訪問量大時,頻繁讀寫資料庫,而且操作的是同乙個資料,可能會對效能造成影響。
解決:
把資料放在快取中,定期和資料庫同步,設定容器關閉***,關閉容器前,將資料同步到資料庫。
現在系統中快取用的是redis。redis一般的應用是提供查詢效率,很少更新,更新也是直接更新資料庫,清空快取。但現在情況不同,更新是直接在快取中更新,要在清空快取前,將資料同步到資料庫中。
清空快取有兩種情況:1、設定的過期時間到了;2、設定的最大記憶體滿了,要清理部分資料。
只要監聽到這兩個事件,在這兩個事件執行之前同步到資料庫中就行了。
redis確實可以監聽到這兩個事件,如下所示,不過,是在刪除之後通知的。這就不能滿足我的需求了。
不過還是把**整理下,以防以後用的到。
參考:
redis過期事件監聽
1 redis配置檔案修改 redis.windows.conf與 redis.windows service.conf都要修改 notify keyspace events ex2 新增redis配置檔案,訂閱過期事件訊息 keyevent 1 expired 其中1代表操作redis中的db1,...
redis 高階功能,過期事件監聽
不談應用場景的技術都是道聽途說 這個問題解決的方案就有多種了,我們可以通過mq來進行,現在大多的mq都帶有死信佇列的機制,我們可以通過這個機制來完成,其次也可以通過quartz的輪詢方式的完成,過程不表選擇合適的應對當前的需求即可。當然本次主要是解決第乙個需求,所以只談如何使用redis來解決。3....
spring 事件監聽
用乙個簡單的例子來實現spring事件監聽的功能 這個例子主要功能是,記錄那些使用者是第一次登入系統,如果使用者是第一次登入系統,則呼叫spring的事件監聽,記錄這些使用者。主要用到的spring的類和介面有 這兩者構成了觀察者模式 observer 下面讓我們來看下實現 private stri...