您好,登錄后才能下訂單哦!
redis (remote dictionary server)
redis特點:
1)支持內存緩存,相當于memcached;
2)持久化,相當于memcachedb,ttserver;
3)數據類型更豐富;
4)支持集群,分布式;
5)key-value鍵值類型存儲系統;
6)支持數據可靠存儲及落地;
7)單進程單線程高性能服務器;(可實現多實例)
一個實例20-30G內存;
8)crash safe & recovery slow;
9)單機qps 可以達到10w
10)適合小數據量高速讀寫訪問;
11)支持異機主從復制;
12)支持publish/subscribe(發布/訂閱),通知,key過期等等特性;
redis支持存儲的value類型相對更多,包括string(字符串)、list(列表)、set(集合)、和zset(有序集合)和hash等; 與memcachedb一樣,為了保證效率,數據都是緩存在內存中,區別是redis會會周期性的把更新的數據寫入磁盤或者把修改操作寫入追加的記錄文件,并且在此基礎上實現了master-slave(主從)同步;
這些數據類型支持push/pop、add/remove及取交集、并集和差集及更豐富的操作,而且這些操作都是原子性的,不會出現鎖的情況;
缺點:
1)代碼從讀取memcached更改為讀取redis;
2)不同命令延遲差別極大;
3)內存管理開銷大(低于物理內存的3/5)
4)buffer io 造成系統oom(內存溢出)
redis持久化
1)snapshot(快照)一次性將內存中的數據寫入到磁盤,需要key的更新(輸入觸發類型);
2)aof(binlog日志方式),記錄每次更新的日志,不會導致數據的丟失;(不用于主從同步)僅僅用于保存數據;
redis最佳應用場景
1.redis全部數據在memory
2.最佳對memcached的替代品;
3.數據比較重要,對數據一致性有一定要求的業務;
4.當需要除key/value之外的更多數據類型支持時,使用redis更合適;
5.需要提供主從同步以及負載均衡分布式應用場景(redis主從同步);
redis的生產經驗教訓
1.要進行master-slave主從同步配置,在出現服務故障時可以切換;
2.在master禁用數據持久化,只需在slave上配置數據持久化;
3.物理內存+虛擬內存不足,這個時候dump一直死著,時間久了機器掛掉
4.當redis物理內存使用超過內存總容量的3/5時就會開始比較危險了,就開始做swap,內存碎片大!
5.當達到最大內存時,會清空帶有過期時間的key,即使key未到過期時間;
6.redis與db同步寫的問題,先寫db,后寫redis,因為寫內存基本上沒有問題;
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。