數據類型 list

一、介紹

類似于數組,順序表,deque

結構圖

特點:元素有序,元素允許重復

由于頭尾高效插入刪除,可以模擬棧,隊列

二、常見 list 命令

1、lpush key elem [elem ...]

頭插元素,返回值列表長度

2、lrange key start end

獲取列表下標 [start, end] 區間的元素

3、lpushx key elem [elem ...]

如果 key 存在再頭插元素

4、rpush key elem [elem ...]

尾插元素

5、rpushx key elem?[elem ...]

如果 key 存在再尾插元素

?6、lpop key [count]

頭刪元素 count 次

7、rpop key [count]

尾刪元素 count 次

8、lindex key index

獲取下標 index 的元素

9、linsert key <before | after> pivot elem

從左往右在列表中找到 pivot 值,在值前 / 后插入元素

10、llen key?

獲取列表長度

11、lrem key count elem

count > 0: 從左往右刪除?count 個 elem

count > 0:?從右往左刪除?count 個 elem

count =?0: 刪除全部元素 elem

12、ltrim key start end

只保留區間 [start, end] 的元素

13、[blpop | brpop] key [key ...] timeout

阻塞 timeout 內刪除元素

如果 list 非空,和 lpop, rpop 一樣

如果 list 為空,不會立即返回,在 timeout 時間內如果列表不為空了那就刪除并返回

阻塞時間內 Redis 可以執行其他命令

在等待多個 key 的列表時,哪個先不為空那就刪除哪個,并且命令返回

多個客戶端同時 pop,哪個先執行哪個就 pop

返回刪除的 key 和刪除的元素

三、內部編碼

總體用的是 quicklist,由 ziplist 和 linkedlist 鏈表組成

把一個個的壓縮列表用鏈表的形式組織起來

結合二者的有點,ziplist 存儲個數少的元素節省空間,linkedlist 存儲個數的元素效率高

四、應用場景

1、消息隊列

生產者消費者模型

2、模擬外鍵

把兩個表中的主鍵提取,結合成列表建立聯系。

如提取課程 id 和學生 id,key 就是一個課程的 id,list 里面存儲所有選課學生的 id,這樣 redis 就能模擬出外鍵的效果

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/95653.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/95653.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/95653.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

pyqt5無法顯示opencv繪制文本和掩碼信息

背景&#xff1a;pyqt5無法顯示opencv繪制的標簽和mask&#xff1b;我們在使用YOLO做實例分割做推理時&#xff0c;會使用opencv做后處理結果繪制&#xff08;含標簽繪制和掩碼繪制&#xff09;&#xff1b;結果opencv繪制的解碼卻無法在pyqt的解碼上面顯示。pyqt轉換代碼如下&…

如何生成嚴格遞增的分布式id?

本文字數&#xff1a;2604字預計閱讀時間&#xff1a;15分鐘01引言在現有分布式系統中&#xff0c;面對增長迅速的業務數據&#xff0c;id生成一直是非常重要的一環。而分布式系統的id生成方案需要滿足幾個重要特性&#xff1a;容錯高可用、高性能高并發、全局唯一。02技術背景…

【LeetCode】二叉樹相關算法題

目錄1、二叉樹介紹【1】核心概念【2】關鍵特性2、算法題【1】二叉樹的前序遍歷【2】二叉樹的后序遍歷1、二叉樹介紹 【1】核心概念 結構含義節點結構二叉樹由節點組成&#xff0c; 每個節點包含一個數據元素和最多兩個子節點&#xff1a;左子節點和右子節點根節點樹的頂部節點…

Vulnhub Deathnote靶機復現攻略

一、靶機安裝 下載地址&#xff1a;https://download.vulnhub.com/deathnote/Deathnote.ova 下載好后使用VB打開&#xff0c;配置如下 二、主機發現 使用相同連接方式的kali進行后續操作(172.16.2.7)根據mac地址進行確認。 nmap -sn 172.16.2.1/24 三、端口掃描 端口開放了…

DevEco Studio 6.0.0 元服務頁面跳轉失敗

背景&#xff0c;我使用最新的編輯器DevEco Studio 6.0.0&#xff0c;編寫一個元服務&#xff0c;發現使用跳轉頁面的時候失敗了&#xff01;然后查看官方文檔&#xff0c;兩種方式都測試了&#xff0c;發現都不行。 方法1&#xff1a;Navigation路由跳轉無效&#xff0c;見官方…

docker重啟或系統重啟后harbor自動啟動

docker重啟或系統重啟后harbor自動啟動docker重啟或系統重啟后harbor自動啟動方法 1&#xff1a;在 docker-compose.yml 中配置重啟策略&#xff08;推薦&#xff09;方法 2&#xff1a;創建 Systemd 服務&#xff08;更可靠&#xff09;方法 3&#xff1a;使用 Docker 的 Rest…

OpenZeppelin Contracts 架構分層分析

OpenZeppelin Contracts 是一個面向以太坊&#xff08;及兼容 EVM 的區塊鏈&#xff09;生態系統的??模塊化、安全性優先、標準兼容的智能合約庫??。其內部代碼按照功能職責與抽象層級&#xff0c;可系統性地劃分為多個邏輯層次。理解這些層次及其依賴關系&#xff0c;對于…

Java-JVM的內存模型

一.JVM內存模型JVM內存模型可以從進程生命周期和線程生命周期1.線程生命周期每個線程都會有自己各自一份數據&#xff0c;不會存在線程安全問題1.程序計數器指示當前線程執行的字節碼指令的行號&#xff0c;以便線程執行時可以回到正確的位置2.虛擬機棧線程私有的&#xff0c;與…

Highcharts Dashboards | 打造企業級數據儀表板:從圖表到數據駕駛艙

企業日常決策、產品運營、業務監控&#xff0c;越來越依賴數據驅動。而儀表板&#xff08;Dashboard&#xff09;作為匯總展示多維度信息的“數據駕駛艙”&#xff0c;已成為企業可視化的核心場景之一。如果你正在尋找一款能夠快速、靈活、安全構建儀表板的前端圖表工具&#x…

基于Java的Markdown轉Word工具(標題、段落、表格、Echarts圖等)

項目源于我們開發的一款基于大模型的報告生成工具。由于需要將 Markdown 格式的內容導出為 Word 文檔&#xff0c;而市面上缺乏合適的現成工具&#xff0c;所以決定自己開發一個Markdown轉Word的工具。 &#x1fa77;源碼地址&#xff1a;daydayup-zyn/md2doc-plus &#x1f…

Unity:PlayerPrefs筆記

寫在前面&#xff1a;寫本系列(自用)的目的是回顧已經學過的知識、記錄新學習的知識或是記錄心得理解&#xff0c;方便自己以后快速復習&#xff0c;減少遺忘。一、PlayerPrefs的基本方法1、存儲相關PlayerPrefs的數據存儲類似于鍵值對存儲&#xff0c;一個鍵對應一個值。Unity…

SQL tutorials

SQL Literature SQL運行在資料庫管理系統&#xff08;Database Management System&#xff09;&#xff0c;如MySQL&#xff0c;Postgre SQL&#xff0c;Microsoft SQL Server&#xff0c; Oracle&#xff0c;etc。 SQL練習平臺&#xff1a;https://sqliteviz.com/ EXAMPLE SQL…

MySQL快速恢復數據的N種方案完全教程

目錄 1. 理解MySQL數據恢復的核心邏輯 1.1 數據丟失的常見場景 1.2 MySQL的“救命稻草”:關鍵文件和機制 2. 方案一:利用全量備份+binlog實現點對點恢復 2.1 準備工作 2.2 恢復步驟 2.3 實戰案例 3. 方案二:利用InnoDB的崩潰恢復機制 3.1 崩潰恢復的原理 3.2 恢復步…

雙屏加固筆記本電腦C156-2:堅固與高效的完美融合

在當今數字化時代&#xff0c;筆記本電腦已成為人們工作和生活中不可或缺的工具。然而&#xff0c;對于一些特殊行業和惡劣環境下的應用場景&#xff0c;普通筆記本電腦往往難以滿足需求。此時&#xff0c;具備堅固耐用、高性能等特點的加固筆記本電腦應運而生。魯成偉業的雙屏…

Jenkins 環境部署

下載相關軟件&#xff1a;Jenkins 的安裝和設置 相關工具&#xff1a; Git : Git - Downloads java 17: Java Archive Downloads - Java SE 17.0.12 and earlier python : Download Python | Python.org jenkins、jenkins.war : Jenkins 的安裝和設置 將所有軟件安裝后&am…

如何高效解決 Java 內存泄漏問題方法論

目錄 一、系統化的診斷與優化方法論 二、獲取內存快照:內存泄漏的第一步 (一)自動生成 Heap Dump (二)手動生成 Heap Dump 三、導入分析工具:MAT 和 JProfiler (一)MAT (Memory Analyzer Tool) (二)JProfiler (三)自身企業工具 四、深入分析:逐步排查內存…

HarmonyOS Camera Kit 全解析:從基礎拍攝到跨設備協同的實戰指南

在移動應用開發中&#xff0c;相機功能往往是提升用戶體驗的關鍵模塊&#xff0c;但傳統相機開發面臨權限管理復雜、設備兼容性差、功能實現繁瑣等痛點。HarmonyOS 作為面向全場景的分布式操作系統&#xff0c;其 Camera Kit&#xff08;相機服務&#xff09;通過統一的 API 接…

運用詞向量模型分辨評論

代碼實現&#xff1a;import jieba import pandas as pd hp pd.read_table(優質評價.txt,encodinggbk) cp pd.read_table(差評1.txt,encodinggbk) cp_segments [] contents cp.content.values.tolist() for content in contents:results jieba.lcut(content)if len(result…

基于Apache Flink的實時數據處理架構設計與高可用性實戰經驗分享

基于Apache Flink的實時數據處理架構設計與高可用性實戰經驗分享 一、業務場景描述 在現代電商平臺中&#xff0c;實時用戶行為數據&#xff08;點擊、瀏覽、購物車操作等&#xff09;對業務決策、個性化推薦和風控都至關重要。我們需要搭建一個高吞吐、低延遲且具備高可用性的…

第二十四天:虛函數與純虛函數

虛函數&#xff08;Virtual Function&#xff09; 定義&#xff1a;在基類中使用 virtual 關鍵字聲明的成員函數&#xff0c;允許在派生類中被重新定義&#xff08;覆蓋&#xff0c;override&#xff09;。其目的是實現多態性&#xff0c;即通過基類指針或引用調用函數時&#…