欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Redis key命令key的儲存方式

 更新時間:2024年04月03日 11:18:28   作者:碼農(nóng)弓長先生  
這篇文章主要介紹了Redis key命令key的儲存方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

Redis是目前使用比較廣泛的nosql數(shù)據(jù)庫,它也是一種基于key-value結構的數(shù)據(jù)庫且支持多種數(shù)據(jù)類型,Redis中它的存儲是使用一張hash表用于存儲所有的key和對應value的地址。

因此key的命令是我們必須要掌握的。

前項

數(shù)據(jù)準備,首先我們先在redis中設置一些數(shù)據(jù)

arr1 =  beijing     
arr2 = shanghai   
arr3 = shenzhen 
arr4 = guangzhou
param1 = guangdong   
param2=hunan 
param3 = jiangxi 
param4 = hubei

Key命令使用

1. keys [pattern] 

查看當前庫的key(*代表通配符)。

該命令慎用,keys命令會掃描所有key,由于redis的執(zhí)行是串行執(zhí)行,當key過多時使用keys命令時會導致阻塞其他命令的執(zhí)行,從而導致redis服務的崩潰。

大多數(shù)生產(chǎn)使用redis時會將keys命令禁用。

keys *  查看所有的key

keys arr* 匹配以arr開頭的key

 

keys *guangzhou  匹配以guangzhou結尾的key 

keys param1  指定查看key為param1

 

2. exists [key . . .] 

判斷key是否存在,可以同時判斷多個key

exists arr1  判斷arr1 是否存在 返回1則存在 返回0則不存在

exists arr1 arr2 arr3 同時判斷arr1 arr2 arr3 是否存在 匹配到n個key則返回n

如果都不存在則返回0

 

 

3. type key

查看key的類型,只能支持單個判斷

4. del [key . . .]

刪除指定的key 刪除n個key 則返回n   

unlink [key . . .]異步刪除

 

5. exprie key [second]

設置key的過期時間

6. ttl key

查看key還剩多少時間過期,數(shù)字代表剩下多少秒, -2 代表已過期, -1 代表永不過期

 

7. dbsize 

查看當前key的數(shù)量

Key的存儲

redis中對key的存儲使用的是一張全局的hashtable來存儲,將每個key使用siphash函數(shù)生成一個64位的數(shù)字作為存儲在hashtable里的索引。

當不同的鍵被落在同一個索引下時,使用鏈表結構來存儲。

如下圖:

漸進式rehash

當相同的索引鍵鏈表節(jié)點數(shù)過大,超過整個hashtable的數(shù)量時,那么查找key的效率就會降低,因此redis則會對該全局hashtable進行rehash的操作。

如果 key的數(shù)量過大時直接進行rehash操作進行擴容時有可能會導致redis服務阻塞,因此redis則采用的是漸進式的rehash操作。

漸進式rehash的過程

redis在啟動時內(nèi)部默認會分配兩個hashtable(ht0 、ht1),在正常使用時則使用其中一個ht0,當需要進行rehash操作時ht1才需要被使用到。

漸進式rehash的操作步驟:

1、首先將原h(huán)t1的空間擴容,讓ht1同時有ht0 和 ht1兩個哈希表的空間大小。

2、進行rehash操作時,在ht0中維護一個索引計數(shù)器 rehashidx , 并將它的值設置為 0 。

3、在rehash期間,當執(zhí)行添加、刪除、查找或者更新操作時,redis會將ht0 哈希表在 rehashidx 索引上的所有鍵值對 rehash 到 ht1,同時rehashidx 的值加1。

4、當rehash的次數(shù)不斷增多時,ht0的所有鍵值對都會被 rehash 至 ht1,此時rehashidx 屬性的值設為 -1 ,則代表rehash 操作已經(jīng)全部完成,那么ht1和ht0的位置進行交換,前面提到的默認操作都是在ht0上的。

總之

rehash操作主要是解決由于hash沖突導致key鏈表過大影響性能,而使用漸進式rehash操作則是未來避免key數(shù)量過大因rehash導致redis服務的阻塞。

這些機制最終的目的都是為了能夠提高redis服務的性能。

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

相關文章

  • Redis exists命令bug分析(案例詳解)

    Redis exists命令bug分析(案例詳解)

    Redis EXISTS 命令用于檢查給定 key 是否存在,本文重點給大家介紹Redis exists命令bug分析,感興趣的朋友跟隨小編一起看看吧
    2022-02-02
  • redis的key出現(xiàn)的\xac\xed\x00\x05t\x00亂碼問題及解決

    redis的key出現(xiàn)的\xac\xed\x00\x05t\x00亂碼問題及解決

    這篇文章主要介紹了redis的key出現(xiàn)的\xac\xed\x00\x05t\x00亂碼問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • 同一份數(shù)據(jù)Redis為什么要存兩次

    同一份數(shù)據(jù)Redis為什么要存兩次

    這篇文章主要介紹了同一份數(shù)據(jù)Redis為什么要存兩次,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-01-01
  • SpringBoot 開啟Redis緩存及使用方法

    SpringBoot 開啟Redis緩存及使用方法

    用redis做緩存,是因為redis有著很優(yōu)秀的讀寫能力,在集群下可以保證數(shù)據(jù)的高可用,那么今天通過本文給大家講解下SpringBoot使用Redis的緩存的方法,感興趣的朋友一起看看吧
    2021-08-08
  • Redis數(shù)據(jù)庫原理深入刨析

    Redis數(shù)據(jù)庫原理深入刨析

    在之前的文章我們介紹過,Redis服務器在啟動之初,會初始化RedisServer的實例,在這個實例中存在很多重要的屬性結構,同理本篇博客中介紹的數(shù)據(jù)庫實現(xiàn)原理也會和其中的某些屬性相關,我們繼續(xù)看一下吧
    2022-11-11
  • Redis教程(十二):服務器管理命令總結

    Redis教程(十二):服務器管理命令總結

    這篇文章主要介紹了Redis教程(十二):服務器管理命令總結,本文講解了CONFIGGETparameter、CONFIG SETparameter value、FLUSHALL等命令,需要的朋友可以參考下
    2015-04-04
  • redis中token失效引發(fā)的一次生產(chǎn)事故

    redis中token失效引發(fā)的一次生產(chǎn)事故

    項目再測試的時候發(fā)現(xiàn)不定時token失效,本文主要介紹了redis中token失效引發(fā)的一次生產(chǎn)事故,文中通過示例代碼介紹的非常詳細,需要的朋友們下面隨著小編來一起學習學習吧
    2024-03-03
  • Redis實現(xiàn)和數(shù)據(jù)庫的數(shù)據(jù)同步

    Redis實現(xiàn)和數(shù)據(jù)庫的數(shù)據(jù)同步

    本文介紹了Redis與傳統(tǒng)數(shù)據(jù)庫數(shù)據(jù)同步的幾種常見方法,包括CacheAside、WriteThrough、WriteBehind,以及如何通過分布式事務、樂觀鎖、數(shù)據(jù)過期策略和消息隊列來解決數(shù)據(jù)一致性問題,每種方法都有其適用場景和優(yōu)缺點,需要根據(jù)具體需求進行選擇
    2025-01-01
  • Spring?Boot?3.0x的Redis?分布式鎖的概念和原理

    Spring?Boot?3.0x的Redis?分布式鎖的概念和原理

    Redis?分布式鎖是一種基于?Redis?的分布式鎖解決方案,它的原理是利用?Redis?的原子性操作實現(xiàn)鎖的獲取和釋放,從而保證共享資源的獨占性,這篇文章主要介紹了適合?Spring?Boot?3.0x的Redis?分布式鎖,需要的朋友可以參考下
    2024-08-08
  • Redis 事務知識點相關總結

    Redis 事務知識點相關總結

    這篇文章主要介紹了Redis 事務相關總結,幫助大家更好的理解和學習使用Redis,感興趣的朋友可以了解下
    2021-03-03

最新評論