轉載的目的是為了友善閱讀
redis緩存伺服器筆記
redis是一個高性能的key-value存儲系統,能夠作為緩存架構和隊列
但是由于他是一個記憶體記憶體系統,這些資料還是要存儲到資料庫中的
作為緩存架構:
create/updae/delete---同時存到redis和資料庫
query--先從redis查,沒有記錄才從資料庫查,并把從資料庫查的結果也放一份到redis
作為緩存隊列:
2、把對象object存儲到redis中,怎麼存?memcache存取對象是序列化和反序列化
使用通用的序列化、反序列化(頻繁的會很消耗cpu,使用google protocol buffer,将對象打成二
進制流)
或者使用json存儲(阿裡巴巴的fast-json)
3、java使用redis的用戶端一般是:jedis
jedis的原生接口隻支援基本資料類型和string、byte[]
4、我對redis隊列的了解:
重要的資料:先存到資料庫,然後存到redis
要求響應速度很高的的資料:先寫緩存,然後通過消息隊列再寫入資料庫
因為redis的value支援string、list、set、zset
那麼就可以把redis的list當作隊列來用
入隊:lpush mylist 'hello1'
出隊:lpop mylist
5、其提供aof(追加式操作記錄檔案)和dump(定期資料備份)兩種持久化方式
6、vm(虛拟記憶體機制):如果有1萬條資料儲存到記憶體中,那麼我就要配置能存儲這麼多資料的記憶體
然後這1萬條資料有9000條不是活躍資料,那就白白浪費了,可以這樣做,當資料容量超過記憶體時,
将部分value存儲到檔案中
memcached是把資料完全存儲到記憶體中,而redis是大部分的,因為他支援自定義的vm
同時redis支援主從複制機制