常用的缓存技术 web常用的常用缓存技术有哪些

Java\u7f13\u5b58\u6280\u672f\u5e38\u7528\u7684\u6709\u54ea\u4e9b

\u5e38\u89c1\u7684java\u7f13\u5b58\u6846\u67b6\u6709\uff1a

OSCache
\u3000\u3000OSCache\u662f\u4e2a\u4e00\u4e2a\u5e7f\u6cdb\u91c7\u7528\u7684\u9ad8\u6027\u80fd\u7684J2EE\u7f13\u5b58\u6846\u67b6\uff0cOSCache\u80fd\u7528\u4e8e\u4efb\u4f55Java\u5e94\u7528\u7a0b\u5e8f\u7684\u666e\u901a\u7684\u7f13\u5b58\u89e3\u51b3\u65b9\u6848\u3002
\u3000\u3000OSCache\u6709\u4ee5\u4e0b\u7279\u70b9\uff1a
\u3000\u3000\u7f13\u5b58\u4efb\u4f55\u5bf9\u8c61\uff0c\u4f60\u53ef\u4ee5\u4e0d\u53d7\u9650\u5236\u7684\u7f13\u5b58\u90e8\u5206jsp\u9875\u9762\u6216HTTP\u8bf7\u6c42\uff0c\u4efb\u4f55java\u5bf9\u8c61\u90fd\u53ef\u4ee5\u7f13\u5b58\u3002
\u3000\u3000\u62e5\u6709\u5168\u9762\u7684API--OSCache API\u7ed9\u4f60\u5168\u9762\u7684\u7a0b\u5e8f\u6765\u63a7\u5236\u6240\u6709\u7684OSCache\u7279\u6027\u3002
\u3000\u3000\u6c38\u4e45\u7f13\u5b58--\u7f13\u5b58\u80fd\u968f\u610f\u7684\u5199\u5165\u786c\u76d8\uff0c\u56e0\u6b64\u5141\u8bb8\u6602\u8d35\u7684\u521b\u5efa\uff08expensive-to-create\uff09\u6570\u636e\u6765\u4fdd\u6301\u7f13\u5b58\uff0c\u751a\u81f3\u80fd\u8ba9\u5e94\u7528\u91cd\u542f\u3002

\uff1a\u5bf9\u4e8eJava\u5f00\u53d1\u8005\uff0cJCS\u662f\u4e00\u4e2a\u5f3a\u5927\u7684\uff0c\u7136\u800c\u5374\u7b80\u5355\u6613\u7528\u7684\u7f13\u5b58\u7cfb\u7edf\u3002\u5b83\u4e3a\u684c\u9762\u548cWeb\u5e94\u7528\u7a0b\u5e8f\u63d0\u4f9b\u4e86\u540c\u6837\u7684\u6570\u636e\u7f13\u5b58\u3002\u684c\u9762\u5e94\u7528\u7a0b\u5e8f\u7684\u589e\u957f----\u50cfWeb\u5e94\u7528\u8981\u6c42\u589e\u5f3a\u901f\u5ea6\u548c\u7075\u6d3b\u6027\u4e00\u6837\uff0c\u901a\u8fc7\u4f7f\u7528\u7f13\u5b58\u6570\u636e\u4e5f\u6709\u52a9\u4e8e\u8fbe\u5230\u540c\u6837\u7684\u6548\u679c\u3002 \u600e\u6837\u914d\u7f6e\u548c\u4f7f\u7528JCS\uff0c\u540c\u65f6\u5305\u62ec..

第一章 常用的缓存技术
1、常见的两种缓存

本地缓存:不需要序列化,速度快,缓存的数量与大小受限于本机内存
分布式缓存:需要序列化,速度相较于本地缓存较慢,但是理论上缓存的数量与大小无限(因为缓存机器可以不断扩展)
2、本地缓存

Google guava cache:当下最好用的本地缓存
Ehcache:spring默认集成的一个缓存,以spring cache的底层缓存实现类形式去操作缓存的话,非常方便,但是欠缺灵活,如果想要灵活使用,还是要单独使用Ehcache
Oscache:最经典简单的页面缓存
3、分布式缓存

memcached:分布式缓存的标配
Redis:新一代的分布式缓存,有替代memcached的趋势
3.1、memcached

经典的一致性hash算法
基于slab的内存模型有效防止内存碎片的产生(但同时也需要估计好启动参数,否则会浪费很多的内存)
集群中机器之间互不通信(相较于Jboss cache等集群中机器之间的相互通信的缓存,速度更快<--因为少了同步更新缓存的开销,且更适合于大型分布式系统中使用)
使用方便(这一点是相较于Redis在构建客户端的时候而言的,尽管redis的使用也不困难)
很专一(专做缓存,这一点也是相较于Redis而言的)
3.2、Redis

可以存储复杂的数据结构(5种)
strings-->即简单的key-value,就是memcached可以存储的唯一的一种形式,接下来的四种是memcached不能直接存储的四种格式(当然理论上可以先将下面的一些数据结构中的东西封装成对象,然后存入memcached,但是不推荐将大对象存入memcached,因为memcached的单一value的最大存储为1M,可能即使采用了压缩算法也不够,即使够,可能存取的效率也不高,而redis的value最大为1G)
hashs-->看做hashTable
lists-->看做LinkedList
sets-->看做hashSet,事实上底层是一个hashTable
sorted sets-->底层是一个skipList
有两种方式可以对缓存数据进行持久化
RDB
AOF
事件调度
发布订阅等
4、集成缓存

专指spring cache,spring cache自己继承了ehcache作为了缓存的实现类,我们也可以使用guava cache、memcached、redis自己来实现spring cache的底层。当然,spring cache可以根据实现类来将缓存存在本地还是存在远程机器上。

5、页面缓存

在使用jsp的时候,我们会将一些复杂的页面使用Oscache进行页面缓存,使用非常简单,就是几个标签的事儿;但是,现在一般的企业,前台都会使用velocity、freemaker这两种模板引擎,本身速度就已经很快了,页面缓存使用的也就很少了。

总结:

在实际生产中,我们通常会使用guava cache做本地缓存+redis做分布式缓存+spring cache就集成缓存(底层使用redis来实现)的形式
guava cache使用在更快的获取缓存数据,同时缓存的数据量并不大的情况
spring cache集成缓存是为了简单便捷的去使用缓存(以注解的方式即可),使用redis做其实现类是为了可以存更多的数据在机器上
redis缓存单独使用是为了弥补spring cache集成缓存的不灵活
就我个人而言,如果需要使用分布式缓存,那么首先redis是必选的,因为在实际开发中,我们会缓存各种各样的数据类型,在使用了redis的同时,memcached就完全可以舍弃了,但是现在还有很多公司在同时使用memcached和redis两种缓存。

  • 鍥烘佺‖鐩缂撳瓨鏄粈涔
    绛旓細杞欢缂撳瓨鏄竴绉嶉氳繃杞欢瀹炵幇鐨勫浐鎬佺‖鐩缂撳瓨鎶鏈锛甯哥敤鐨杞欢鍖呮嫭PrimoCache銆丗ancyCache绛夈傝蒋浠剁紦瀛橀氬父灏嗗浐鎬佺‖鐩樹綔涓虹紦瀛樿澶囷紝閫氳繃杞欢杩涜鏁版嵁鐨勭紦瀛绠$悊鍜屼紭鍖栵紝鎻愰珮绯荤粺鐨勮鍐欐ц兘鍜屽搷搴旈熷害銆傚浐鎬佺‖鐩橈紙SSD锛夊甫缂撳瓨鐨勪富瑕佷綔鐢ㄦ槸鎻愰珮鏁版嵁鐨勮鍐欓熷害鍜屽搷搴旈熷害锛屼粠鑰屼紭鍖栫郴缁熺殑鎬ц兘銆傝櫧鐒跺浐鎬佺‖鐩樻湰韬凡缁忔瘮...
  • 鍝綅浜嗚Вjava鏁版嵁缂撳瓨鎶鏈鏈夊摢浜
    绛旓細涓銆佷粈涔堟槸缂撳瓨1銆丆ache鏄珮閫熺紦鍐插瓨鍌ㄥ櫒 涓绉嶇壒娈婄殑瀛樺偍鍣ㄥ瓙绯荤粺锛屽叾涓鍒朵簡棰戠箒浣跨敤鐨勬暟鎹互鍒╀簬蹇熻闂2銆佸嚒鏄綅浜庨熷害鐩稿樊杈冨ぇ鐨勪袱绉嶇‖浠/杞欢涔嬮棿鐨勶紝鐢ㄤ簬鍗忚皟涓よ呮暟鎹紶杈撻熷害宸紓鐨勭粨鏋勶紝鍧囧彲绉颁箣涓 Cache 甯歌鐨勭紦瀛樻妧鏈鏈夊摢浜涳紵涓銆佹搷浣滅郴缁熺紦瀛 1銆佹枃浠剁郴缁熸彁渚涚殑Disk Cache锛氭搷浣滅郴缁熶細鎶婄粡甯...
  • 濡備綍鐞嗚В http 缂撳瓨?
    绛旓細娣卞叆瑙f瀽HTTP缂撳瓨锛氭彁鍗囨ц兘鐨勭瀵嗘鍣 HTTP缂撳瓨鎶鏈鏄幇浠g綉缁滀笘鐣屼腑鐨勯噸瑕佷紭鍖栨墜娈碉紝瀹冮氳繃HTTP1.1鍗忚寮曞叆锛屾棬鍦ㄥ噺灏戞湇鍔″櫒鍘嬪姏骞舵彁楂樼敤鎴蜂綋楠屻備富瑕佸垎涓哄己鍒剁紦瀛樺拰鍗忓晢缂撳瓨涓ゅぇ绫诲埆锛屽畠浠叡鍚屾瀯鎴愪簡缂撳瓨绛栫暐鐨勬牳蹇冦傚己鍒剁紦瀛樹笌鍗忓晢缂撳瓨鐨勫ゥ绉 鍦℉TTP1.1涓紝娴忚鍣ㄤ細浼樺厛浣跨敤鏈繃鏈鐨勭紦瀛璧勬簮锛岃繖鏄氳繃"...
  • 鎵嬫満濡備綍缂撳瓨娓告垙
    绛旓細鍥剧墖缂撳瓨鐨勮缃柟寮忚緝涓哄鏉傦紝闇瑕佸熷姪浜庝竴浜涚涓夋柟杞欢銆甯哥敤鐨鍥剧墖缂撳瓨杞欢鏈塋ruCache鍜孎resco銆傝繖浜涜蒋浠跺彲浠ュ娓告垙涓殑鍥剧墖杩涜鍘嬬缉鍜屼紭鍖栵紝浠庤屾彁楂樺浘鐗囩殑鍔犺浇閫熷害銆備娇鐢ㄨ繖浜涜蒋浠堕渶瑕佷竴瀹氱殑鎶鏈按骞筹紝涓嶅缓璁櫘閫氱帺瀹惰嚜琛屾搷浣溿傜患涓婃墍杩帮紝鎵嬫満娓告垙缂撳瓨鎶鏈鐨勫簲鐢ㄥ彲浠ユ彁楂樻父鎴忕殑杩愯閫熷害锛岃鐜╁鏇村姞椤虹晠鍦颁韩鍙...
  • 浠涔堝彨缂撳瓨?
    绛旓細鎵璋鐨勭紦瀛锛屽氨鏄皢绋嬪簭鎴栫郴缁熺粡甯歌璋冪敤鐨勫璞″瓨鍦ㄥ唴瀛樹腑锛屼竴閬嶅叾浣跨敤鏃跺彲浠ュ揩閫熻皟鐢紝涓嶅繀鍐嶅幓鍒涘缓鏂扮殑閲嶅鐨勫疄渚嬨傝繖鏍峰仛鍙互鍑忓皯绯荤粺寮閿锛屾彁楂樼郴缁熸晥鐜囥1銆侀氳繃鏂囦欢缂撳瓨锛涢【鍚嶆濅箟鏂囦欢缂撳瓨鏄寚鎶婃暟鎹瓨鍌ㄥ湪纾佺洏涓婏紝涓嶇浣犳槸浠ML鏍煎紡锛屽簭鍒楀寲鏂囦欢DAT鏍煎紡杩樻槸鍏跺畠鏂囦欢鏍煎紡锛2銆佸唴瀛樼紦瀛橈紱涔熷氨鏄垱寤轰竴...
  • 鍥烘佺‖鐩鐨勭紦瀛鏄粈涔
    绛旓細鏃犵紦瀛樹紭鍔挎槸鎺夌數鐩稿涓嶅鏄撲涪澶辨暟鎹紝浠ュ強鏇村ソ鐨勬垚鏈帶鍒讹紝缂虹偣灏辨槸4k鎬ц兘浼氭瘮杈冮毦鐪嬶紝鑰屼笖鎬ц兘涓鑷存т笉澶熷ソ锛屼笉閫傚悎楂樿礋杞界殑鍦哄悎锛屾瘮濡傛暟鎹簱鏈嶅姟鍣ㄧ瓑銆係SD鐨勭紦瀛鍒嗕负涓ょ锛屼竴绉嶆槸DRAM缂撳瓨锛屽彟涓绉嶆槸SLC缂撳瓨銆傛湁浜涘浐鎬佺‖鐩樹负浜嗗湪鑺傜渷鎴愭湰鐨勫悓鏃跺彲浠ユ妸DRAM缂撳瓨浣滀负瀹d紶绛圭爜锛岄夋嫨浜嗕笉绠′綍绉嶅閲忛兘鍙厤澶...
  • WebCache web鐨勭紦瀛鏈哄埗
    绛旓細 web缂撳瓨,鏄竴绉 缂撳瓨鎶鏈 ,鐢ㄤ簬涓存椂瀛樺偍(缂撳瓨)鐨勭綉椤垫枃浠,濡侶TML椤甸潰鍜屽浘鍍忕瓑闈欐佽祫婧,鍑忓皯甯﹀浠ュ強鍚庣鏈嶅姟鍣ㄧ殑鍘嬪姏,閫氬父涓涓猈ebCache涔熸槸涓涓 鍙嶅悜浠g悊杞欢 ,鏃㈠彲浠ラ氳繃缂撳瓨鍝嶅簲鐢ㄦ埛鐨勮姹,褰撴湰鍦版病鏈夌紦瀛樻椂,鍙互浠g悊鐢ㄦ埛璇锋眰鑷冲悗绔富鏈恒俉ebCache鍒嗕负姝e悜鍜屽弽鍚戜箣鍒嗭紝涓鑸鍚慦ebCache涓甯哥敤,...
  • 缂撳瓨鎶鏈鎸囨爣
    绛旓細鍦–PU璁捐涓紝缂撳瓨鎶鏈浣滀负鍏抽敭鎸囨爣涔嬩竴锛屽鍏舵ц兘鏈夌潃鍐冲畾鎬у奖鍝嶃備竴绾х紦瀛橈紝閫氬父瀹归噺鍦4kb鍒64kb涔嬮棿锛岃櫧鐒跺悇浜у搧闂村樊璺濅笉澶э紝浣嗕簩绾х紦瀛樼殑瀹归噺鍒欐洿涓哄叧閿紝甯歌鏈128kb銆256kb銆512kb銆1mb鍜2mb绛変笉鍚岃鏍笺備簩绾х紦瀛樼殑鎻愬崌涓昏渚濊禆浜庡埗閫犲伐鑹虹殑杩涙锛屽閲忓澶ф剰鍛崇潃闇瑕佸湪鏈夐檺鐨勮姱鐗囬潰绉唴闆嗘垚鏇村鐨勬櫠浣...
  • PHP缂撳瓨鎶鏈鐨凱HP缂撳瓨绫诲瀷
    绛旓細甯哥敤鐨鏁版嵁搴撴暟鎹缂撳瓨鎶鏈鏈夛細1.搴忓垪鍖栵紙涓茶鍖栵級缂撳瓨2.JSON缂撳瓨3.XML缂撳瓨4.Array缂撳瓨2銆侀〉闈㈢紦瀛橈細姣忔璁块棶椤甸潰鐨勬椂鍊欙紝閮戒細鍏堟娴嬬浉搴鐨勭紦瀛椤甸潰鏂囦欢鏄惁瀛樺湪锛屽鏋滀笉瀛樺湪锛屽氨杩炴帴鏁版嵁搴擄紝寰楀埌鏁版嵁锛屾樉绀洪〉闈㈠苟鍚屾椂鐢熸垚缂撳瓨椤甸潰鏂囦欢锛岃繖鏍蜂笅娆¤闂殑鏃跺欓〉闈㈡枃浠跺氨鍙戞尌浣滅敤浜嗐(妯℃澘寮曟搸鍜岀綉涓婂父瑙佺殑涓浜汸HP...
  • 浠涔堟槸楂橀缂撳瓨?
    绛旓細楂橀缂撳瓨鏄绠楁満绯荤粺涓殑涓绉鎶鏈锛屽畠鍙互鍦ㄨ绠楁満涓诲瓨鍜屽鐞嗗櫒涔嬮棿瀛樺偍鍜岃闂暟鎹紝浠ユ彁楂樿绠楁満鐨勬ц兘鍜屽搷搴旈熷害銆傞珮閫熺紦瀛樹富瑕佹湁浠ヤ笅鍑犱釜浣滅敤锛1. 鎻愰珮鏁版嵁璁块棶閫熷害锛氶珮閫熺紦瀛樹綅浜庡鐞嗗櫒鍜屼富瀛樹箣闂达紝瀹冭兘澶熷揩閫熷瓨鍌ㄥ拰妫绱㈡暟鎹傚綋澶勭悊鍣ㄩ渶瑕佽闂暟鎹椂锛屽畠棣栧厛妫鏌ョ紦瀛樹腑鏄惁鏈夋墍闇鐨勬暟鎹傚鏋滅紦瀛樹腑瀛樺湪...
  • 扩展阅读:手机缓存文件怎么打开 ... 查看手机所有缓存图片 ... 手机如何找到缓存视频 ... 清理手机垃圾cache ... 缓存相当于下载吗 ... 手机缓存目录在哪里 ... 软件缓存删了会怎样 ... 手机清理内存 ... 如何清理内存 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网