Java开源缓存框架介绍(OSCache,JSC)
OSCache是个一个广泛采用的高性能的J2EE缓存框架,OSCache能用于任何Java应用程序的普通的缓存解决方案。
有一个疑惑。就是JAVA缓存框架与memcache有什么区别呢?我把所有数据查询出来放在memcache里面不行么?比如说oscache与memcache适用场合有什么区别呢?
天蓬老师2017-04-17 13:32:08
OSCache好久沒更新了,建議多看看EHCache的官方文件。
ehcache這種jvm的快取和memcache這種io等級的快取還是有明顯差別的,以下差異決定了他們會在不同的場景下使用。 优点
: 沒有IO開銷會有更高的效率,使用起來也更有彈性。 缺点
: 但公用jvm記憶體也會對應用程式本身有影響,另外多個應用程式共享就比較苦難了。 (ehcache有一個不使用jvm記憶體的方案)
伊谢尔伦2017-04-17 13:32:08
OSCache或EHCache這種,主要的應用場景大多是應用程式內快取。也就是我這一個程式裡使用的快取。所有的緩存在自己寫的這個程式裡面。
而 memcache 是獨立的另一個進程,是獨立的緩存,緩存的資料保存的另一個進程的記憶體中。差別在我看來有兩點:
天蓬老师2017-04-17 13:32:08
個人感覺memcache就類似一個對象的容器,只是提供了簡單的放入對象,移出對象的功能,可以想像成是一個Map。
而OSCache是在這種物件容器的基礎上進行了封裝,提供了更強大的功能,可以透過簡單設定檔來實現一些內容的自動緩存,而直接使用memcache需要額外寫很多快取的羅輯和策略程式碼。
大家讲道理2017-04-17 13:32:08
使用緩存,例如講一些固定的master資料快取起來,網站效能提升5-10倍非常容易。我們使用EHCache輕輕鬆松將一個選課系統的表現提升了7-8倍。
使用緩存,最麻煩的就是處理資料的同步。例如一個redis快取伺服器、一個mysql伺服器,你可以寫資料時同時寫兩個資料庫,但是處理事務會有問題,關於快取同步,還是比較麻煩的事情
PHP中文网2017-04-17 13:32:08
OSCache或EHCache這種是JVM緩存,它不能在多個應用或說不能被你的叢集共享,這樣就會造成記憶體的浪費,適用於不需要叢集的小型應用。 memcache 獨立的緩存,可以被叢集或多個應用程式共享,適用於比較大一些的應用程式吧。
PHP中文网2017-04-17 13:32:08
OSCache或EHCache常用於伺服器本地緩存,直接使用的話,只能單一應用進程訪問,如果開了多個進程或部署多台伺服器的話,每個進程只能存取本地的緩存,如果需要緩存同步,需要寫入相關的同步程式碼。 ehcache還支援RMI、JGroups、JMS的分散式緩存,就不需要手寫同步程式碼了,還可以搭建單獨的EhCache Server,這種情況就跟memcache差不多了。
memcache快取是單獨的進程,好處是使用進程之間少了快取同步,因為資料在memcache上只有一份,而不是ehcache在每個進程上都有一份;但存取需要進程間通信,多了通訊的開銷。