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