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