如今的web系統已經愈來愈多的應用緩存技術,並且緩存技術確實是能實足的加強系統性能的。我在項目中也開始接觸一些緩存的需求。java
需求的增加也就帶來了系統的變化,也正爲這種變化我開始思考怎麼讓這些代碼兼容,併爲之後的系統模塊提供比較統一的支持。正好在openfire這個開源項目上獲得了啓發,它的集羣思路我以爲是種不錯的解決方案。git
隨後就開始寫一個簡單的緩存系統,結構很是的簡單,代碼也很是的簡單。說是開源其實也有點過了,只是以爲閉門造車沒有意思,因此將代碼放在github上,若是有高手看到指點一下那我不是賺大了。哈哈。github
github:https://github.com/mini188/j2cacheweb
代碼很是簡單,maven工程引入也很容易,我就不打算對代碼作啥說明,有興趣的朋友下載簡單看看就能明白。 redis
個人測試方法比較簡單,向緩存裏連續寫100萬個對象,而後看看處理的性能。說明一下,這些測試都是在本機完成的緩存
OS:Windows7 64位服務器
CPU:I5-4210U @ 1.70GHZ 2.40GHZ網絡
RAM:8Gsession
Redis用的是Redis on Windows Redis-x64-3.2.100jvm
總共耗時:2380ms
每毫秒寫入:420條
每秒寫入:420000條
總共耗時:9503ms
每毫秒寫入:105條。
每秒寫入:105000條。
總共耗時:40367ms
每毫秒寫入:24條。
每秒寫入:24000條。
爲了對各類方案進行一些數據上對比,作了一個簡單的寫入測試,使用本地內存作緩存這種方案最高效,寫入量達到42萬每秒。而redis則只達到了24000條/秒,我對redis不是特別熟悉,看到這個數據有點詫異。
我比較懶,沒有測試一段時間內的讀寫性能,只不過從這個簡單的測試中發現,本地內存的效果仍是很高的,若是加上一些其餘的功能,好比網絡傳輸,數據同步等後性能會降低。
只不過redis和ignite差這麼大我沒有搞明白,不知道是否是個人方法不對呢?