轉(zhuǎn)載的目的是為了方便閱讀
redis緩存服務(wù)器筆記
redis是一個(gè)高性能的key-value存儲(chǔ)系統(tǒng),能夠作為緩存框架和隊(duì)列
但是由于他是一個(gè)內(nèi)存內(nèi)存系統(tǒng),這些數(shù)據(jù)還是要存儲(chǔ)到數(shù)據(jù)庫(kù)中的
作為緩存框架:
create/updae/delete---同時(shí)存到redis和數(shù)據(jù)庫(kù)
query--先從redis查,沒有記錄才從數(shù)據(jù)庫(kù)查,并把從數(shù)據(jù)庫(kù)查的結(jié)果也放一份到redis
作為緩存隊(duì)列:
2、把對(duì)象Object存儲(chǔ)到redis中,怎么存?memcache存取對(duì)象是序列化和反序列化
使用通用的序列化、反序列化(頻繁的會(huì)很消耗cpu,使用Google Protocol Buffer,將對(duì)象打成二
進(jìn)制流)
或者使用json存儲(chǔ)(阿里巴巴的fast-json)
3、java使用redis的客戶端一般是:jedis
jedis的原生接口只支持基本數(shù)據(jù)類型和String、byte[]
4、我對(duì)redis隊(duì)列的理解:
重要的數(shù)據(jù):先存到數(shù)據(jù)庫(kù),然后存到redis
要求響應(yīng)速度很高的的數(shù)據(jù):先寫緩存,然后通過(guò)消息隊(duì)列再寫入數(shù)據(jù)庫(kù)
因?yàn)镽edis的value支持String、list、set、zset
那么就可以把redis的list當(dāng)作隊(duì)列來(lái)用
入隊(duì):lpush mylist 'hello1'
出隊(duì):lpop mylist
5、其提供AOF(追加式操作記錄文件)和DUMP(定期數(shù)據(jù)備份)兩種持久化方式
6、VM(虛擬內(nèi)存機(jī)制):如果有1萬(wàn)條數(shù)據(jù)保存到內(nèi)存中,那么我就要配置能存儲(chǔ)這么多數(shù)據(jù)的內(nèi)存
然后這1萬(wàn)條數(shù)據(jù)有9000條不是活躍數(shù)據(jù),那就白白浪費(fèi)了,可以這樣做,當(dāng)數(shù)據(jù)容量超過(guò)內(nèi)存時(shí),
將部分value存儲(chǔ)到文件中
memcached是把數(shù)據(jù)完全存儲(chǔ)到內(nèi)存中,而redis是大部分的,因?yàn)樗С肿远x的VM
同時(shí)Redis支持主從復(fù)制機(jī)制
聯(lián)系客服