亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > Redis > 正文

Redis優化經驗總結(必看篇)

2020-03-17 12:38:49
字體:
來源:轉載
供稿:網友

內存管理優化

Redis Hash是value內部為一個HashMap,如果該Map的成員數比較少,則會采用類似一維線性的緊湊格式來存儲該Map, 即省去了大量指針的內存開銷,這個參數控制對應在redis.conf配置文件中下面2項:

hash-max-zipmap-entries 64 hash-max-zipmap-value 512       

當value這個Map內部不超過多少個成員時會采用線性緊湊格式存儲,默認是64,即value內部有64個以下的成員就是使用線性緊湊存儲,超過該值自動轉成真正的HashMap。

hash-max-zipmap-value 含義是當 value這個Map內部的每個成員值長度不超過多少字節就會采用線性緊湊存儲來節省空間。

以上2個條件任意一個條件超過設置值都會轉換成真正的HashMap,也就不會再節省內存了,那么這個值是不是設置的越大越好呢,答案當然是否定的,HashMap的優勢就是查找和操作的時間復雜度都是O(1)的,而放棄Hash采用一維存儲則是O(n)的時間復雜度,如果

成員數量很少,則影響不大,否則會嚴重影響性能,所以要權衡好這個值的設置,總體上還是最根本的時間成本和空間成本上的權衡。

list-max-ziplist-value 64 list-max-ziplist-entries 512       

list數據類型節點值大小小于多少字節會采用緊湊存儲格式、list數據類型多少節點以下會采用去指針的緊湊存儲格式。

內存預分配:

Redis內部實現沒有對內存分配方面做過多的優化(對比Memcache),在一定程度上會存在內存碎片,不過大多數情況下這個不會成為Redis的性能瓶頸,不過如果在Redis內部存儲的大部分數據是數值型的話,Redis內部采用了一個shared integer的 方式來省去分配內存的開銷,即在系統啟動時先分配一個從1~n 那么多個數值對象放在一個池子中,如果存儲的數據恰好是這個數值范圍內的數據,則直接從池子里取出該對象,并且通過引用計數的方式來共享,這樣在系統存儲 了大量數值下,也能一定程度上節省內存并且提高性能,這個參數值n的設置需要修改源代碼中的一行宏定義REDIS_SHARED_INTEGERS,該值 默認是10000,可以根據自己的需要進行修改,修改后重新編譯就可以了。

持久化機制:

定時快照方式(snapshot):

該持久化方式實際是在Redis內部一個定時器事件,每隔固定時間去檢查當前數據發生的改變次數與時間是否滿足配置的持久化觸發的條件,如果滿足則通 過操作系統fork調用來創建出一個子進程,這個子進程默認會與父進程共享相同的地址空間,這時就可以通過子進程來遍歷整個內存來進行存儲操作,而主進程 則仍然可以提供服務,當有寫入時由操作系統按照內存頁(page)為單位來進行copy-on-write保證父子進程之間不會互相影響。

該持久化的主要缺點是定時快照只是代表一段時間內的內存映像,所以系統重啟會丟失上次快照與重啟之間所有的數據。

基于語句追加方式(aof):

aof方式實際類似mysql的基于語句的binlog方式,即每條會使Redis內存數據發生改變的命令都會追加到一個log文件中,也就是說這個log文件就是Redis的持久化數據。

aof的方式的主要缺點是追加log文件可能導致體積過大,當系統重啟恢復數據時如果是aof的方式則加載數據會非常慢,幾十G的數據可能需要幾小時才能加載完,當然這個耗時并不是因為磁盤文件讀取速度慢,而是由于讀取的所有命令都要在內存中執行一遍。另外由于每條命令都要寫log,所以使用aof的方式,Redis的讀寫性能也會有所下降。

可以考慮將數據保存到不同的Redis實例中,每個實例的內存大小在2G左右,避免將雞蛋放到一個籃子里,既可以減少緩存失效給系統帶來的影響,又可以加快數據恢復的速度,不過同時也給系統設計帶來了一定的復雜性。

Redis持久化崩潰問題:

有Redis線上運維經驗的人會發現Redis在物理內存使用比較多,但還沒有超過實際物理內存總容量時就會發生不穩定甚至崩潰的 問題,有人認為是基于快照方式持久化的fork系統調用造成內存占用加倍而導致的,這種觀點是不準確的,因為fork 調用的copy-on-write機制是基于操作系統頁這個單位的,也就是只有有寫入的臟頁會被復制,但是一般你的系統不會在短時間內所有的頁都發生了寫 入而導致復制,那么是什么原因導致Redis崩潰的呢?

答案是Redis的持久化使用了Buffer IO造 成的,所謂Buffer IO是指Redis對持久化文件的寫入和讀取操作都會使用物理內存的Page Cache,而大多數數據庫系統會使用Direct IO來繞過這層Page Cache并自行維護一個數據的Cache,而當Redis的持久化文件過大(尤其是快照文件),并對其進行讀寫時,磁盤文件中的數據都會被加載到物理內 存中作為操作系統對該文件的一層Cache,而這層Cache的數據與Redis內存中管理的數據實際是重復存儲的,雖然內核在物理內存緊張時會做 Page Cache的剔除工作,但內核很可能認為某塊Page Cache更重要,而讓你的進程開始Swap ,這時你的系統就會開始出現不穩定或者崩潰了。我們的經驗是當你的Redis物理內存使用超過內存總容量的3/5時就會開始比較危險了。

總結:

1、根據業務需要選擇合適的數據類型,并為不同的應用場景設置相應的緊湊存儲參數。

2、當業務場景不需要數據持久化時,關閉所有的持久化方式可以獲得最佳的性能以及最大的內存使用量。

3、如果需要使用持久化,根據是否可以容忍重啟丟失部分數據在快照方式與語句追加方式之間選擇其一,不要使用虛擬內存以及diskstore方式。

4、不要讓你的Redis所在機器物理內存使用超過實際內存總量的3/5。

redis.conf中的maxmemory選項,該選項是告訴Redis當使用了多少物理內存后就開始拒絕后續的寫入請求,該參數能很好的保護好你的Redis不會因為使用了過多的物理內存而導致swap,最終嚴重影響性能甚至崩潰。

redis.conf文件中 vm-enabled 為 no

以上這篇Redis優化經驗總結(必看篇)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持VEVB武林網。

 

注:相關教程知識閱讀請移步到Redis頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲人av在线影院| 亚洲女人天堂色在线7777| 欧洲成人免费aa| 日韩精品在线视频美女| 亚洲无限乱码一二三四麻| 色婷婷av一区二区三区在线观看| 精品中文字幕视频| 中文欧美在线视频| 亚洲一区二区三区四区视频| 久久久久久久久久久免费精品| 亚洲综合最新在线| 国产一区二区三区在线免费观看| 日本19禁啪啪免费观看www| 成人午夜一级二级三级| 国产美女精品视频免费观看| 国产91在线播放九色快色| 国产精品成久久久久三级| 国产视频精品久久久| 国产精品久久久久久久久久久久久| 九九热精品视频| 国产精品欧美日韩久久| 国产精品人人做人人爽| 一本一本久久a久久精品综合小说| 中国人与牲禽动交精品| 欧美成人免费va影院高清| 91精品国产沙发| 成人国产精品久久久| 中文字幕日韩综合av| 亚洲精品一区中文| 91精品久久久久久久久久久| 久久噜噜噜精品国产亚洲综合| 欧美日韩加勒比精品一区| 亚洲综合在线播放| 亚洲第一精品夜夜躁人人爽| 91精品啪aⅴ在线观看国产| www.99久久热国产日韩欧美.com| 亚洲欧美在线x视频| 久久福利视频导航| 亚洲精品国偷自产在线99热| 曰本色欧美视频在线| 国产精品久久久久久久天堂| 日韩视频免费中文字幕| 97在线看免费观看视频在线观看| 亚洲理论在线a中文字幕| 欧美日韩爱爱视频| 一区二区亚洲欧洲国产日韩| 久久久久久亚洲| 成人黄色午夜影院| 亚洲最新av在线网站| 亚洲一区www| 欧美激情在线观看视频| 精品视频在线播放| 日本精品va在线观看| 欧美最猛黑人xxxx黑人猛叫黄| 欧美人成在线视频| 欧美亚洲日本网站| 91av免费观看91av精品在线| 96pao国产成视频永久免费| 日韩一区二区三区国产| 国产精品视频xxxx| 亚洲性69xxxbbb| 日韩二区三区在线| 亚洲第一视频网站| 国产亚洲成av人片在线观看桃| 欧美日韩国产一中文字不卡| 国产精品吴梦梦| 中文字幕亚洲专区| 欧美精品在线视频观看| 国产精品video| 精品激情国产视频| 成人网址在线观看| 欧美成人免费网| 亚洲精品在线视频| 欧美性猛交xxxx偷拍洗澡| www欧美xxxx| 亚洲视频在线免费观看| 国产日韩在线播放| 久久噜噜噜精品国产亚洲综合| 国产成人亚洲综合| 91久久在线观看| 欧美激情影音先锋| 亚洲精品色婷婷福利天堂| 最近2019年好看中文字幕视频| 岛国av一区二区在线在线观看| 日韩国产中文字幕| 国产成人福利网站| 久久久国产一区二区三区| 日韩av在线影视| 日韩欧美极品在线观看| 国产亚洲免费的视频看| 精品视频久久久久久久| 久久久欧美一区二区| 欧美激情乱人伦一区| 欧美大片va欧美在线播放| 91牛牛免费视频| 亚洲精品福利视频| 色无极影院亚洲| 中文欧美在线视频| 欧美第一页在线| 精品无人区太爽高潮在线播放| 欧美成人精品影院| 亚洲精品xxx| 亚洲精品www| 一夜七次郎国产精品亚洲| 国产在线精品一区免费香蕉| 成人天堂噜噜噜| 国产精品视频xxx| 亚洲免费视频一区二区| 国产成人精品优优av| 中文字幕无线精品亚洲乱码一区| 97精品国产97久久久久久春色| 亚洲欧美激情另类校园| 97超级碰碰人国产在线观看| 国产精品免费一区二区三区都可以| 国产精品色悠悠| 国内精品400部情侣激情| 九九热r在线视频精品| 日本精品一区二区三区在线播放视频| 深夜精品寂寞黄网站在线观看| 亚洲在线视频观看| 欧美成人在线网站| 日韩av日韩在线观看| 国产精品网站视频| 亚洲国产精品va在看黑人| 在线看日韩欧美| 国产精品亚洲片夜色在线| 欧洲美女免费图片一区| 亚洲福利在线看| 欧美性猛交xxxx偷拍洗澡| 91精品国产99久久久久久| 中文字幕在线精品| 午夜精品久久久久久久白皮肤| 亚洲视频免费一区| 亚洲黄页网在线观看| 亚洲国产精品悠悠久久琪琪| 国产精品免费一区二区三区都可以| 国产精品流白浆视频| 欧洲美女7788成人免费视频| 国产精品毛片a∨一区二区三区|国| 国产精品嫩草视频| 美日韩精品免费观看视频| 精品欧美国产一区二区三区| 色综合伊人色综合网站| 日韩精品有码在线观看| 亚洲最大福利视频| 2019av中文字幕| 亚洲欧美另类自拍| 国产精品久久久久久久久久久不卡| 97视频免费在线观看| x99av成人免费| 亚洲国产欧美久久| 91a在线视频| 欧美丰满老妇厨房牲生活| 这里只有精品视频在线| 亚洲性69xxxbbb| 亚洲精品v欧美精品v日韩精品| 日韩av手机在线看| 亚洲欧美国产精品va在线观看| 日韩精品极品在线观看| 日韩成人黄色av| 久久久国产精品亚洲一区| 国产专区精品视频| 亚洲国产精品成人va在线观看| 亚洲一品av免费观看|