redis是內存型數據庫,數據保存在內存中,經過tcp直接存取,優點是速度快,併發高,缺點是數據類型有限,查詢功能不強,通常用做緩存。redis
redis具備持久化機制,能夠按期將內存中的數據持久化到硬盤上。數據庫
Redis是單線程運行的,因此IO是串行化的,網絡IO和內存IO,所以當單條數據太大時,因爲須要等待一個命令的全部IO完成才能進行後續的命令,因此性能會受影響。json
redis是一個高性能的key-value存儲系統,可以做爲緩存框架和隊列
可是因爲他是一個內存內存系統,這些數據仍是要存儲到數據庫中的緩存
做爲緩存框架:
create/updae/delete---同時存到redis和數據庫
query--先從redis查,沒有記錄才從數據庫查,並把從數據庫查的結果也放一份到redis網絡
做爲緩存隊列list:併發
二、把對象Object存儲到redis中,怎麼存?memcache存取對象是序列化和反序列化
使用通用的序列化、反序列化(頻繁的會很消耗cpu,使用Google Protocol Buffer,將對象打成二框架
進制流)
或者使用json存儲(阿里巴巴的fast-json)tcp
三、對redis隊列的理解:
重要的數據:先存到數據庫,而後存到redis
要求響應速度很高的的數據:先寫緩存,而後經過消息隊列再寫入數據庫性能
讓通常數據庫使用固態硬盤,這樣就能夠減小內存與硬盤的速度匹配問題,也能夠達到內存數據庫的效果,甚至更好。線程