国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Redis數(shù)據(jù)結(jié)構(gòu)簡介

這篇具有很好參考價值的文章主要介紹了Redis數(shù)據(jù)結(jié)構(gòu)簡介。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

Redis數(shù)據(jù)結(jié)構(gòu)簡介對redis來說,所有的key(鍵)都是字符串。

?

?

1.String 字符串類型

是redis中最基本的數(shù)據(jù)類型,一個key對應(yīng)一個value。

?

String類型是二進(jìn)制安全的,意思是 redis 的 string 可以包含任何數(shù)據(jù)。如數(shù)字,字符串,jpg圖片或者序列化的對象。

?

使用:get 、 set 、 del 、 incr、 decr 等

?

復(fù)制代碼

127.0.0.1:6379> set hello world

OK

127.0.0.1:6379> get hello

"world"

127.0.0.1:6379> del hello

(integer) 1

127.0.0.1:6379> get hello

(nil)

127.0.0.1:6379> get counter

"2"

127.0.0.1:6379> incr counter

(integer) 3

127.0.0.1:6379> get counter

"3"

127.0.0.1:6379> incrby counter 100

(integer) 103

127.0.0.1:6379> get counter

"103"

127.0.0.1:6379> decr counter

(integer) 102

127.0.0.1:6379> get counter

"102"

復(fù)制代碼

實(shí)戰(zhàn)場景:

?

1.緩存: 經(jīng)典使用場景,把常用信息,字符串,圖片或者視頻等信息放到redis中,redis作為緩存層,mysql做持久化層,降低mysql的讀寫壓力。

?

2.計數(shù)器:redis是單線程模型,一個命令執(zhí)行完才會執(zhí)行下一個,同時數(shù)據(jù)可以一步落地到其他的數(shù)據(jù)源。

?

3.session:常見方案spring session + redis實(shí)現(xiàn)session共享,

?

?

?

2.Hash (哈希)

是一個Mapmap,指值本身又是一種鍵值對結(jié)構(gòu),如 value={{field1,value1},......fieldN,valueN}}

?

?

?

?

?

使用:所有hash的命令都是 h 開頭的 hget 、hset 、 hdel 等

?

復(fù)制代碼

127.0.0.1:6379> hset user name1 hao

(integer) 1

127.0.0.1:6379> hset user email1 hao@163.com

(integer) 1

127.0.0.1:6379> hgetall user

1) "name1"

2) "hao"

3) "email1"

4) "hao@163.com"

127.0.0.1:6379> hget user user

(nil)

127.0.0.1:6379> hget user name1

"hao"

127.0.0.1:6379> hset user name2 xiaohao

(integer) 1

127.0.0.1:6379> hset user email2 xiaohao@163.com

(integer) 1

127.0.0.1:6379> hgetall user

1) "name1"

2) "hao"

3) "email1"

4) "hao@163.com"

5) "name2"

6) "xiaohao"

7) "email2"

8) "xiaohao@163.com"

復(fù)制代碼

實(shí)戰(zhàn)場景:

?

1.緩存: 能直觀,相比string更節(jié)省空間,的維護(hù)緩存信息,如用戶信息,視頻信息等。

?

?

?

?3.鏈表?

List 說白了就是鏈表(redis 使用雙端鏈表實(shí)現(xiàn)的 List),是有序的,value可以重復(fù),可以通過下標(biāo)取出對應(yīng)的value值,左右兩邊都能進(jìn)行插入和刪除數(shù)據(jù)。

?

?

?

使用列表的技巧

?

lpush+lpop=Stack(棧)

lpush+rpop=Queue(隊(duì)列)

lpush+ltrim=Capped Collection(有限集合)

lpush+brpop=Message Queue(消息隊(duì)列)

?

?

使用:

?

復(fù)制代碼

127.0.0.1:6379> lpush mylist 1 2 ll ls mem

(integer) 5

127.0.0.1:6379> lrange mylist 0 -1

1) "mem"

2) "ls"

3) "ll"

4) "2"

5) "1"

127.0.0.1:6379>

復(fù)制代碼

實(shí)戰(zhàn)場景:

?

1.timeline:例如微博的時間軸,有人發(fā)布微博,用lpush加入時間軸,展示新的列表信息。

?

?

?

4.Set 集合

集合類型也是用來保存多個字符串的元素,但和列表不同的是集合中 1. 不允許有重復(fù)的元素,2.集合中的元素是無序的,不能通過索引下標(biāo)獲取元素,3.支持集合間的操作,可以取多個集合取交集、并集、差集。

?

?

?

?

?

?

?

使用:命令都是以s開頭的 sset 、srem、scard、smembers、sismember

?

復(fù)制代碼

127.0.0.1:6379> sadd myset hao hao1 xiaohao hao

(integer) 3

127.0.0.1:6379> SMEMBERS myset

1) "xiaohao"

2) "hao1"

3) "hao"

127.0.0.1:6379> SISMEMBER myset hao

(integer) 1

復(fù)制代碼

?

?

實(shí)戰(zhàn)場景;

?

1.標(biāo)簽(tag),給用戶添加標(biāo)簽,或者用戶給消息添加標(biāo)簽,這樣有同一標(biāo)簽或者類似標(biāo)簽的可以給推薦關(guān)注的事或者關(guān)注的人。

?

2.點(diǎn)贊,或點(diǎn)踩,收藏等,可以放到set中實(shí)現(xiàn)

?

?

?

5.zset 有序集合

有序集合和集合有著必然的聯(lián)系,保留了集合不能有重復(fù)成員的特性,區(qū)別是,有序集合中的元素是可以排序的,它給每個元素設(shè)置一個分?jǐn)?shù),作為排序的依據(jù)。

?

(有序集合中的元素不可以重復(fù),但是score 分?jǐn)?shù) 可以重復(fù),就和一個班里的同學(xué)學(xué)號不能重復(fù),但考試成績可以相同)。

?

?

?

?

?

使用: 有序集合的命令都是 以 z 開頭 zadd 、 zrange、 zscore文章來源地址http://www.zghlxwxcb.cn/news/detail-469450.html

到了這里,關(guān)于Redis數(shù)據(jù)結(jié)構(gòu)簡介的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • redis核心數(shù)據(jù)結(jié)構(gòu)

    redis核心數(shù)據(jù)結(jié)構(gòu)

    redis下載地址:Download | Redis linux進(jìn)入redis目錄首先使用make命令進(jìn)行c++的編譯,修改redis.conf文件: 啟動退出相關(guān)命令: redis五種數(shù)據(jù)結(jié)構(gòu)圖: 1、常用命令 2、應(yīng)用場景 1)、單值緩存 2)、對象緩存 3)、分布式鎖? 4)、計數(shù)器 5)?、計數(shù)器 6)?、分布式系統(tǒng)全局序列號 1、

    2024年02月09日
    瀏覽(20)
  • Redis 數(shù)據(jù)結(jié)構(gòu)詳解

    Redis 數(shù)據(jù)結(jié)構(gòu)詳解

    Redis 數(shù)據(jù)類型分為:字符串類型、散列類型、列表類型、集合類型、有序集合類型。 Redis 這么火,它運(yùn)行有多塊?一臺普通的筆記本電腦,可以在1秒鐘內(nèi)完成十萬次的讀寫操作。 原子操作:最小的操作單位,不能繼續(xù)拆分。即最小的執(zhí)行單位,不會被其他命令插入。高并發(fā)

    2024年02月05日
    瀏覽(22)
  • Redis的數(shù)據(jù)結(jié)構(gòu)

    Redis是一款高性能的鍵值存儲數(shù)據(jù)庫,支持多種數(shù)據(jù)結(jié)構(gòu)。在Redis中,數(shù)據(jù)結(jié)構(gòu)是指在Redis中存儲和操作數(shù)據(jù)的方式。Redis支持的數(shù)據(jù)結(jié)構(gòu)包括字符串、哈希表、列表、集合和有序集合。 字符串是Redis中最基本的數(shù)據(jù)結(jié)構(gòu),可以存儲任何類型的數(shù)據(jù),包括數(shù)字、文本和二進(jìn)制數(shù)

    2024年02月09日
    瀏覽(17)
  • Redis常見數(shù)據(jù)結(jié)構(gòu)

    Redis常見數(shù)據(jù)結(jié)構(gòu)

    Redis是一個key-value的數(shù)據(jù)庫,key一般是String類型,但是value的類型多種多樣 在學(xué)習(xí)Redis不同數(shù)據(jù)類型時,我們可以在官網(wǎng)( Redis官網(wǎng))查看不同的命令: 也可以使用使用help @xxx 命令的方式查看 通用命令是部分?jǐn)?shù)據(jù)類型都可以使用的指令,常見的有: KEYS:查看符合模板的所有k

    2024年02月13日
    瀏覽(23)
  • Redis底層數(shù)據(jù)結(jié)構(gòu)

    SDS全稱是Simple Dynamic String,具有如下顯著的特點(diǎn): 常數(shù)復(fù)雜度獲取字符串長度:C語言獲取一個字符串的長度需要遍歷整個字符串時間復(fù)雜度為O(N),而SDS在屬性len中記錄了字符串長度,獲取字符串長度的時間復(fù)雜度為O(1)。 杜絕緩沖區(qū)溢出:C字符串在執(zhí)行拼接字符串時,如果

    2024年02月13日
    瀏覽(33)
  • redis 數(shù)據(jù)結(jié)構(gòu)(二)

    redis 數(shù)據(jù)結(jié)構(gòu)(二)

    整數(shù)集合是 ?Set 對象的底層實(shí)現(xiàn)之一。當(dāng)一個 Set 對象只包含整數(shù)值元素,并且元素數(shù)量不時,就會使用整數(shù)集這個數(shù)據(jù)結(jié)構(gòu)作為底層實(shí)現(xiàn)。 整數(shù)集合本質(zhì)上是一塊連續(xù)內(nèi)存空間,它的結(jié)構(gòu)定義如下: 可以看到,保存元素的容器是一個 contents 數(shù)組,雖然 contents 被聲明為 i

    2024年02月09日
    瀏覽(23)
  • 【redis】redis的5種數(shù)據(jù)結(jié)構(gòu)及其底層實(shí)現(xiàn)原理

    【redis】redis的5種數(shù)據(jù)結(jié)構(gòu)及其底層實(shí)現(xiàn)原理

    Redis支持五種數(shù)據(jù)類型:string(字符串),hash(哈希),list(列表),set(無序集合)及zset(有序集合)。 在秒殺項(xiàng)目里,我用過redis的Set和Hash結(jié)構(gòu): String:一個 key 對應(yīng)一個字符串,string是Redis 最基本的數(shù)據(jù)類型。(字節(jié)的abase框架只實(shí)現(xiàn)了redis的string數(shù)據(jù)結(jié)構(gòu),導(dǎo)致我們?nèi)?/p>

    2024年02月09日
    瀏覽(25)
  • Redis五種數(shù)據(jù)結(jié)構(gòu)底層編碼結(jié)構(gòu)

    Redis五種數(shù)據(jù)結(jié)構(gòu)底層編碼結(jié)構(gòu)

    Redis中的 任意數(shù)據(jù)類型的鍵和值都會被封裝為一個RedisObject ,也叫做Redis對象,源碼如下: 對象頭不包含數(shù)據(jù)就已經(jīng)占16字節(jié),如果數(shù)據(jù)存string型,一個string一個對象頭比較浪費(fèi)空間,存大量數(shù)據(jù)時還是建議使用集合,這樣可以共用一個對象頭更加節(jié)省空間 Redis中會根據(jù)存儲

    2024年02月11日
    瀏覽(20)
  • Redis內(nèi)部數(shù)據(jù)結(jié)構(gòu)Dict結(jié)構(gòu)詳解

    Redis內(nèi)部數(shù)據(jù)結(jié)構(gòu)Dict結(jié)構(gòu)詳解

    dict的數(shù)據(jù)結(jié)構(gòu)定義 dict的創(chuàng)建(dictCreate) dict的查找(dictFind) dict的插入(dictAdd和dictReplace) dict的刪除(dictDelete) 如果你使用過Redis,一定會像我一樣對它的內(nèi)部實(shí)現(xiàn)產(chǎn)生興趣?!禦edis內(nèi)部數(shù)據(jù)結(jié)構(gòu)詳解》是我準(zhǔn)備寫的一個系列,也是我個人對于之前研究Redis的一個階段性

    2024年01月21日
    瀏覽(20)
  • Redis數(shù)據(jù)結(jié)構(gòu)學(xué)習(xí)筆記

    Redis數(shù)據(jù)結(jié)構(gòu)學(xué)習(xí)筆記

    圖文主要參考小林Coding的圖解redis數(shù)據(jù)結(jié)構(gòu) 除了它是內(nèi)存數(shù)據(jù)庫,使得所有的操作都在內(nèi)存上進(jìn)?之外,還有?個重要因素,它實(shí)現(xiàn)的數(shù)據(jù)結(jié)構(gòu),使 得我們對數(shù)據(jù)進(jìn)?增刪查改操作時,Redis 能?效的處理。 :::tips redisDb 結(jié)構(gòu) ,表示 Redis 數(shù)據(jù)庫的結(jié)構(gòu),結(jié)構(gòu)體?存放了指向了

    2024年02月02日
    瀏覽(16)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包