新聞中心
Redis作為一種開源的高性能、高可用、靈活的內(nèi)存數(shù)據(jù)庫(kù),廣泛應(yīng)用于Web應(yīng)用的緩存、消息隊(duì)列、在線計(jì)數(shù)等方面。Redis支持?jǐn)?shù)據(jù)類型豐富,它既支持String類型,也支持復(fù)雜的數(shù)據(jù)結(jié)構(gòu),使得開發(fā)者能夠輕松的實(shí)現(xiàn)對(duì)數(shù)據(jù)的相對(duì)值設(shè)置。
在Redis中,對(duì)數(shù)值型(string)值的操作,能夠以比較直觀的方式讓Redis來(lái)實(shí)現(xiàn)相對(duì)值設(shè)置。假設(shè)A、B、C三個(gè)KEY分別對(duì)應(yīng)了數(shù)值1、2、3,那么我們可以使用Redis的INCRBY(increment)方法實(shí)現(xiàn)A、B、C的相對(duì)值設(shè)置:
1. INCRBY key
通過(guò)INCRBY方法,將key對(duì)應(yīng)的數(shù)值的增/減amount,返回操作后的值
// 將A、B、C對(duì)應(yīng)的數(shù)值分別增加1
redis> incrby A 1
1
redis> incrby B 1
2
redis> incrby C 1
3
2. DECRBY key
將key對(duì)應(yīng)的數(shù)值減少amount,返回操作后的值
// 將A、B、C對(duì)應(yīng)的數(shù)值分別減少1
redis> decrby A 1
0
redis> decrby B 1
1
redis> decrby C 1
2
由上面的操作示例能夠直觀地看出,Redis在利用INCRBY/DECRBY方法時(shí),對(duì)每個(gè)數(shù)值自增/減,都是相對(duì)于當(dāng)前數(shù)值進(jìn)行操作,而不是相對(duì)于其他key值。
另外,在Redis中也有一個(gè)復(fù)合操作MSET/MGET,即可以一次性設(shè)置多個(gè)key值,也可以一次性獲取多個(gè)key值,很適合實(shí)現(xiàn)類似投幣和開門這樣的相關(guān)值設(shè)置場(chǎng)景:
// 投幣操作
// 將money的余額減去1,將open的狀態(tài)設(shè)置為ON
redis> mset money 10 open OFF
OK
redis> decrby money 1
9
redis> set open ON
OK
// 開門操作
// 獲取money的余額和open的狀態(tài)
redis> mget money open
1) “8”
2) “ON”
由上面的操作示例可以看到,Redis給我們提供了多種特性,可以用一種簡(jiǎn)單的方式,完成相關(guān)值設(shè)置的需求。除此之外Redis也支持兩個(gè)key直接進(jìn)行計(jì)算、hash中對(duì)某個(gè)field加減,可以說(shuō),Redis在實(shí)現(xiàn)相對(duì)值設(shè)置方面,非常的強(qiáng)大與靈活。
創(chuàng)新互聯(lián)成都網(wǎng)站建設(shè)公司提供專業(yè)的建站服務(wù),為您量身定制,歡迎來(lái)電(028-86922220)為您打造專屬于企業(yè)本身的網(wǎng)絡(luò)品牌形象。
成都創(chuàng)新互聯(lián)品牌官網(wǎng)提供專業(yè)的網(wǎng)站建設(shè)、設(shè)計(jì)、制作等服務(wù),是一家以網(wǎng)站建設(shè)為主要業(yè)務(wù)的公司,在網(wǎng)站建設(shè)、設(shè)計(jì)和制作領(lǐng)域具有豐富的經(jīng)驗(yàn)。
標(biāo)題名稱:利用Redis實(shí)現(xiàn)相對(duì)值設(shè)置(redis設(shè)置相對(duì)值)
標(biāo)題路徑:http://www.dlmjj.cn/article/cdcgiio.html


咨詢
建站咨詢
