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

redis key命名規(guī)范的設(shè)計

 更新時間:2024年03月15日 11:31:41   作者:liuyunshengsir  
如果結(jié)構(gòu)規(guī)劃不合理、命令使用不規(guī)范,會造成系統(tǒng)性能達到瓶頸、活動高峰系統(tǒng)可用性下降,也會增大運維難度,本文主要介紹了redis key命名規(guī)范的設(shè)計,感興趣的可以了解一下

一、實現(xiàn)目標(biāo)

簡潔,高效,可維護

二、鍵值設(shè)計規(guī)約

1 、 Redis key命名風(fēng)格

【推薦】Redis key命名需具有可讀性以及可管理性,不該使用含義不清的key以及特別長的key名;

【強制】以英文字母開頭,命名中只能出現(xiàn)小寫字母、數(shù)字、英文點號(.)和英文半角冒號(??;

【強制】不要包含特殊字符,如下劃線、空格、換行、單雙引號以及其他轉(zhuǎn)義字符;

2 、命名規(guī)范

【強制】命名規(guī)范:業(yè)務(wù)模塊名:業(yè)務(wù)邏輯含義:其他:value類型

1 )業(yè)務(wù)模塊名:具體的功能模塊

2)邏輯含義段:

【強制】不同業(yè)務(wù)邏輯含義使用英文半角冒號(:)分割,

【強制】同一業(yè)務(wù)邏輯含義段的單詞之間使用英文半角點號 (.)分割,用來表示一個完整的語義

3)value類型:

【強制】Redis key命名以key所代表的value類型結(jié)尾,以提高可讀性;

示例:user:basic.info:{userid}:string

3 、 value 設(shè)計

【強制】:拒絕bigkey(防止網(wǎng)卡流量、慢查詢)。

String類型控制在10KB以內(nèi),Hash、List、Set、ZSet元素個數(shù)不要超過5000。

三、業(yè)務(wù)規(guī)范

1、【強制】使用Redis進行緩存時,必須進行申請。申請之前,需要拿出使用的合理方案,然后進行評估,避免隨意使用。

2、【強制】Redis應(yīng)用場景應(yīng)該是純緩存服務(wù),功能主要是緩存數(shù)據(jù),緩存數(shù)據(jù)可丟失,除特殊需求外,需提供可行性、可實施的方案。

3、【強制】 關(guān)于過期時間

Redis key一定要設(shè)置過期時間。要跟自己的業(yè)務(wù)場景,需要對key設(shè)置合理的過期時間??梢栽趯懭雓ey時,就要追加過期時間;也可以在需要寫入另一個key時,刪除上一個key。

說明:

(1)若不設(shè)置的話,這些key會一直占用內(nèi)存不釋放,隨著時間的推移會越來越大,直到達到服務(wù)器的內(nèi)存上限,導(dǎo)致服務(wù)器宕機等重大事故;

(2)對于key的超時時長設(shè)置,可根據(jù)業(yè)務(wù)場景進行評估,設(shè)置合理有效期;

(3)某些業(yè)務(wù)的確需要長期有效,可以判斷即將到期時,重新設(shè)置有效期,避免引起熱點key問題。

4、【推薦】Redis的使用,應(yīng)該考慮冷熱數(shù)據(jù)分離,不該將所有數(shù)據(jù)全部放到Redis中,對于使用不頻繁,且無關(guān)緊要的信息存入MySQL,或日志文件中,Redis的數(shù)據(jù)存儲全部都是在內(nèi)存中的,成本昂貴。

5、【推薦】Redis有數(shù)據(jù)丟失風(fēng)險,程序處理數(shù)據(jù)時,應(yīng)該考慮丟失后的重新加載過程。

6、【強制】禁止大key

大key數(shù)據(jù)存?Redis,除了帶來極大的內(nèi)存占用外,在并發(fā)高時,很容易就會將網(wǎng)卡流量占滿,進而造成整個服務(wù)器上的所有服務(wù)不可用。雖然Redis支持512MB大小的string,但是假設(shè)1mb的string大key,每秒重復(fù)寫入10次,就會導(dǎo)致寫入網(wǎng)絡(luò)IO達10MB;

(1)讀寫大key會導(dǎo)致超時嚴(yán)重,網(wǎng)卡流量占滿,甚至阻塞服務(wù),更甚者導(dǎo)致宕機風(fēng)險。

(2)如果刪除大key,DEL命令可能阻塞Redis進程數(shù)十秒,使得其他請求阻塞,對應(yīng)用程序和Redis集群可用性造成嚴(yán)重的影響。

(3)每個key不要超過10Kb。

7、【強制】Redis一定不可使用Keys正則匹配操作。

8、【推薦】選擇合適的數(shù)據(jù)類型。

目前Redis支持的數(shù)據(jù)庫結(jié)構(gòu)類型較多:字符串(String),哈希(Hash),列表(List),集合(Set),有序集合(Sorted Set), Bitmap, HyperLogLog和地理空間索引(geospatial)等,需要根據(jù)業(yè)務(wù)場景選擇合適的類型。

在不能確定其它復(fù)雜數(shù)據(jù)結(jié)構(gòu)?定優(yōu)于String類型時,避免使用Redis的復(fù)雜數(shù)據(jù)結(jié)構(gòu)。 每種數(shù)據(jù)結(jié)構(gòu)都有相應(yīng)的使?場景,String類型是Redis中最簡單的數(shù)據(jù)類型,建議使用String類型。 但是考慮到具體的業(yè)務(wù)場景,綜合評估性能、存儲網(wǎng)絡(luò)等方面之后使用適當(dāng)?shù)臄?shù)據(jù)結(jié)構(gòu)。 需要根據(jù)業(yè)務(wù)場景選擇合適的類型,常見的如:String可以用作普通的K-V、簡單數(shù)據(jù)類類型等;Hash可以用作對象如居民、醫(yī)生等,包含較多屬性的信息;List可以用作息隊列、醫(yī)生同行/關(guān)注列表等;Set可以用于推薦;Sorted Set可以用于排行等。

9、【推薦】關(guān)于集合類操作

出現(xiàn)問題最多的就是超時問題,因為使用了O(N)的操作,導(dǎo)致服務(wù)超時,甚至服務(wù)不可用。

使用Set,Zset,List,Hash等集合類的O(N)操作時要評估當(dāng)前元素個數(shù)的規(guī)模以及將來的增長規(guī)模,對于短期就可能變?yōu)榇蠹系膋ey,要預(yù)估O(N)操作的元素數(shù)量,避免全量操作,可以使用HSCAN,SSCAN,ZSCAN進行漸進操作。集合元素數(shù)量過大在使用過程中會影響Redis的實際性能,Hash類元素個數(shù)建議盡量不要超過100,集合類、鏈表類數(shù)據(jù)盡量不要超過10k。元素數(shù)量過大可考慮拆分成多個key進行處理。

到此這篇關(guān)于redis key命名規(guī)范的設(shè)計的文章就介紹到這了,更多相關(guān)redis key命名規(guī)范內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 深入了解Redis的性能

    深入了解Redis的性能

    這篇文章主要介紹了Redis的性能,作者通過Visual Studio上的C#程序?qū)ζ溥M行了分析,需要的朋友可以參考下
    2015-06-06
  • Redis遍歷所有key的兩個命令(KEYS 和 SCAN)

    Redis遍歷所有key的兩個命令(KEYS 和 SCAN)

    這篇文章主要介紹了Redis遍歷所有key的兩個命令(KEYS 和 SCAN),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • Redis migrate數(shù)據(jù)遷移工具的使用教程

    Redis migrate數(shù)據(jù)遷移工具的使用教程

    這篇文章主要給大家介紹了關(guān)于Redis migrate數(shù)據(jù)遷移工具的使用教程,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者使用Redis具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • Redis中管道操作pipeline的實現(xiàn)

    Redis中管道操作pipeline的實現(xiàn)

    RedisPipeline是一種優(yōu)化客戶端與服務(wù)器通信的技術(shù),通過批量發(fā)送和接收命令減少網(wǎng)絡(luò)往返次數(shù),提高命令執(zhí)行效率,本文就來介紹一下Redis中管道操作pipeline的實現(xiàn),具有一定的參考價值,感興趣的可以了解一下
    2025-03-03
  • Redis的常用命令小結(jié)

    Redis的常用命令小結(jié)

    本文主要介紹了Redis的常用命令小結(jié),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • 使用Redis實現(xiàn)微信步數(shù)排行榜功能

    使用Redis實現(xiàn)微信步數(shù)排行榜功能

    這篇文章主要介紹了使用Redis實現(xiàn)微信步數(shù)排行榜功能,本文通過圖文實例代碼相結(jié)合給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-06-06
  • Redis持久化與主從復(fù)制的實踐

    Redis持久化與主從復(fù)制的實踐

    這篇文章主要介紹了Redis持久化與主從復(fù)制的實踐,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • 大家都應(yīng)該知道的Redis過期鍵與過期策略

    大家都應(yīng)該知道的Redis過期鍵與過期策略

    這篇文章主要給大家介紹了一些應(yīng)該知道的Redis過期鍵與過期策略的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用Redis具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • 解析Redis的緩存類型

    解析Redis的緩存類型

    本文主要介紹了Redis的緩存類型,主要介紹了4種緩存,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • 詳解Redis單線程的正確理解

    詳解Redis單線程的正確理解

    這篇文章主要介紹了詳解Redis單線程的正確理解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05

最新評論