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

首頁 > 數據庫 > Redis > 正文

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

2020-10-28 21:37:33
字體:
來源:轉載
供稿:網友

內存管理優化

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優化經驗總結(必看篇)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日本久久中文字幕| 国产精品高潮呻吟视频| 精品成人国产在线观看男人呻吟| 亚洲性视频网址| 亚洲乱亚洲乱妇无码| 91精品国产免费久久久久久| 青青草原成人在线视频| 国产一区二区三区免费视频| 91日本在线观看| 久久免费成人精品视频| 亚洲a在线播放| 97久久超碰福利国产精品…| 亚洲国产日韩欧美在线动漫| 91在线观看免费高清完整版在线观看| 第一福利永久视频精品| 欧美激情一区二区三区成人| 自拍亚洲一区欧美另类| 国产精品爱久久久久久久| 97av视频在线| 久久久久久欧美| 亚洲第一中文字幕在线观看| 亚洲免费av电影| 69久久夜色精品国产7777| 丝袜美腿亚洲一区二区| 日韩成人在线免费观看| 欧美黄色片在线观看| 51精品在线观看| 日韩一区二区三区国产| 精品福利在线看| 国内精品伊人久久| 亚洲欧美一区二区三区情侣bbw| 亚洲一区二区三区四区在线播放| 亚洲剧情一区二区| 美乳少妇欧美精品| 欧美成人免费在线观看| 精品久久中文字幕久久av| 超碰91人人草人人干| 久久99青青精品免费观看| 亚洲天堂视频在线观看| 日本成人在线视频网址| 亚洲国产精品人久久电影| 久久精品91久久香蕉加勒比| 九九久久久久久久久激情| 亚洲毛茸茸少妇高潮呻吟| 亚洲精品久久久久久下一站| 欧美色欧美亚洲高清在线视频| 懂色aⅴ精品一区二区三区蜜月| www.日韩av.com| 欧美性猛交xxxxx免费看| 精品国产欧美一区二区三区成人| 不卡在线观看电视剧完整版| 亚洲精品98久久久久久中文字幕| 精品国产999| 亚洲色图偷窥自拍| 国产精品狼人色视频一区| 亚洲天堂第二页| 日韩美女在线观看一区| 日韩美女在线观看一区| 日韩电视剧在线观看免费网站| 欧美日韩中文字幕在线视频| 亚洲影院污污.| 亚洲一区二区少妇| 亚洲天堂第一页| 欧美亚洲另类制服自拍| 亚洲伊人第一页| 日韩中文字幕免费视频| 日韩欧美一区二区三区久久| 揄拍成人国产精品视频| 日韩精品视频中文在线观看| 亚洲精品久久久久久下一站| 中文字幕日本欧美| 日韩大陆毛片av| 国产精品旅馆在线| 草民午夜欧美限制a级福利片| 亚洲国产高清自拍| 91超碰中文字幕久久精品| 国产精品视频免费在线观看| 久久久中文字幕| 久久精品国产99国产精品澳门| 亚洲香蕉成人av网站在线观看| 日韩精品极品在线观看| 久久夜精品香蕉| 国产日韩精品综合网站| 亚洲欧美福利视频| 欧美成人精品一区二区三区| 亚洲a级在线观看| 45www国产精品网站| 欧美激情三级免费| 成人免费视频在线观看超级碰| 久久久久日韩精品久久久男男| 日韩精品视频在线免费观看| 亚洲精品98久久久久久中文字幕| 中文字幕久精品免费视频| 欧洲日本亚洲国产区| 亚洲人成电影网站| 久久久久国产精品免费| 亚洲第一区第二区| 九九热精品在线| 欧美亚洲成人网| 国内精品美女av在线播放| 欧美日韩亚洲国产一区| 亚洲风情亚aⅴ在线发布| 久久久久久香蕉网| 性欧美长视频免费观看不卡| 国产日韩在线免费| 日韩欧美精品中文字幕| 久久久亚洲国产| 国产v综合ⅴ日韩v欧美大片| 国产欧美韩国高清| 久久成人国产精品| 岛国av一区二区三区| 欧美夫妻性生活xx| 国产成人拍精品视频午夜网站| 精品亚洲精品福利线在观看| 亚洲第一在线视频| 中文字幕在线观看日韩| 国内精品400部情侣激情| 日韩欧美国产高清91| 九九九热精品免费视频观看网站| 国产亚洲视频在线观看| 久久久精品亚洲| 91亚洲国产成人久久精品网站| 欧美二区乱c黑人| 最近2019年手机中文字幕| 国内成人精品一区| 欧美在线一级视频| 亚洲石原莉奈一区二区在线观看| 欧美日韩国产色| 欧美精品videosex极品1| 欧美重口另类videos人妖| 国产剧情日韩欧美| 日韩电影免费在线观看| 久久久国产精品亚洲一区| 国产精品伦子伦免费视频| 欧美专区第一页| 欧美日韩亚洲成人| 亚洲欧洲日产国产网站| 久久免费视频观看| 国产成人综合亚洲| 色综合天天狠天天透天天伊人| 777国产偷窥盗摄精品视频| 中文字幕日韩免费视频| 欧美极品在线视频| 欧美亚洲免费电影| 亚洲欧洲日产国产网站| 98精品国产自产在线观看| 久久在线精品视频| 国产一区二区免费| 国产成人aa精品一区在线播放| 欧美日韩一区二区免费视频| 国产精品久久久久久久久久久不卡| 日韩二区三区在线| 欧美日韩在线影院| 日日噜噜噜夜夜爽亚洲精品| 日本精品免费一区二区三区| 91在线视频九色| 国产精品成人一区| 2019亚洲男人天堂| 欧美国产精品va在线观看| 欧美精品日韩三级| 国产精品一区二区女厕厕| 欧美性jizz18性欧美| 国产在线视频2019最新视频| 91成品人片a无限观看|