<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                RPUSH RPUSH key- name value [value ...]—— 將 一個 或 多個 值 推入 列表 的 右端 LPUSH LPUSH key- name value [value ...]—— 將 一個 或 多個 值 推入 列表 的 左端 RPOP RPOP key- name—— 移 除 并 返回 列表 最 右端 的 元素 LPOP LPOP key- name—— 移 除 并 返回 列表 最 左端 的 元素 LINDEX LINDEX key- name offset—— 返回 列表 中 偏移量 為 offset 的 元素 LRANGE LRANGE key- name start end—— 返回 列表 從 start 偏移量 到 end 偏移量 范圍內 的 所有 元素, 其中 偏移量 為 start 和 偏移量 為 end 的 元素 也會 包含 在被 返回 的 元素 之內 LTRIM LTRIM key- name start end—— 對列 表 進行 修剪, 只 保留 從 start 偏移量 到 end 偏移量 范圍內 的 元素, 其中 偏移量 為 start 和 偏移量 為 end 的 元素 也會 被 保留 BLPOP BLPOP key- name [key- name ...] timeout—— 從 第一個 非 空 列表 中彈 出 位于 最 左端 的 元素, 或者 在 timeout 秒 之內 阻塞 并 等待 可 彈出 的 元素 出現 BRPOP BRPOP key- name [key- name ...] timeout—— 從 第一個 非 空 列表 中彈 出 位于 最 右端 的 元素, 或者 在 timeout 秒 之內 阻塞 并 等待 可 彈出 的 元素 出現 RPOPLPUSH RPOPLPUSH source- key dest- key—— 從 source- key 列表 中彈 出 位于 最 右端 的 元素, 然后 將 這個 元素 推入 dest- key 列表 的 最 左端, 并向 用戶 返回 這個 元素 BRPOPLPUSH BRPOPLPUSH source- key dest- key timeout—— 從 source- key 列表 中彈 出 位于 最 右端 的 元素, 然后 將 這個 元素 推入 dest- key 列表 的 最 左端, 并向 用戶 返回 這個 元素; 如果 source- key 為 空, 那么 在 timeout 秒 之內 阻塞 并 等待 可 彈出的元素出現 List數據結構是用來存儲多個有序的字符串,List中的每個字符串成為元素,List提供了節點重排和節點順序訪問的能力,在Redis中,List可以在兩端push和pop元素,還可以獲取指定范圍的元素列表,獲取指定索引下標的元素等,List數據結構主要有zipList(壓縮鏈表)和LinkedList(雙向鏈表)兩種實現方式。首先我們可以先看看LinkedList的結構: type struct list{ //表頭節點 listNode \*head; //表尾節點 listNode \*tail; //包含的節點總數 unsigned long len; }; 可以看到每個LinkedList中都會包含一個表頭節點*head和一個表尾結點*tail,在LinkedList中每個節點都會有一個*prev指向前一個元素,同時還有一個*next指向后一個元素,每個節點的value就是節點的值。從而實現雙向鏈表,理解起來實際上和C中的雙向鏈表有很大程度的相似性。而另一種實現方式zipList是基于連續內存實現,有點類似于數組方式,但是和數組有點不一致的是zipList的每一個entry的大小可能不一致,需要特殊方法去控制解決,但是在執行push,pop操作時會有數據的遷移,時間復雜度為O(n), 所以一般只有在元素較少時才會使用zipList,我們可以看看zipList的結構: type struct ziplist{ //整個壓縮列表的字節數 uint32\_t zlbytes; //記錄壓縮列表尾節點到頭結點的字節數,直接可以求節點的地址 uint32\_t zltail\_offset; //記錄了節點數,有多種類型,默認如下 uint16\_t zllength; //節點 List entryX; } zipList中每個節點都會有以下幾個參數信息: * previous\_entry\_length:記錄前一個節點的字節長度 * content:節點所存儲的內容,可以是一個字節數組或者整數 * encoding:記錄content屬性中所保存的數據類型以及長度 \*\*\* List數據類型適用場景\*\* 在渲染文章列表時可以使用List數據類型,一般情況下每個用戶都會有自己發布的文章列表,如果需要展示文章列表,就可以使用List數據類型,不但可以有序而且可以按照索引范圍去查詢文章列表。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看