| TSXETG100 |
![]() |
價格: 元(人民幣) | 產地:TSXETG100 |
| 最少起訂量:1個 | 發貨地:TSXETG100 | |
| 上架時間:2021-05-17 15:31:23 | 瀏覽量:117 | |
廈門光沃自動化設備有限公司
![]() |
||
| 經營模式:經銷商 | 公司類型:其他有限責任公司 | |
| 所屬行業:PLC控制系統 | 主要客戶:全國市場 | |
在線咨詢 ![]() |
||
| 聯系人:吳 (先生) | 手機:18030229050 |
|
電話: |
傳真: |
| 郵箱:1878187406@qq.com | 地址:廈門市海滄區滄湖東一里海景奧斯卡 |
TSXETG100 在這方面,我給你總結了 13 條建議:1) 避免存儲 bigkey 存儲 bigkey 除了前面講到的使用過多內存之外,對 Redis 性能也會有很大影響。 由于 Redis 處理請求是單線程的,當你的應用在寫入一個 bigkey 時,更多時間將消耗在「內存分配」上,這時操作延遲就會增加。同樣地,刪除一個 bigkey 在「釋放內存」時,也會發生耗時。 而且,當你在讀取這個 bigkey 時,也會在「網絡數據傳輸」上花費更多時間,此時后面待執行的請求就會發生排隊,Redis 性能下降。 所以,你的業務應用盡量不要存儲 bigkey,避免操作延遲發生。 如果你確實有存儲 bigkey 的需求,你可以把 bigkey 拆分為多個小 key 存儲。 2) 開啟 lazy-free 機制 如果你無法避免存儲 bigkey,那么我建議你開啟 Redis 的 lazy-free 機制。(4.0+版本支持) 當開啟這個機制后,Redis 在刪除一個 bigkey 時,釋放內存的耗時操作,將會放到后臺線程中去執行,這樣可以在程度上,避免對主線程的影響。 3) 不使用復雜度過高的命令 Redis 是單線程模型處理請求,除了操作 bigkey 會導致后面請求發生排隊之外,在執行復雜度過高的命令時,也會發生這種情況。 因為執行復雜度過高的命令,會消耗更多的 CPU 資源,主線程中的其它請求只能等待,這時也會發生排隊延遲。 所以,你需要避免執行例如 SORT、SINTER、SINTERSTORE、ZUNIONSTORE、ZINTERSTORE 等聚合類命令。 對于這種聚合類操作,我建議你把它放到客戶端來執行,不要讓 Redis 承擔太多的計算工作。 4) 執行 O(N) 命令時,關注 N 的大小 規避使用復雜度過高的命令,就可以高枕無憂了么? 是否定的。 當你在執行 O(N) 命令時,同樣需要注意 N 的大小。 如果一次性查詢過多的數據,也會在網絡傳輸過程中耗時過長,操作延遲變大。 所以,對于容器類型(List/Hash/Set/ZSet),在元素數量未知的情況下,一定不要無腦執行 LRANGE key 0 -1 / HGETALL / SMEMBERS / ZRANGE key 0 -1。 在查詢數據時,你要遵循以下原則: 先查詢數據元素的數量(LLEN/HLEN/SCARD/ZCARD) 元素數量較少,可一次性查詢全量數據 元素數量非常多,分批查詢數據(LRANGE/HASCAN/SSCAN/ZSCAN) 5) 關注 DEL 時間復雜度 你沒看錯,在刪除一個 key 時,如果姿勢不對,也有可能影響到 Redis 性能。 刪除一個 key,我們通常使用的是 DEL 命令,回想一下,你覺得 DEL 的時間復雜度是多少?
TSXETG100 A16B-2203-0630/05B A16B-2203-0671/06A A16B-2203-0671/05A
|
| 版權聲明:以上所展示的信息由會員自行提供,內容的真實性、準確性和合法性由發布會員負責。機電之家對此不承擔任何責任。 友情提醒:為規避購買風險,建議您在購買相關產品前務必確認供應商資質及產品質量。 |