redis緩存服務(wù)器
緩存內(nèi)存
redis緩存服務(wù)器
redis是一個(gè)高性能的key-value存儲(chǔ)系統(tǒng),能夠作為緩存框架和隊(duì)列
但是由于他是一個(gè)內(nèi)存內(nèi)存系統(tǒng),這些數(shù)據(jù)還是要存儲(chǔ)到數(shù)據(jù)庫中的
作為緩存框架:
create/updae/delete---同時(shí)存到redis和數(shù)據(jù)庫
query--先從redis查,沒有記錄才從數(shù)據(jù)庫查,并把從數(shù)據(jù)庫查的結(jié)果也放一份到redis
作為緩存隊(duì)列:
2、把對(duì)象Object存儲(chǔ)到redis中,怎么存?memcache存取對(duì)象是序列化和反序列化
使用通用的序列化、反序列化(頻繁的會(huì)很消耗cpu,使用GoogleProtocolBuffer,將對(duì)象打成二
進(jìn)制流)
或者使用json存儲(chǔ)(阿里巴巴的fast-json)
3、java使用redis的客戶端一般是:jedis
jedis的原生接口只支持基本數(shù)據(jù)類型和String、byte
和memcached更為接近的是redis。它們都是內(nèi)存型數(shù)據(jù)庫,數(shù)據(jù)保存在內(nèi)存中,通過tcp直接存取,優(yōu)勢(shì)是速度快,并發(fā)高,缺點(diǎn)是數(shù)據(jù)類型有限,查詢功能不強(qiáng),一般用作緩存。在我們團(tuán)隊(duì)的項(xiàng)目中,一開始用的是memcached,后來用redis替代。
相比memcached:
1、redis具有持久化機(jī)制,可以定期將內(nèi)存中的數(shù)據(jù)持久化到硬盤上。
2、redis具備binlog功能,可以將所有操作寫入日志,當(dāng)redis出現(xiàn)故障,可依照binlog進(jìn)行數(shù)據(jù)恢復(fù)。
3、redis支持virtualmemory,可以限定內(nèi)存使用大小,當(dāng)數(shù)據(jù)超過閾值,則通過類似LRU的算法把內(nèi)存中的最不常用數(shù)據(jù)保存到硬盤的頁面文件中。
4、redis原生支持的數(shù)據(jù)類型更多,使用的想象空間更大。
5、前面有位朋友所提及的一致性哈希,用在redis的sharding中,一般是在負(fù)載非常高需要水平擴(kuò)展時(shí)使用。我們還沒有用到這方面的功能,一般的項(xiàng)目,單機(jī)足夠支撐并發(fā)了。redis3.0將推出cluster,功能更加強(qiáng)大。
3個(gè)場(chǎng)景完全不同的東西。1.memcached:?jiǎn)我绘I值對(duì)內(nèi)存緩存的,做對(duì)象緩存無可替代的分布式緩存;2.redis:是算法和數(shù)據(jù)結(jié)構(gòu)的集合,快速的數(shù)據(jù)結(jié)構(gòu)操作是他最大的特點(diǎn),支持?jǐn)?shù)據(jù)持久化;3.mongodb是bson結(jié)構(gòu)、介于rdb和nosql之間的,更松散更靈活的,但是不支持事務(wù),只用作非重要數(shù)據(jù)存儲(chǔ)。
Tags:緩存內(nèi)存,redis緩存服務(wù)器
版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。