国产精品色无码视频,国产av毛片影院精品资源,亚洲人成网站77777·c0m,囯产av无码片毛片一级,夜夜操www99视频,美女白嫩胸交在线观看,亚洲a毛片性生活

薈聚奇文、博采眾長(zhǎng)、見(jiàn)賢思齊
當(dāng)前位置:公文素材庫(kù) > 計(jì)劃總結(jié) > 工作總結(jié) > 電腦語(yǔ)言Redis學(xué)習(xí)總結(jié)

電腦語(yǔ)言Redis學(xué)習(xí)總結(jié)

網(wǎng)站:公文素材庫(kù) | 時(shí)間:2019-05-14 12:00:45 | 移動(dòng)端:電腦語(yǔ)言Redis學(xué)習(xí)總結(jié)

  在工作過(guò)中運(yùn)用到了redis的相關(guān)知識(shí),在結(jié)合多方資料后,加深了對(duì)于redis的使用和理解,下面就是電腦語(yǔ)言Redis學(xué)習(xí)總結(jié),快來(lái)看一看吧。

    最近在工作中使用到了redis的相關(guān)緩存的知識(shí),之前對(duì)redis的理解僅僅局限于“緩存數(shù)據(jù)”、“redis分布式鎖”的簡(jiǎn)單使用,了解的知識(shí)面很窄。在結(jié)合了多方資料和虛機(jī)、java代碼進(jìn)行實(shí)操后,加深了對(duì)redis的使用和理解。趁熱打鐵,對(duì)學(xué)習(xí)到的知識(shí)做一下總結(jié)。

    本次學(xué)習(xí)筆記 將從以下幾個(gè)方面進(jìn)行學(xué)習(xí)總結(jié):

    NoSql 簡(jiǎn)單介紹

    * Redis的基本數(shù)據(jù)類型

    一、NoSql 簡(jiǎn)單介紹

    1、NoSql是什么?

    NoSQL,泛指非關(guān)系型的數(shù)據(jù)庫(kù),NoSQL即Not-Only SQL,它可以作為關(guān)系型數(shù)據(jù)庫(kù)的良好補(bǔ)充。

    2、能解決什么?

    為了解決高并發(fā)、高可擴(kuò)展、高可用、大數(shù)據(jù)存儲(chǔ)問(wèn)題而產(chǎn)生的數(shù)據(jù)庫(kù)解決方案,就是NoSql數(shù)據(jù)庫(kù)。

    3、該怎么用? NoSql數(shù)據(jù)庫(kù)的4大分類  :

    KV鍵值,存儲(chǔ)數(shù)據(jù)庫(kù)(memcache、Redis的存儲(chǔ)類型)--本次學(xué)習(xí)redis存儲(chǔ)數(shù)據(jù)庫(kù)文檔型數(shù)據(jù)庫(kù)(MongoDB)--之后學(xué)習(xí)

    列存儲(chǔ)數(shù)據(jù)庫(kù)(HBase)--之后學(xué)習(xí)

    圖形數(shù)據(jù)庫(kù)(Neo4J)--之后學(xué)習(xí)

    4、分布式數(shù)據(jù)中需要遵循的CAP原理

    C:Consistency(強(qiáng)一致性)

    A:Availability(可用性)

    P:Partition tolerance(分區(qū)容錯(cuò)性)

    沒(méi)有NosQL數(shù)據(jù)庫(kù)能同時(shí)滿足這三點(diǎn)

    這句話我個(gè)人的理解就是,在對(duì)于數(shù)據(jù)的強(qiáng)一直性和數(shù)據(jù)的分區(qū)容錯(cuò)性之間,系統(tǒng)更加傾向于接受“分區(qū)容錯(cuò)性”。在分布式數(shù)據(jù)庫(kù)中有個(gè)3進(jìn)2的原則,就是一個(gè)分布式系統(tǒng)中,最多只能同時(shí)滿足CA、CP、AP相互使用。

    二、Redis的基本數(shù)據(jù)類型

    String:

    在項(xiàng)目中最常見(jiàn)的一個(gè)使用方式就是,用來(lái)緩存用戶的信息, 將用戶信息的結(jié)構(gòu)體使用JSON序列化成字符串,然后將序列化后的字符串放入reids的緩存中進(jìn)行存儲(chǔ)。從緩存中取用戶信息會(huì)經(jīng)過(guò)一次反序列化的過(guò)程。

    當(dāng)字符串長(zhǎng)度小于 1M 時(shí),擴(kuò)容都是加倍現(xiàn)有的空間,如果超過(guò) 1M,擴(kuò)容時(shí)一次只會(huì)多擴(kuò) 1M 的空間。需要注意的是字符串最大長(zhǎng)度為 512M。

    參考資料 操作實(shí)例

    單個(gè)鍵值的存取

    > set k1 v1

    OK

    > get k1

    "v1"

    > del k1

    (integer) 1

    > get k1

    (nil)

    多個(gè)鍵值的存取

    > set k2 v2

    OK

    > mget k1 k2  k3# 返回一個(gè)列表

    1) "v1"

    2) "v2"

    3) (nil)

    > mset k1 1 k2 2 k3 v3

    > mget k1 k2 k3

    1) "1"

    2) "2"

    3) "v3"

    key 值的過(guò)期策略

    > set k4 v4

    > get k4

    "v4"

    > expire k4 5  # 5s 后過(guò)期

    ...  # wait for 5s

    > get k4

    (nil)

    List(鏈表): redis的列表類似java的LinkedList,是鏈表而不是數(shù)據(jù),插入和刪除速度很快,O(1),索引定位很慢 O(n)。

    Redis的列表結(jié)構(gòu)常用來(lái)做異步隊(duì)列使用,將需要延后處理的任務(wù)結(jié)構(gòu)體序列化成字符串塞進(jìn)redis的列表,另一個(gè)線程從這個(gè)列表中輪詢數(shù)據(jù)進(jìn)行處理。

    當(dāng)列表彈出了最后一個(gè)元素之后,該數(shù)據(jù)結(jié)構(gòu)自動(dòng)被刪除,內(nèi)存被回收。

    參考資料 操作實(shí)例 右進(jìn)左出(隊(duì)列)

    > rpush nums 1 2 3

    (integer) 3

    > llen nums

    (integer) 3

    > lpop nums

    "1"

    > lpop nums

    "2"

    > lpop nums

    "3"

    > lpop nums

    (nil)

    右進(jìn)右出(棧)

    > rpush nums 4 5 6

    (integer) 3

    > rpop nums

    "6"

    > rpop nums

    "5"

    > rpop nums

    "4"

    > rpop nums

    (nil)

    Hash:

    相當(dāng)于hashmap,hash結(jié)構(gòu)也可以存儲(chǔ)用戶的信息,可以對(duì)用戶結(jié)構(gòu)中的每個(gè)字段單獨(dú)存儲(chǔ), 這樣當(dāng)我們需要獲取用戶信息時(shí)可以進(jìn)行部分獲取。

    參考資料 操作實(shí)例

    > hset books java "think in java"  # 命令行的字符串如果包含空格,要用引號(hào)括起來(lái)(integer) 1

    > hset books golang "concurrency in go"

    (integer) 1

    > hset books python "python cookbook"

    (integer) 1

    > hgetall books  # entries(),key 和 value 間隔出現(xiàn)1) "java"

    2) "think in java"

    3) "golang"

    4) "concurrency in go"

    5) "python"

    6) "python cookbook"

    > hlen books

    (integer) 3

    > hget books java

    "think in java"

    > hset books golang "learning go programming"  # 因?yàn)槭歉虏僮鳎苑祷?0(integer) 0

    > hget books golang

    "learning go programming"

    > hmset books java "effective java" python "learning python" golang "modern golang programming"  # 批量 setOK

    Set:

    相當(dāng)于Hashset,內(nèi)部的鍵值對(duì)是無(wú)序的惟一的,set結(jié)構(gòu)可以存儲(chǔ)活動(dòng)中中獎(jiǎng)的用戶ID,因?yàn)橛腥ブ氐墓δ埽梢员WC同一個(gè)用戶不會(huì)中獎(jiǎng)兩次。

    參考資料 操作實(shí)例

    > sadd books python

    (integer) 1

    > sadd books python  #  重復(fù)

    (integer) 0

    > sadd books java golang

    (integer) 2

    > smembers books  # 注意順序,和插入的并不一致,因?yàn)?set 是無(wú)序的1) "java"

    2) "python"

    3) "golang"

    > sismember books java  # 查詢某個(gè) value 是否存在,相當(dāng)于 contains(o)(integer) 1

    > sismember books rust

    (integer) 0

    > scard books  # 獲取長(zhǎng)度相當(dāng)于 count()

    (integer) 3

    > spop books  # 彈出一個(gè)

    "java"

    zset:

    類似于SortedSet和HashMap的結(jié)合體,set既可以保證value的唯一性,另一方面可以給每個(gè)value 賦予一個(gè)值,代表著排序權(quán)重 zset 可以用來(lái)存儲(chǔ)粉絲列表,value值是粉絲的用戶ID,score是關(guān)注時(shí)間,對(duì)粉絲類表按照關(guān)注時(shí)間進(jìn)行排序 參考資料 操作實(shí)例> zadd books 9.0 "think in java"

    (integer) 1

    > zadd books 8.9 "java concurrency"

    (integer) 1

    > zadd books 8.6 "java cookbook"

    (integer) 1

    > zrange books 0 -1  # 按 score 排序列出,參數(shù)區(qū)間為排名范圍1) "java cookbook"

    2) "java concurrency"

    3) "think in java"

    > zrevrange books 0 -1  # 按 score 逆序列出,參數(shù)區(qū)間為排名范圍1) "think in java"

    2) "java concurrency"

    3) "java cookbook"

    > zcard books  # 相當(dāng)于 count()

    (integer) 3

    > zscore books "java concurrency"  # 獲取指定 value 的 score"8.9000000000000004"  # 內(nèi)部 score 使用 double 類型進(jìn)行存儲(chǔ),所以存在小數(shù)點(diǎn)精度問(wèn)題> zrank books "java concurrency"  # 排名

    (integer) 1

    > zrangebyscore books 0 8.91  # 根據(jù)分值區(qū)間遍歷 zset1) "java cookbook"

    2) "java concurrency"

    > zrangebyscore books -inf 8.91 withscores # 根據(jù)分值區(qū)間 (-∞, 8.91] 遍歷 zset,同時(shí)返回分值。inf 代表 infinite,無(wú)窮大的意思。

    1) "java cookbook"

    2) "8.5999999999999996"

    3) "java concurrency"

    4) "8.9000000000000004"

    > zrem books "java concurrency"  # 刪除 value(integer) 1

    > zrange books 0 -1

    1) "java cookbook"

來(lái)源:網(wǎng)絡(luò)整理 免責(zé)聲明:本文僅限學(xué)習(xí)分享,如產(chǎn)生版權(quán)問(wèn)題,請(qǐng)聯(lián)系我們及時(shí)刪除。


電腦語(yǔ)言Redis學(xué)習(xí)總結(jié)》由互聯(lián)網(wǎng)用戶整理提供,轉(zhuǎn)載分享請(qǐng)保留原作者信息,謝謝!
鏈接地址:http://www.hmlawpc.com/gongwen/192700.html
相關(guān)文章