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

【Redis】1、學習 Redis 的五大基本數(shù)據類型【String、Hash、List、Set、SortedSet】

這篇具有很好參考價值的文章主要介紹了【Redis】1、學習 Redis 的五大基本數(shù)據類型【String、Hash、List、Set、SortedSet】。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、NoSQL 和 SQL 區(qū)別

【Redis】1、學習 Redis 的五大基本數(shù)據類型【String、Hash、List、Set、SortedSet】

【Redis】1、學習 Redis 的五大基本數(shù)據類型【String、Hash、List、Set、SortedSet】

二、認識 Redis

?? Redis 誕生于2009年,全稱是 Remote Dictionary Server,遠程字典服務器,是一個基于 內存的鍵值型 NoSQL 數(shù)據庫

?? 鍵值(key-value)型,value 支持多種不同數(shù)據結構,功能豐富
?? 單線程,每個命令具備原子性
?? 低延遲,速度快(基于內存、IO 多路復用、良好的編碼)
??支持數(shù)據持久化
?? 支持主從集群、分片集群
??支持多語言客戶端

【Redis】1、學習 Redis 的五大基本數(shù)據類型【String、Hash、List、Set、SortedSet】

三、Redis 的數(shù)據結構介紹

?? Redis 是一種 key-value 類型的數(shù)據庫
?? key 一般是 String 類型
?? value 的類型多種多樣(如下圖所示)

【Redis】1、學習 Redis 的五大基本數(shù)據類型【String、Hash、List、Set、SortedSet】

Redis 命令官網: https://redis.io/commands

四、Redis 通用命令

?? 通用命令是不分數(shù)據類型的,各種數(shù)據類型都可以使用的命令
?? KEYS:查看符合模板的所有 key
?? DEL:刪除一個指定的 key
?? EXISTS:判斷 key 是否存在

?? EXPIRE:給一個 key 設置有效期(過期時間)有效期到期時該 key 會被自動刪除
?? TTL:查看一個 key 的剩余有效時間

  • -1:永不過期
  • -2:已經過期

可通過 help [command] 命令查看某個命令的具體用法
【Redis】1、學習 Redis 的五大基本數(shù)據類型【String、Hash、List、Set、SortedSet】

五、String 類型

?? String 類型(字符串類型)是 Redis 中最簡單的存儲類型
?? value 是字符串
?? 根據字符串的格式不同,可分為 3 類(String、int、float)
String:普通字符串
int:整數(shù)類型(可做自增、自減操作)
float:浮點類型(可做自增、自減操作)

?? 不管是哪種格式,底層都是字節(jié)數(shù)組形式存儲,只不過是編碼方式不同
?? 字符串類型的最大空間不能超過 512M

【Redis】1、學習 Redis 的五大基本數(shù)據類型【String、Hash、List、Set、SortedSet】


常見命令有:
?? SET:添加或修改(如果鍵值對已存在的話)一個 String 類型的鍵值對
?? GET:根據 key 獲取 String 類型的 value
?? MSET:批量添加多個 String 類型的鍵值對
?? MGET:根據多個 key 獲取多個 String 類型的 value
?? INCR:讓一個整型的 key 自增 1
?? INCRBY:讓一個整型的 key 自增指定步長 incrby num 2 【讓 num 值自增 2】
?? INCRBYFLOAT:讓一個浮點類型的數(shù)字自增指定步長

?? SETNX:添加一個 String 類型的鍵值對,前提是這個 key 不存在,否則不執(zhí)行【添加】
?? SETEX:添加一個 String 類型的鍵值對,并且指定有效期

【Redis】1、學習 Redis 的五大基本數(shù)據類型【String、Hash、List、Set、SortedSet】

六、key 的格式

?? Redis 的 key 允許用多個單詞形成層級結構
?? 多個單詞之間用【:】分隔

【Redis】1、學習 Redis 的五大基本數(shù)據類型【String、Hash、List、Set、SortedSet】

?? 該格式并非固定,可根據自己的需求刪除或添加詞條

例如項目名稱叫【crm】,有 user 和 product 兩種不同類型的數(shù)據。則可以如下所示定義 key:
① user 相關的 key:crm:user:1
② product 相關的 key:crm:product:1


?? 如果 Value 是一個 Java 對象。例如一個 User 對象,則可以將對象序列化為 JSON 字符串后存儲:

【Redis】1、學習 Redis 的五大基本數(shù)據類型【String、Hash、List、Set、SortedSet】

【Redis】1、學習 Redis 的五大基本數(shù)據類型【String、Hash、List、Set、SortedSet】

七、Hash(散列)類型

?? Hash 類型(也叫散列)
?? value 是一個無序字典 【類似 Java 中的 HashMap

?? Hash 類型可以將對象中的每個字段獨立存儲,可針對單個字段做增刪改查

【Redis】1、學習 Redis 的五大基本數(shù)據類型【String、Hash、List、Set、SortedSet】


Hash 的常見命令有:
??HSET key field value:添加或修改 Hash 類型 key 的 field 的值
??HGET key field:獲取一個 Hash 類型 key 的 field 的值
??HMSET:批量添加多個 Hash 類型 keyfield 的值
??HMGET:批量獲取多個 Hash 類型keyfield的值
??HGETALL:獲取一個 Hash 類型的key 中的所有的 field 和 value
??HKEYS:獲取一個 Hash 類型的key 中的所有的 field
??HVALS:獲取一個 Hash 類型的key 中的所有的 value
??HINCRBY: 讓一個 Hash 類型key 的字段值(field)自增并指定步長
??HSETNX:添加一個 Hash 類型的keyfield值,前提是這個 field 不存在,否則不執(zhí)行

【Redis】1、學習 Redis 的五大基本數(shù)據類型【String、Hash、List、Set、SortedSet】

八、List 類型

?? Redis 中的 List 類型與 Java 中的 LinkedList 類似
?? 可看做是一個雙向鏈表結構(既可以支持正向檢索和反向檢索)

?? 特點:

  • 有序
  • 元素可以重復
  • 插入和刪除快
  • 查詢速度一般

?? 常用來存儲有序數(shù)據(如:朋友圈點贊列表,評論列表)

【Redis】1、學習 Redis 的五大基本數(shù)據類型【String、Hash、List、Set、SortedSet】


?? LPUSH key element ...:向列表左側插入一個或多個元素
?? LPOP key count:移除并返回列表左側的第一個元素,沒有則返回 nil(count:取的個數(shù))
?? RPUSH key element ... :向列表右側插入一個或多個元素
?? RPOP key count:移除并返回列表右側的第一個元素(count:取的個數(shù))
?? LRANGE key star end:返回一段角標范圍內的所有元素
?? BLPOPBRPOP:與 LPOPRPOP 類似(區(qū)別:當沒有元素時,會等待指定時間,而不是直接返回 nil

【Redis】1、學習 Redis 的五大基本數(shù)據類型【String、Hash、List、Set、SortedSet】


? 如何利用 List 結構模擬一個?
入口和出口在同一邊【后進先出】

? 如何利用 List 結構模擬一個隊列?
入口和出口在不同邊【先進先出】

?如何利用 List 結構模擬一個阻塞隊列?
① 入口和出口在不同邊
② 出隊時采用 BLPOPBRPOP

九、Set 類型

?? Redis 的 Set 結構與 Java 中的 HashSet 類似,可看做是一個 value 為 null 的 HashMap
?? 因為也是一個 Hash 表,所以具備與 HashSet 類似的特征:

  • 無序
  • 元素不可重復
  • 查找快
  • 支持交集、并集、差集等功能

?? SADD key member ...:向 set 中添加一個或多個元素
?? SREM key member ...: 移除 set 中的指定元素
?? SCARD key: 返回 set 中元素的個數(shù)
?? SISMEMBER key member:判斷一個元素是否存在于 set 中
?? SMEMBERS key:獲取 set 中的所有元素

?? SINTER key1 key2 ...:求 key1 與 key2 的交集(key1 和 key2 都有的元素)
?? SDIFF key1 key2 ...:求 key1 與 key2 的差集
?? SUNION key1 key2 ...:求 key1 和 key2 的并集


將下列數(shù)據用 Redis 的 Set 集合來存儲:
?? 張三的好友有:李四、王五、趙六
?? 李四的好友有:王五、麻子、二狗

【Redis】1、學習 Redis 的五大基本數(shù)據類型【String、Hash、List、Set、SortedSet】

利用 Set 的命令實現(xiàn)下列功能:
?? 計算張三的好友有幾個
?? 計算張三和李四有哪些共同好友
?? 查詢哪些人是張三的好友卻不是李四的好友
?? 查詢張三和李四的好友總共有哪些人
?? 判斷李四是否是張三的好友
?? 判斷張三是否是李四的好友
?? 將李四從張三的好友列表中移除

十、SortedSet 類型(可排序)

?? Redis 的 SortedSet 是一個可排序的 set 集合
?? 與 Java 中的 TreeSet 有些類似
?? 但底層數(shù)據結構卻差別很大
?? SortedSet 中的每一個元素都帶有一個 score 屬性,可以基于 score 屬性對元素排序
?? 底層實現(xiàn)是跳表(SkipList)加 Hash表

?? SortedSet 具備下列特性:

  • 可排序
  • 元素不重復
  • 查詢速度快

?? 因為 SortedSet 的可排序特性,經常被用來實現(xiàn)排行榜功能


?? ZADD key score member:添加一個或多個元素(若已存在,則更新其 score 值)
?? ZREM key member:刪除指定元素
?? ZSCORE key member : 獲取指定元素的 score 值
?? ZRANK key member:獲取指定元素的排名
?? ZCARD key:獲取 key 中的元素個數(shù)
?? ZCOUNT key min max:統(tǒng)計 score 值在給定范圍內的所有元素的個數(shù)
?? ZINCRBY key increment member:讓指定元素自增,步長為指定的 increment
?? ZRANGE key min max:按照 score 排序后,獲取指定排名范圍內的元素
?? ZRANGEBYSCORE key min max:按照score 排序后,獲取指定 score 范圍內的元素
??ZDIFF、ZINTER、ZUNION:求差集、交集、并集

?? 注意:所有排名默認是升序,如果要降序則在命令的【Z】后面添加 REV


將班級的下列學生得分存入 Redis 的 SortedSet 中:
Jack 85, Lucy 89, Rose 82, Tom 95, Jerry 78, Amy 92, Miles 76
并實現(xiàn)下列功能:
? 刪除 Tom 同學
? 獲取 Amy 同學的分數(shù)
? 獲取 Rose 同學的排名
? 查詢 80 分以下有幾個學生
? 給 Amy 同學加2分
? 查出成績前 3 名的同學
? 查出成績 80 分以下的所有同學文章來源地址http://www.zghlxwxcb.cn/news/detail-510809.html

到了這里,關于【Redis】1、學習 Redis 的五大基本數(shù)據類型【String、Hash、List、Set、SortedSet】的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

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

領支付寶紅包贊助服務器費用

相關文章

  • Redis(二)—— 五大基本數(shù)據類型和三大特殊數(shù)據類型

    Redis(二)—— 五大基本數(shù)據類型和三大特殊數(shù)據類型

    1、常用命令 ?批量操作: redis可以定義對象? 方式(一) :以JSON格式(其實就是key-value格式)保存一個對象 方式(二) : 把對象的兩個屬性定義成兩個key 注意,如果采用第一種方式,那么無法單獨取出字段哦~ 2、使用場景 數(shù)字int類型的string作為計數(shù)器,比如統(tǒng)計文章的

    2024年02月15日
    瀏覽(16)
  • Redis五大基本數(shù)據類型及其使用場景

    Redis五大基本數(shù)據類型及其使用場景

    Nosql = not only sql(不僅僅是SQL) 關系型數(shù)據庫:列+行,同一個表下數(shù)據的結構是一樣的。 非關系型數(shù)據庫:數(shù)據存儲沒有固定的格式,并且可以進行橫向擴展。 NoSQL泛指非關系型數(shù)據庫,隨著web2.0互聯(lián)網的誕生,傳統(tǒng)的關系型數(shù)據庫很難對付web2.0大數(shù)據時代!尤其是超大規(guī)

    2024年02月12日
    瀏覽(15)
  • Redis追本溯源(二)數(shù)據結構:String、List、Hash、Set、Zset底層數(shù)據結構原理

    Redis追本溯源(二)數(shù)據結構:String、List、Hash、Set、Zset底層數(shù)據結構原理

    Redis 并沒有直接用 C 語言的字符串,而是自己搞了一個 sds 的結構體來表示字符串,這個 sds 的全稱是 Simple Dynamic String,翻譯過來就是“簡單的動態(tài)字符串”。 安全的二進制存儲 資源。關于sds的擴容和縮容下面會進行詳細的介紹,這里先不贅述了。 在一些情況中,我們需要

    2024年02月16日
    瀏覽(33)
  • redis五大類型分析--list(2)

    此篇為對redis五大數(shù)據類型中l(wèi)ist的分析,希望能有所幫助 ?listTypeGet函數(shù) 分析: 利用createStringObject函數(shù)和createStringObjectFromLongLong函數(shù),檢查編碼類型并獲取元素的值 listTypeInsert函數(shù) 分析: 對entry的插入操作,在 entry 的位置前或后方插入元素 value? listTypeReplace函數(shù) 分析: 替

    2024年02月11日
    瀏覽(24)
  • redis五大類型分析--list(1)

    此篇為對redis五大數(shù)據類型中l(wèi)ist的分析,希望能有所幫助 listTypePush函數(shù) 分析: 該函數(shù)將一個元素插入到指定的列表對象 \\\'subject\\\',?插入位置由 \\\'where\\\' 決定是在列表頭部還是尾部插入,調用者不需要自己來增加 \\\'value\\\' 的 refcount,該函數(shù)會負責處理。 作用: 實現(xiàn)命令函數(shù)push

    2024年02月13日
    瀏覽(25)
  • Redis-帶你深入學習數(shù)據類型list

    Redis-帶你深入學習數(shù)據類型list

    目錄 1、list列表 2、list相關命令 2.1、添加相關命令:rpush、lpush、linsert 2.2、查找相關命令:lrange、lindex、llen 2.3、刪除相關命令:lpop、rpop、lrem、ltrim 2.4、修改相關命令:lset 2.5、阻塞相關命令:blpop、brpop 3、應用場景 3.1、消息隊列 ?3.2、最新列表 ? ? ? ? redis中l(wèi)ist并非是一

    2024年02月09日
    瀏覽(23)
  • Redis的五大數(shù)據類型

    Redis的五大數(shù)據類型

    概述:String是redis最基本的類型,最大能存儲512MB的數(shù)據,String類型是二進制安全的,即可以存儲任何數(shù)據、比如數(shù)字、圖片、序列化對象等 append命令:append key value,將value值追加到已存在的value值的后面,并追加操作之后的新value的長度。特殊的,當之前redis中沒有該鍵值對存

    2024年02月05日
    瀏覽(24)
  • Redis五大數(shù)據類型

    Redis五大數(shù)據類型

    Redis-Key 官網:https://www.redis.net.cn/order/ 序號 命令語法 描述 1 DEL key 該命令用于在 key 存在時刪除 key 2 DUMP key 序列化給定 key ,并返回被序列化的值 3 EXISTS key 檢查給定 key 是否存在,存在返回1,否則返回0 4 EXPIRE key seconds 為給定 key 設置過期時間,以秒計 5 EXPIREAT key timestamp E

    2024年02月11日
    瀏覽(18)
  • 【Redis】五大數(shù)據類型

    【Redis】五大數(shù)據類型

    ??Redis支持五種數(shù)據類型:String(字符串),Hash(哈希),List(列表),Set(集合)及zset(sorted set有序集合)。 Redis的String類型是一種最基本的數(shù)據類型,它是一個鍵值對的存儲結構,其中鍵和值都是字符串類型。String類型的特點是快速存儲和讀取,適用于存儲一些簡單的數(shù)據,如字符

    2024年02月12日
    瀏覽(21)
  • Redis入門-redis的五大數(shù)據類型+三種特殊的數(shù)據類型

    Redis入門-redis的五大數(shù)據類型+三種特殊的數(shù)據類型

    Redis有 五大基本類型 : 字符串(string) 、 哈希(hash) 、 列表(list) 、 集合(set) 和 有序集合(sorted set) 。 字符串(string)是Redis最基本的類型,可以存儲任意類型的數(shù)據 ,如整數(shù)、浮點數(shù)、二進制數(shù)據等。字符串類型的操作包括設置鍵值對、獲取值、增減值等。

    2024年01月21日
    瀏覽(21)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領取紅包

二維碼2

領紅包