在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

del和unlink有啥區別啊?為什么String類型刪除不會做異步刪除?

小林coding ? 來源:小林coding ? 2023-04-17 10:10 ? 次閱讀

問題

del 和 unlink 有啥區別啊?為什么String類型刪除不會做異步刪除?

彬彬回答

b0ff4b80-dc1c-11ed-bfe3-dac502259ad0.jpg

DEL 和 UNLINK 都是同步的釋放 key 對象,區別是怎么釋放后面的 value 對象

DEL 每次都是同步釋放 value 部分,如果 value 很大,例如一個 list 里很多元素,這會阻塞 Redis 工作線程。

為了規避這個問題,4.0 里引出了 UNLINK 命令,可以異步釋放 value 對象,放到一個子線程中。

這邊需要引出一個釋放的閾值,見后面解釋。

目前默認的閾值是 64,例如只有一個 list 里面含有超過 64 個元素,才會異步釋放,否則也是會同步釋放不同的數據結構的計算閾值的方式不一樣,不過大致遵循一個原則:就是要釋放多少塊內存即在小對象上使用 UNLINK 效果等同于 DEL,也是同步釋放,區別就是要多走幾個函數調用,例如判斷 list 里需要判斷列表的長度等

大 value 對象的釋放是異步的,放在一個子線程上,小對象之所以不異步釋放,是因為異步釋放,主線程和子線程之間需要做一些同步操作(這是有代價的),然后小對象釋放,本身也很快就也不值得進行異步釋放,內存釋放也更及時。

即可能異步釋放,實際上會比同步釋放更慢,所以作者設置了個 64 的經驗值

所以如果是一個小對象,DEL 和 UNLINK 其實一樣;如果是一個大對象,UNLINK 會更加好。

所以大部分情況下都可以用 UNLINK 代替 DEL,而 Redis 其實也有個配置項,可以控制將 DEL 默認轉換為 UNLINK(實現上都是同一個函數,只是入口 async 參數不同)不過我們需要知道異步釋放的好處(不阻塞主線程)和它的壞處(需要進行一些線程同步相關的操作,內存釋放不及時)。

至于說 string 為啥不異步釋放,主要是作者認為它是一整塊內存空間,計算閾值的時候 string 的結果固定是 1,那么就 <= 64,就是同步釋放。

在補充一點,前面舉例是說的 list,底層是用的 quicklist,嚴格來說統計的是 quicklistNode 的節點數量,就不是列表元素數量。

像 zset 那些如果用的 ziplist/listpack 編碼的話,這種計算出來的閾值是 1,就也不是元素數量。如果是跳表編碼的話就是統計的元素數量。

然后至于選擇的話,大部分情況可以無腦用 UNLINK,不過需要知道壞處。

例如對于每一次的 async delete,主線程給子線程提交任務時需要加鎖解鎖,bio 子線程消費任務的時候也要加鎖解鎖,要做一些線程同步,還有線程上下文切換,這些都是可能會有的潛在的問題,如果小元素都異步釋放的話,的確代價可能會大,多線程做事情的確是會有這些麻煩。

可以多做壓測來驗證環境里到底哪個好,不過大部分情況這些我們不用關系,只要寫代碼的時候有意識的注意大 key 的釋放就好。





審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Del
    Del
    +關注

    關注

    0

    文章

    3

    瀏覽量

    6571
  • Redis
    +關注

    關注

    0

    文章

    381

    瀏覽量

    11230

原文標題:Redis 刪除 key用 del 和 unlink 有啥區別?

文章出處:【微信號:小林coding,微信公眾號:小林coding】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    Linux系統中unlink命令的使用

    在 Linux 中刪除文件,我們通常使用 rm 命令。除此以外,還有另外一個命令,可以用于刪除文件和鏈接,這就是 unlink 命令。雖然它聽起來像是只能刪除 Linux 系統中的鏈接
    發表于 09-13 14:29 ?2353次閱讀

    ADS1294和ADS1298區別

    您好,請教一下您這個ADS1294和ADS1298區別?還有帶R的和不帶R的
    發表于 12-25 06:31

    不會做Android的藍牙調試

    不會做Android的藍牙調試
    發表于 12-17 22:35

    請問如何用f_unlink刪除一個文件夾?

    不知道怎么刪除掉這個文件夾查了一下,用f_unlink函數是沒錯的但是試過以下的都不行:f_unlink("0:/PHOTO1");f_unlink("/PHOTO1");f_
    發表于 12-03 08:38

    為什么YouTask自己刪除自己不會顯示多次?

    這個程序是從mytask里面刪除youtask,想請問一下大神,在youtask執行完:if( OSTaskDelReq(OS_PRIO_SELF ) == OS_TASK_DEL
    發表于 08-15 02:13

    如何刪除網卡驅動(徹底刪除)

    如何刪除網卡驅動 刪除舊網卡信息 網卡換了個插槽,進入系統時,設備管理器中就多出了個網卡Realtek RTL8139 Family PCI Fast Et
    發表于 12-05 16:40 ?4.2w次閱讀

    刪除軟件的方法哪些?

    刪除軟件的方法哪些? 1、直接刪除發  綠色軟件(不用安裝就能夠直接使用的軟件),不會對系統配置進行任何修改,對于這樣的
    發表于 02-23 15:24 ?1194次閱讀

    如何徹底刪除“我的文檔”

    如何徹底刪除“我的文檔”    在windows XP中,當我們刪除“我的文檔”中的“我的音樂”、“圖片收藏”等文件夾后,重新啟
    發表于 02-24 11:50 ?1161次閱讀

    重要機密文檔該刪除還是粉碎?

      重要機密文檔,徹底刪除就絕對安全了嗎?我們安裝瑞星殺毒軟件后,通常會在鼠標右鍵中出現一個“文件粉碎”的選項,它跟我們平常的文件刪除什么區別呢?怎
    發表于 07-12 17:03 ?3376次閱讀
    重要機密文檔該<b class='flag-5'>刪除</b>還是粉碎?

    linux如何復原已經刪除的文件

    Linux不像windows那么顯眼的回收站,不是簡單的還原就可以了。linux刪除文件還原可以分為兩種情況,一種是刪除以后在進程存在刪除信息,一種是
    的頭像 發表于 09-07 10:38 ?3057次閱讀

    拼多多被曝遠程刪除用戶照片

    對于近日個別拼多多用戶反饋“vivo”手機提示拼多多App刪除照片的問題,拼多多官方在今晚回應稱,只是刪除緩存,拼多多絕不會刪除用戶主動保存的任何照片和文件。
    的頭像 發表于 01-13 11:02 ?2736次閱讀

    刪除網絡失敗的問題處理

    實例化終止時,網元側經常報刪除網絡失敗“delete_network_precommit failed”,在Provider界面檢查網絡的子網和端口,檢查結果為都已經清除,但是手工刪除網絡同樣報錯,如下圖所示。
    的頭像 發表于 09-20 11:05 ?1247次閱讀
    <b class='flag-5'>刪除</b>網絡失敗的問題處理

    Redis的刪除策略和內存淘汰機制介紹

    Redis過期鍵的刪除策略? Redis的過期刪除策略就是:惰性刪除和定期刪除兩種策略配合使用。 惰性刪除:Redis的惰性
    的頭像 發表于 10-09 11:06 ?605次閱讀

    linux中刪除文件的命令

    在Linux中,可以使用 rm 命令來刪除文件。該命令多個參數和選項可供使用,以根據不同的情況進行文件刪除操作。例如: rm 命令后面跟上文件名,可以刪除單個文件。 rm -r 或
    的頭像 發表于 11-08 14:11 ?1365次閱讀

    linux刪除文件命令rm

    在Linux系統中,可以使用rm命令來刪除文件或目錄。該命令的功能是刪除一個目錄中的一個或多個文件或目錄,也可以將某個目錄及其下的所有文件及子目錄均刪除。對于鏈接文件,rm命令只是斷開了鏈接,源文件
    的頭像 發表于 11-13 16:42 ?1164次閱讀
    主站蜘蛛池模板: 噜噜噜噜噜噜色 | 国产精品久久久久久久久免费hd | 99久久免费精品国产免费高清 | 性欧美成人免费观看视 | wwwwwww色| 成人在线a | 明日花绮罗snis-862在线播放 | 欧美yw193.c㎝在线观看 | 亚洲综合一区二区三区 | 六月婷婷在线视频 | 91av在线视频观看 | 四虎影永久在线观看网址 | 宅宅午夜亚洲精品 | 电源天堂| 亚洲一区中文字幕在线 | 91久久夜色精品国产网站 | 免费一看一级毛片全播放 | 一区二区视频在线 | 日本一区二区不卡在线 | 久久99精品久久久久久牛牛影视 | 午夜视频国产 | 夜夜春夜夜夜夜猛噜噜噜噜噜 | 国产在线播放一区 | 天天爽夜夜爽精品视频一 | 国产精品爽爽影院在线 | 色之综综 | 欧美激情二区三区 | 日韩美女奶水喂男人在线观看 | 美女天天操| 五月婷婷综合激情 | 色视频免费 | 激情五月深爱五月 | 一区二区三区视频网站 | 黄色日本视频 | 好男人社区www的视频免费 | 天天爽天天狼久久久综合 | 在线操| 国产69久久精品成人看 | 成人免费国产gav视频在线 | 久久精品女人天堂 | 午夜色视频 |