久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

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

      Redis使用教程欄目介紹其基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)

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

      推薦(免費(fèi)):redis使用教程

      Redis基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)

      Redis有5種基本數(shù)據(jù)結(jié)構(gòu):String(字符串)、list(列表)、set(集合)、hash(哈希)、zset(有序集合)

      字符串string

      字符串類型是Redis的value最簡(jiǎn)單的數(shù)據(jù)結(jié)構(gòu),類似與Java語言中的ArrayList(數(shù)字列表),不過在Redis里String是一種動(dòng)態(tài)字符串

      Redis里的String采用預(yù)分配冗余空間的方法

      [圖片上傳失敗…(image-724c60-1537973556456)]

      set & get

      >set keyname test OK  >get keyname test  //key如果存在就返回0 >setnx keyname test 0  >exists keyname  >del keyname 1  //批量設(shè)置 >mset key1 test1 key2 test2 OK  //批量獲取 >mget key1 key2 1) test1 2) test2

      key過期

      //設(shè)置5s后過期 >expire keyname 5  //setex是expire和set的復(fù)合寫法 >setex keyname 5 test OK  //5s后查詢 >get keyname NULL

      計(jì)數(shù)
      ps:value為數(shù)字的情況,可以使用incr和incrby計(jì)數(shù)

      >set num 10 OK  //incr默認(rèn)加1 >incr num 11  //incrby后面要加上數(shù)字 >incrby num ERR wrong number of arguments for 'incrby' command  //正確計(jì)數(shù) >incrby num 5 16

      列表list

      下面介紹一下redis的另外一種數(shù)據(jù)結(jié)構(gòu)list
      前面我們說redis里的string類似與java語言里面的ArrayList,則redis里的列表就類似與LinkList(鏈表),鏈表一個(gè)特別就是更新和新增特別快,查詢索引慢。

      為什么說類似與linklist?因?yàn)閞edis的list并非和linklist一樣,它其實(shí)是一種快速列表(quicklist)的形式,列表結(jié)構(gòu)如圖:

      [圖片上傳失敗…(image-625c1b-1537973556457)]

      這里要介紹一下壓縮列表(ziplist)了,壓縮列表是什么?其實(shí)就是連續(xù)的內(nèi)存空間

      從圖可以看出快速列表其實(shí)就是由壓縮列表和雙向的指針組成,不過我們知道鏈表是兩個(gè)指針的,也就是prev和next執(zhí)行,這就是快速列表和linklist的一個(gè)不同點(diǎn)了。

      PS:然后redis設(shè)計(jì)時(shí),為什么改成雙向指針?假如和鏈表一樣,用兩個(gè)指針prev、next,同樣可以實(shí)現(xiàn)遍歷,不過雙向指針有一個(gè)很明顯的優(yōu)點(diǎn),就是占用的內(nèi)存空間就相對(duì)少了。

      隊(duì)列和棧

      /* 隊(duì)列:First in first out */  //加兩個(gè)value >rpush keynames key1 key2 2  //計(jì)算 >llen keynames 2  >lpop keynames key1  >lpop keynames key2  //rpush會(huì)自動(dòng)過期的 >rpop keynames NULL  /* 棧:First in last out */  //同樣,加兩個(gè)元素 >rpush keynames key1 key2 2  >rpop keynames key2  >rpop keynames key1

      字典hash

      Redis的字典類似與java語言的hashmap,也是無序的二維結(jié)構(gòu),也即數(shù)組加列表的結(jié)構(gòu)。這是redis字典和hashmap類似的地。

      然后也有不同,比如rehash,刷新字典操作,hashmap是全部熱hash,當(dāng)字典足夠多時(shí),性能不是很好的,所以redis進(jìn)行改造,采用漸進(jìn)式的方式,為什么說是漸進(jìn)式?因?yàn)閞edis不會(huì)全部reload,而是保存新舊兩個(gè)字典,然后采用定時(shí)任務(wù),將舊hash的數(shù)據(jù)搬到新的hash,搬后在回收hash內(nèi)存空間

      字典(hash)的數(shù)組加鏈接結(jié)構(gòu):
      [圖片上傳失敗…(image-f5660f-1537973556457)]

      >hset keynames key1 "test1" 1  >hset keynames key2 "test2" 1  //批量set >hmset keynames key1 "test1" key2 "test2" OK  //獲取key1的值 >hget keynames key1 test1  //獲取hash為keynames的長度 >hlen keynames 2  //獲取全部 >hgetall keynames 1) key1 2) test1 3) key2 4) test2

      集合set

      redis的set和java語言中的hashset類型,是一種無序唯一的。

      >sadd keynames key1 1  //key1已經(jīng)加過了,所以返回1 >sadd keynames key1 key2 1  >smembers keynames 1) key2 2) key1  //查詢某個(gè)key是否存在,相當(dāng)與contains >sismember keynames key1 1  //相當(dāng)于count >scard keynames 2  //隨意彈出key1 >spop keynames key1

      有序集合zSet

      有序集合是redis里比較有特色的,它類似于SortedSet和HashMap的組合。其內(nèi)部實(shí)現(xiàn)是一種被稱作跳躍列表的數(shù)據(jù)結(jié)構(gòu)。有序集合一方面它就是一個(gè)set,所以每個(gè)元素都是唯一的,然后它可以給每個(gè)value賦值一個(gè)score,再根據(jù)這個(gè)score進(jìn)行排序,score就相當(dāng)于一個(gè)權(quán)限排序的標(biāo)識(shí)。

      ps:因?yàn)檫@個(gè)原因,有序集合可以被用來存儲(chǔ)粉絲信息,value值是粉絲id,score是關(guān)注時(shí)間

      //9.0是score也就是權(quán)重 >zadd keyname 9.0 math 1  >zadd keyname 9.2 history 1  //順序 >zrange keyname 0 -1 1) history 2) math  //逆序 >zrevrange keyname 0 -1 1) math 2) history  //相當(dāng)于count() >zcard keyname 2  獲取指定key的score >zscore keyname math 9

      跳躍列表 TODO

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)