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

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

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

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

簡(jiǎn)潔,高效,可維護(hù)

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

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

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

【強(qiáng)制】以英文字母開(kāi)頭,命名中只能出現(xiàn)小寫(xiě)字母、數(shù)字、英文點(diǎn)號(hào)(.)和英文半角冒號(hào)(??;

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

2 、命名規(guī)范

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

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

2)邏輯含義段:

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

【強(qiáng)制】同一業(yè)務(wù)邏輯含義段的單詞之間使用英文半角點(diǎn)號(hào) (.)分割,用來(lái)表示一個(gè)完整的語(yǔ)義

3)value類(lèi)型:

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

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

3 、 value 設(shè)計(jì)

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

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

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

1、【強(qiáng)制】使用Redis進(jìn)行緩存時(shí),必須進(jìn)行申請(qǐng)。申請(qǐng)之前,需要拿出使用的合理方案,然后進(jìn)行評(píng)估,避免隨意使用。

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

3、【強(qiáng)制】 關(guān)于過(guò)期時(shí)間

Redis key一定要設(shè)置過(guò)期時(shí)間。要跟自己的業(yè)務(wù)場(chǎng)景,需要對(duì)key設(shè)置合理的過(guò)期時(shí)間??梢栽趯?xiě)入key時(shí),就要追加過(guò)期時(shí)間;也可以在需要寫(xiě)入另一個(gè)key時(shí),刪除上一個(gè)key。

說(shuō)明:

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

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

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

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

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

6、【強(qiáng)制】禁止大key

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

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

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

(3)每個(gè)key不要超過(guò)10Kb。

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

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

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

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

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

出現(xiàn)問(wèn)題最多的就是超時(shí)問(wèn)題,因?yàn)槭褂昧薕(N)的操作,導(dǎo)致服務(wù)超時(shí),甚至服務(wù)不可用。

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

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

相關(guān)文章

  • 一文詳解Redis中的持久化

    一文詳解Redis中的持久化

    這篇文章主要介紹了一文詳解Redis中的持久化,持久化功能有效地避免因進(jìn)程退出造成的數(shù)據(jù)丟失問(wèn)題,當(dāng)下次重啟時(shí)利用之前持久化的文件即可實(shí)現(xiàn)數(shù)據(jù)恢復(fù)
    2022-09-09
  • redis中5種數(shù)據(jù)基礎(chǔ)查詢命令

    redis中5種數(shù)據(jù)基礎(chǔ)查詢命令

    本文主要介紹了redis中5種數(shù)據(jù)基礎(chǔ)查詢命令,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • Redis基于Bitmap實(shí)現(xiàn)用戶簽到功能

    Redis基于Bitmap實(shí)現(xiàn)用戶簽到功能

    很多應(yīng)用上都有用戶簽到的功能,尤其是配合積分系統(tǒng)一起使用。本文主要介紹了Redis基于Bitmap實(shí)現(xiàn)用戶簽到功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • ELK配置轉(zhuǎn)存redis緩存采集nginx訪問(wèn)日志的操作方法

    ELK配置轉(zhuǎn)存redis緩存采集nginx訪問(wèn)日志的操作方法

    本文介紹了在服務(wù)器上部署MySQL及如何啟動(dòng)MySQL服務(wù),并詳細(xì)說(shuō)明了如何查找安裝軟件的日志文件位置,通過(guò)使用rpm命令查詢MySQL服務(wù)的日志文件位置,以及通過(guò)編輯Logstash配置文件來(lái)添加MySQL日志信息,感興趣的朋友一起看看吧
    2024-11-11
  • Redis實(shí)現(xiàn)數(shù)據(jù)的交集、并集、補(bǔ)集的示例

    Redis實(shí)現(xiàn)數(shù)據(jù)的交集、并集、補(bǔ)集的示例

    本文主要介紹了Redis實(shí)現(xiàn)數(shù)據(jù)的交集、并集、補(bǔ)集的示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • redis實(shí)現(xiàn)共同好友的思路詳解

    redis實(shí)現(xiàn)共同好友的思路詳解

    微信朋友圈大家都玩過(guò)吧,那么朋友圈的點(diǎn)贊、評(píng)論只能看到自己好友的信息是怎么操作的呢?下面通過(guò)本文給大家分享下此功能的實(shí)現(xiàn)流程,對(duì)redis實(shí)現(xiàn)共同好友的方法感興趣的朋友一起看看吧
    2021-05-05
  • Redis高效率原因及數(shù)據(jù)結(jié)構(gòu)分析

    Redis高效率原因及數(shù)據(jù)結(jié)構(gòu)分析

    這篇文章主要為大家詳細(xì)的介紹了Redis高效的原因以及分析了Redis高效的數(shù)據(jù)結(jié)構(gòu),有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2021-09-09
  • 分布式鎖三種實(shí)現(xiàn)方式及對(duì)比

    分布式鎖三種實(shí)現(xiàn)方式及對(duì)比

    這篇文章主要介紹了分布式鎖三種實(shí)現(xiàn)方式及對(duì)比,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04
  • Redis分片集群的實(shí)現(xiàn)示例

    Redis分片集群的實(shí)現(xiàn)示例

    本文介紹了搭建Redis分片集群,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-12-12
  • Redis與數(shù)據(jù)庫(kù)數(shù)據(jù)一致性的原因及解決方案

    Redis與數(shù)據(jù)庫(kù)數(shù)據(jù)一致性的原因及解決方案

    Redis作為一種高效的鍵值對(duì)存儲(chǔ)系統(tǒng),常用于緩存數(shù)據(jù)庫(kù)減少I(mǎi)O操作,下面這篇文章主要介紹了Redis與數(shù)據(jù)庫(kù)數(shù)據(jù)一致性的原因及解決方案,文中介紹的非常詳細(xì),需要的朋友可以參考下
    2025-04-04

最新評(píng)論

辰溪县| 旬阳县| 扶余县| 团风县| 潞西市| 大竹县| 大竹县| 青冈县| 金乡县| 绥德县| 巴青县| 如东县| 江孜县| 林甸县| 海城市| 苍南县| 会泽县| 安徽省| 论坛| 凤山县| 来凤县| 板桥市| 五华县| 抚远县| 玉溪市| 嘉禾县| 和田市| 任丘市| 张家口市| 钦州市| 土默特右旗| 广昌县| 随州市| 蚌埠市| 丰原市| 峨眉山市| 潜江市| 隆林| 昆明市| 武安市| 沙洋县|