成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

Redis的五種基本數(shù)據(jù)類(lèi)型是什么-創(chuàng)新互聯(lián)

創(chuàng)新互聯(lián)www.cdcxhl.cn八線動(dòng)態(tài)BGP香港云服務(wù)器提供商,新人活動(dòng)買(mǎi)多久送多久,劃算不套路!

創(chuàng)新互聯(lián)是一家專(zhuān)業(yè)提供青神企業(yè)網(wǎng)站建設(shè),專(zhuān)注與成都網(wǎng)站制作、做網(wǎng)站、H5響應(yīng)式網(wǎng)站、小程序制作等業(yè)務(wù)。10年已為青神眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專(zhuān)業(yè)網(wǎng)站制作公司優(yōu)惠進(jìn)行中。

Redis的五種基本數(shù)據(jù)類(lèi)型是什么?很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來(lái)學(xué)習(xí)下,希望你能有所收獲。

Redis作為緩存具有極其豐富的功能,比如計(jì)數(shù)器、好友關(guān)系以及排行榜等等。而Redis之所能夠?qū)崿F(xiàn)如此強(qiáng)大的功能,完全是依賴著它的基本數(shù)據(jù)結(jié)構(gòu)。今天我們來(lái)看看Redis的五種基本的數(shù)據(jù)結(jié)構(gòu),分別是字符串(strings), 散列(hashes), 列表(lists), 集合(sets)以及有序集合(zset)。

1、字符串(strings)

絕大部分編程語(yǔ)言中都少不了的基本數(shù)據(jù)類(lèi)型就是字符串(strings),數(shù)據(jù)庫(kù)Redis也不例外。下面我們來(lái)看一下關(guān)于字符串的基本操作:

set key value 設(shè)置值

get key 獲取某個(gè)key的值

mset key1 value1 key2 value2 批量設(shè)置并且是原子的,可以用來(lái)減少網(wǎng)絡(luò)時(shí)間消耗

mget key1 key2 批量獲取并且是原子的,可以用來(lái)減少網(wǎng)絡(luò)時(shí)間消耗

incr key 自增指定key的值

decr key 自減指定key的值

incrby key value 自增指定數(shù)值

decrby key value 自減指定數(shù)值

incrbyfloat key floatvalue 增加指定浮點(diǎn)數(shù),前面幾個(gè)操作就可以用來(lái)實(shí)現(xiàn)計(jì)數(shù)器的功能。

setnx key value 如果不存在該key則可以設(shè)置成功,否則會(huì)失敗,加上過(guò)期時(shí)間限制,則是redis實(shí)現(xiàn)分布式鎖的一種方式(后面會(huì)提到)。

set key value xx 與前面相反,如果存在則設(shè)置成功,否則失敗(相當(dāng)于更新操作)

2、散列(hashes)

我們可以把hash理解為小型Redis,Redis在底層實(shí)現(xiàn)上和Java中的HashMap差不多,都是使用數(shù)組+鏈表的二維結(jié)構(gòu)實(shí)現(xiàn)的。不一樣的是,在Redis中字典的值只能是字符串,而且他們r(jià)ehash的方式也不同,在Redis中使用的是漸進(jìn)式rehash。

hset key field value 設(shè)置字典中某個(gè)key的值

hsetnx key field value 設(shè)置字典中某個(gè)key的值(不存在的)

hmset key field1 value1 field2 value2 … 批量設(shè)置

hget key field 獲取字典中某個(gè)key的值

hmget key field1 field2 批量獲取

hgetall key 獲取全部

hdel key field 刪除某個(gè)key

hexists key field 判斷是否存在

hlen key 獲取指定key對(duì)應(yīng)的字典中的存儲(chǔ)個(gè)數(shù)

hvals key 返回所有的value

hkeys key 返回所有的key

hincrby key field increValue 增加某個(gè)value的值(也可以增加負(fù)數(shù))

hincrbyfloat key field floatValue 增加某個(gè)value的值(浮點(diǎn)數(shù))

3、列表(lists)

Redis中的列表相當(dāng)于Java中的LinkedList,也就是底層是通過(guò)鏈表來(lái)實(shí)現(xiàn)的,所以對(duì)于list來(lái)說(shuō)插入刪除操作很快,但索引定位非常慢。Redis提供了許多對(duì)于list的操作,如出入等操作,你可以充分利用它們來(lái)實(shí)現(xiàn)一個(gè)棧或者隊(duì)列。

lpush key item1 item2 item3… 從左入棧

rpush key item1 item2 item3… 從右入棧

lpop key 從左出棧

rpop key 從右出棧

lindex key index 獲取指定索引的元素 O(n)謹(jǐn)慎使用

lrange key start end 獲取指定范圍的元素 O(n)謹(jǐn)慎使用

linsert key before|after item newitem 在指定元素的前面或者后面添加新元素

lrem key count value 刪除指定個(gè)數(shù)值為value的元素

count = 0 :刪除所有值為value的元素

count > 0 :從左到右刪除 count 個(gè)值為 value 的元素

count < 0 :從右到做刪除 |count| 個(gè)值為 value 的元素

ltrim key start end 保留指定范圍的元素

lset key index newValue 更新某個(gè)索引的值

blpop key timeout 沒(méi)有則阻塞(timeout指定阻塞時(shí)間 為0代表永久)

brpop key timeout 沒(méi)有則阻塞(timeout指定阻塞時(shí)間 為0代表永久) 這兩個(gè)可以用來(lái)實(shí)現(xiàn)消費(fèi)者生產(chǎn)者

4、集合(sets)

Redis中的set相當(dāng)于Java中的HashSet(無(wú)序集合),其中里面的元素不可以重復(fù),我們可以利用它實(shí)現(xiàn)一些去重的功能。我們還有對(duì)幾個(gè)集合進(jìn)行取交集,取并集等操作,這些操作就可以獲取不同用戶之間的共同好友、共同愛(ài)好等等。

sadd key value 添加元素

sdel key value 刪除某個(gè)元素

sismember key value 判斷是否是集合中的元素

srandmember key count 隨機(jī)獲取指定個(gè)數(shù)的元素(不會(huì)影響集合結(jié)構(gòu))

spop key count 從集合中隨機(jī)彈出元素(會(huì)破壞結(jié)合結(jié)構(gòu))

smembers key 獲取集合所有元素 O(n)復(fù)雜度

scard key 獲取集合個(gè)數(shù)

sinter set1 set2 &hellip; 獲取所有集合中的交集

sdiff set1 set2 &hellip; 獲取所有集合中的差集

sunion set1 set2 &hellip; 獲取所有集合中的并集

5、有序集合(zset)

Redis 中的 zset 是一個(gè)有序集合,通過(guò)它可以實(shí)現(xiàn)很多有意思的功能,比如學(xué)生成績(jī)排行榜,視頻播放量排行榜等等。zset 中是使用 跳表 來(lái)實(shí)現(xiàn)的,我們知道只有數(shù)組這種連續(xù)的空間才能使用二分查找進(jìn)行快速的定位,而鏈表是不可以的。跳表幫助鏈表查找的時(shí)候節(jié)省了很多時(shí)間(使用跳的方式來(lái)遍歷索引來(lái)進(jìn)行有序插入)。 

看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道,感謝您對(duì)創(chuàng)新互聯(lián)的支持。

標(biāo)題名稱:Redis的五種基本數(shù)據(jù)類(lèi)型是什么-創(chuàng)新互聯(lián)
文章出自:http://jinyejixie.com/article48/ccepep.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航、網(wǎng)站收錄建站公司、網(wǎng)站維護(hù)Google、定制開(kāi)發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)
贡嘎县| 巫山县| 西青区| 神池县| 灵璧县| 澎湖县| 泗水县| 沽源县| 日照市| 德格县| 丰台区| 孝义市| 南昌市| 博兴县| 尉氏县| 普兰店市| 龙游县| 通城县| 潍坊市| 中江县| 南昌市| 奈曼旗| 石泉县| 宁化县| 玉环县| 攀枝花市| 涡阳县| 古交市| 望江县| 昌吉市| 三河市| 宁乡县| 温宿县| 玉田县| 新建县| 山东省| 广南县| 民丰县| 侯马市| 左权县| 观塘区|