最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

redis如何取hash的值

 更新時間:2023年01月18日 14:12:16   作者:田湖_怎么了  
這篇文章主要介紹了redis如何取hash的值問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

redis取hash的值

命令:可以取得對應的hash中的具體值

hmget s_account:208 account accountname

結(jié)果:“www”

如圖

命令:取得hash中的所有key

hkeys s_account:208

結(jié)果:

redis中存值是Hash沖突如何解決

Redis 中的 Hash和 Java的 HashMap 更加相似,都是數(shù)組+鏈表的結(jié)構(gòu).當發(fā)生 hash 碰撞時將會把元素追加到鏈表上

我們先來了解下 hash 的內(nèi)部結(jié)構(gòu).第一維是數(shù)組,第二維是鏈表.組成一個 hashtable.

在 Java 中 HashMap 擴容是個很耗時的操作,需要去申請新的數(shù)組,擴容的成本并不低,因為需要遍歷一個時間復雜度為O(n)的數(shù)組,并且為其中的每個enrty進行hash計算。加入到新數(shù)組中

為了追求高性能,Redis 采用了漸進式 rehash 策略.這也是 hash 中最重要的部分.

redis在擴容的時候執(zhí)行 rehash 策略會保留新舊兩個 hashtable 結(jié)構(gòu),查詢時也會同時查詢兩個 hashtable.Redis會將舊 hashtable 中的內(nèi)容一點一點的遷移到新的 hashtable 中,當遷移完成時,就會用新的 hashtable 取代之前的.當 hashtable 移除了最后一個元素之后,這個數(shù)據(jù)結(jié)構(gòu)將會被刪除.

數(shù)據(jù)搬遷的操作放在 hash 的后續(xù)指令中,也就是來自客戶端對 hash 的指令操作.一旦客戶端后續(xù)沒有指令操作這個 hash.Redis就會使用定時任務對數(shù)據(jù)主動搬遷.

正常情況下,當 hashtable 中元素的個數(shù)等于數(shù)組的長度時,就會開始擴容,擴容的新數(shù)組是原數(shù)組大小的 2 倍.如果 Redis 正在做 bgsave(持久化) 時,可能不會去擴容,因為要減少內(nèi)存頁的過多分離(Copy On Write).但是如果 hashtable 已經(jīng)非常滿了,元素的個數(shù)達到了數(shù)組長度的 5 倍時,Redis 會強制擴容.

當hashtable 中元素逐漸變少時,Redis 會進行縮容來減少空間占用,并且縮容不會受 bgsave 的影響,縮容條件是元素個數(shù)少于數(shù)組長度的 10%.

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Redis實現(xiàn)多級緩存

    Redis實現(xiàn)多級緩存

    這篇文章主要為大家詳細介紹了Redis實現(xiàn)多級緩存,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • 查看redis的緩存時間方式

    查看redis的緩存時間方式

    這篇文章主要介紹了查看redis的緩存時間方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-03-03
  • Redis序列化設(shè)置以及jetcache連接Redis序列化的設(shè)置過程

    Redis序列化設(shè)置以及jetcache連接Redis序列化的設(shè)置過程

    這篇文章主要介紹了Redis序列化設(shè)置以及jetcache連接Redis序列化的設(shè)置過程,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • Redis特殊數(shù)據(jù)類型bitmap位圖

    Redis特殊數(shù)據(jù)類型bitmap位圖

    這篇文章主要為大家介紹了Redis特殊數(shù)據(jù)類型bitmap位圖,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-05-05
  • 使用Redis存儲SpringBoot項目中Session的詳細步驟

    使用Redis存儲SpringBoot項目中Session的詳細步驟

    在開發(fā)Spring Boot項目時,我們通常會遇到如何高效管理Session的問題,默認情況下,Spring Boot會將Session存儲在內(nèi)存中,今天,我們將學習如何將Session存儲從內(nèi)存切換到Redis,并驗證配置是否成功,需要的朋友可以參考下
    2024-06-06
  • 你了解Redis事務嗎

    你了解Redis事務嗎

    說到事務,大家會立刻想到Mysql的事務,所謂的事務就是對數(shù)據(jù)進行一系列的操作,要么都執(zhí)行成功,要么都執(zhí)行失敗,下面就介紹一下Redis如何實現(xiàn)事務,感興趣的可以了解一下
    2022-08-08
  • 一文詳解Redis的主從同步原理

    一文詳解Redis的主從同步原理

    Redis為了保證服務高可用,其中一種實現(xiàn)就是主從模式,本篇文章將對主從模式中為了保證主節(jié)點和從節(jié)點數(shù)據(jù)一致而實現(xiàn)的主從同步機制進行學習,感興趣的同學可以參考閱讀下
    2023-07-07
  • 深入了解Redis的看門狗機制

    深入了解Redis的看門狗機制

    Redis鎖的延期機制,通常被稱為看門狗機制,本文就拉介紹一下Redis的看門狗機制,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-12-12
  • springboot中操作redis實例分享

    springboot中操作redis實例分享

    本文介紹了如何在Spring?Boot應用中整合Redis緩存技術(shù),包括配置Redis連接、定義Redis模板、實現(xiàn)Redis的基本操作以及使用Spring?Cache注解。這些內(nèi)容可幫助開發(fā)者快速掌握Spring?Boot與Redis的集成,并提高應用性能。
    2023-06-06
  • Redis MGET命令深度解析

    Redis MGET命令深度解析

    Redis的MGET命令是一種高效的批量讀取操作,可以顯著提高讀取性能,減少網(wǎng)絡往返的次數(shù),本文從MGET命令的機制實現(xiàn)、底層原理、應用場景及性能優(yōu)化等多個維度,深入解析Redis中的MGET命令的工作方式,并對它與其他批量操作命令的對比進行了詳細介紹
    2024-09-09

最新評論

西充县| 承德县| 涿鹿县| 济阳县| 开江县| 观塘区| 清涧县| 景洪市| 龙泉市| 泰宁县| 罗平县| 思南县| 游戏| 德昌县| 万荣县| 台前县| 文昌市| 遵化市| 南安市| 上杭县| 嘉祥县| 安康市| 泊头市| 万源市| 柳州市| 临邑县| 塔河县| 明溪县| 东阿县| 深泽县| 临泽县| 图木舒克市| 常山县| 满洲里市| 正镶白旗| 安达市| 嘉峪关市| 枣强县| 江油市| 尤溪县| 万山特区|