<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Redis概述及基本數據結構

      SQL vs NoSQL

      1. 結構化

        • SQL 是結構化的,一旦定義了表結構,以后在維護數據的時候必須嚴格遵守定義的結構。
        • NoSQL 是非結構化的,常見的形式有 Redis 的 Key-Value 存儲形式、Document 文檔型存儲形式、Graph 圖類型存儲形式
      2. 關聯的

        • SQL 數據庫可以通過如外鍵的方式去維護數據與數據之間的關聯

        • NoSQL 是非關系型的,如果想要維護數據與數據之間的關系,通常通過 json 格式的數據進行維護

          例如:

          {
              id: 1,
              name: "張三",
              orders: [
                  {
                      id: 1,
                      item: {
                          id: 10,
                          title: "榮耀6",
                          price: 4999
                      }
                  },
                  {
                      id: 2,
                      item: {
                          id: 20,
                          title: "小米11",
                          price: 3999
                      }
                  }
              ]
          }
          
      3. SQL查詢

        • SQL 的查詢有自己的語法,格式固定,語法固定,兼容性起強
        • NoSQL 的查詢語句不同意,沒有固定的形式
      4. 事務

        • SQL 的所有數據庫都是可以實現 ACID 的
        • NoSQL 數據庫要么沒有事務,要么只能滿足事務最基本的一些一致性

      認識 Redis

      Redis 是一個基于內存的鍵值型 NoSQL 數據庫

      特征:

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

      Redis 數據結構

      Redis是一個 key-value 的數據庫,key 一般是 String 類型,不過 value 的類型多種多樣:

      名稱 示例
      String hello world
      Hash
      List [A -> B -> C]
      Set
      SortedSet

      [問題]:Redis 沒有類似 MySql 中的 Table 的概念,要怎么區分不同類型的 key 呢?

      [解決方法]:Redis 的 key 支持有多個單詞形成層次結構,多個單詞之間用“ :”隔開。例如 myproduct:user:1 myproduct:product:1

      KEY VALUE
      myproduct:user:1 {"id": 1, "name": "Jack", "age": 21}
      myproduct:product:1 {"id": 1,"name": "小米11", "price": 4999}

      Redis 通用命令

      • KEYS:查看符合模板的所有 key。不建議在生產環境上使用
      • DEL:刪除一個指定的 key
      • EXISTS:判斷 key 是否存在
      • EXPIRE:給一個 key 設置有效期,有效期到期時該 key 會被自動刪除
      • TTL:查看一個 key 剩余的有效期

      String 類型

      String 類型介紹

      String 類型是 Redis 中最簡單的存儲類型,其 value 是字符串。不過根據字符串格式不同,又具體分為三類:

      • string:普通字符串
      • int:整數類型,可以做自增自減操作
      • float:浮點類型,可以做自增自減操作

      String 類型常見命令

      • SET:添加或者修改已經存在的一個String類型的鍵值對
      • GET:根據key獲取String類型的value
      • MSET:批量添加多個String類型的鍵值對
      • MGET:根據多個key獲取多個String類型的value
      • INCR:讓一個整型的key自增1
      • INCRBY:讓一個整型的key自增并指定步長,例如:incrby num 2 讓num值自增2
      • INCRBYFLOAT:讓一個浮點類型的數字自增并指定步長
      • SETNX:添加一個String類型的鍵值對,前提是這個key不存在,否則不執行
      • SETEX:添加一個String類型的鍵值對,并且指定有效期

      Hash 類型

      Hash 類型介紹

      Hash 類型,也叫散列,其 value 是一個無序字典,類似于 Java 中的 HashMap 結構。Hash 結構可以將對象中的每個字段獨立存儲,可以針對單個字段做 CRUD。

      Hash 類型常用命令

      • HSET key field value:添加或者修改hash類型key的field的值
      • HGET key field:獲取一個hash類型key的field的值
      • HMSET:批量添加多個hash類型key的field的值
      • HMGET:批量獲取多個hash類型key的field的值
      • HGETALL:獲取一個hash類型的key中的所有的field和value
      • HKEYS:獲取一個hash類型的key中的所有的field
      • HVALS:獲取一個hash類型的key中的所有的value
      • HINCRBY:讓一個hash類型key的字段值自增并指定步長
      • HSETNX:添加一個hash類型的key的field值,前提是這個field不存在,否則不執行

      List 類型

      List 類型介紹

      Redis 中的 List 類型與 Java 中的 LinkedList 類似,可以看做是一個雙向鏈表結構。既可以支持正向檢索和也可以支持反向檢索。其特征也與 LinkedList 類似。

      List 類型常用命令

      • LPUSH key element ... :向列表左側插入一個或多個元素
      • LPOP key:移除并返回列表左側的第一個元素,沒有則返回nil
      • RPUSH key element ... :向列表右側插入一個或多個元素
      • RPOP key:移除并返回列表右側的第一個元素
      • LRANGE key star end:返回一段角標范圍內的所有元素
      • BLPOP和BRPOP:與LPOP和RPOP類似,只不過在沒有元素時等待指定時間,而不是直接返回nil

      Set 類型

      Set 類型介紹

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

      Set 類型常用命令

      • SADD key member ... :向set中添加一個或多個元素
      • SREM key member ... : 移除set中的指定元素
      • SCARD key: 返回set中元素的個數
      • SISMEMBER key member:判斷一個元素是否存在于set中
      • SMEMBERS:獲取set中的所有元素
      • SINTER key1 key2 ... :求key1與key2的交集
      • SDIFF key1 key2 ... :求key1與key2的差集
      • SUNION key1 key2 ..:求key1和key2的并集

      SortedSet 類型

      SortedSet 類型介紹

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

      其具備以下特征:

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

      因為SortedSet的可排序特性,經常被用來實現排行榜這樣的功能。

      SortedSet 類型常用命令

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

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

      posted @ 2022-05-30 16:56  染沁  閱讀(917)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 中国女人高潮hd| 国产成人精彩在线视频50| 久久天堂无码av网站| 欧美成人午夜在线观看视频| 激情国产一区二区三区四区| 各种少妇wbb撒尿| 亚洲va中文字幕无码久久不卡| 性做久久久久久久久| 在线精品国精品国产不卡| 蜜桃视频在线观看网站免费| 色九月亚洲综合网| 狠狠色噜噜狠狠狠狠2021| 亚洲人成网站77777在线观看| 宁化县| 99中文字幕国产精品| 国产熟女一区二区三区蜜臀| 亚洲国产午夜精品福利| 精品无码三级在线观看视频| 亚洲av成人网在线观看| 久久综合国产精品一区二区| 精品一区二区三区不卡| 中文字幕无码视频手机免费看 | 精品黄色av一区二区三区| 成人特黄A级毛片免费视频| 汤阴县| 免费国产精品视频在线| 免费无码又爽又刺激高潮虎虎视频| 国产v综合v亚洲欧美久久| 成人午夜污一区二区三区| 亚洲国产成人无码电影| 少妇被爽到高潮喷水久久欧美精品 | 欧洲精品亚洲精品日韩专区| 在线看国产精品自拍内射| 国产精品护士| 久久九九99这里有视频| 女人与牲口性恔配视频免费| 欧美黑人巨大videos精品| 青青草无码免费一二三区| 任我爽精品视频在线播放| 国产精品日本一区二区不卡视频| 婷婷色香五月综合缴缴情香蕉|