【redis】set 類型:基本命令

文章目錄

  • 基本概念
  • SADD 和 SMEMBERS
  • SCARD
  • SPOP
  • SRANDMEMBER
  • SMOVE
  • SREM
  • 集合間操作
    • SINTER
    • SINTERSTORE
    • SUNION
    • SUNIONSTORE
    • SDIFF
    • SDIFFSTORE
  • 命令小結
  • 內部編碼

基本概念

談到一個屬于,這個術語可能有多種含義,set

  1. 集合
  2. 設置(和 get 相對應)

集合就是把一些有關聯的數據放到一起

  1. 集合中的元素是無序的(和前面 list 的有序是對應的)

    • 有序:順序很重要,變化一下順序,就是不同的 list
    • 無序:順序不重要,變化一下順序,集合還是那個集合
  2. 集合中的元素是不能重復的(唯一的)

list 類似,集合中的每個元素,也都是 string 類型(可以使用 JSON 這樣的格式讓 string 也能存儲結構化數據)

SADD 和 SMEMBERS

  • 將一個或者多個元素添加到 set 中,重復的元素無法添加到 set
  • 獲取一個 set 中的所有元素,元素之間的順序是無序的!!!

語法:

SADD key member [member ...]SMEMBERS key

image.png|444

  • SADD 返回值:所有元素的列表
  • MEMBERS 返回值:1 表示元素在 set 中。0 比哦啊是元素不在 set 中或者 key 不存在

SCARD

獲取一個 set 的基數(cardinality),即 set 中的元素個數


語法:

SCARD key
  • 返回值:set 中元素的個數image.png|352

SPOP

set 中刪除并返回一個或者多個元素。注意,由于 set 內的元素是無序的,所以取出哪個元素實際是未定義行為,即可以看做隨機的


語法:

SPOP key [count]
  • 返回值:取出的元素image.png|281

Redis 源碼中,針對 spop 實現的時候,就采取了“生成隨機數”的方式

SRANDMEMBER

隨機返回元素, 一個或多個


語法:

SRANDMEMBER key
  • 返回隨機到的元素image.png|221

SMOVE

將元素從源 set 取出并放入目標 set


語法:

SMOVE source destination member
  • 1 表示移動成功,0 表示失敗image.png

SREM

將制定的元素從 set 中刪除


語法:

SREM key member [member ...]
  • 返回值:本次操作刪除的元素個數image.png

集合間操作

交集(inter)、并集(union)、差集(diff

  • 交集:最終結果同時出現在兩個集合中
  • 并集:把多個集合中的數據都集中放在一起,如果有元素重復,也最終只保留一份
  • AB 做差集,就是找出哪些元素,在 A 中存在,同時再 B 中不存在image.png|381

SINTER

獲取給定 set 的交集中的元素


語法:

SINTER key [key ...]
  • 返回值:交集的元素image.png|331

SINTERSTORE

獲取給定 set 的交集中的元素并保存到目標 set


語法:

SINTERSTORE destination key [key ...]
  • 返回值:交集的元素個數image.png

SUNION

獲取給定 set 的并集中的元素


語法:

SUNION key [key ...]
  • 返回值:并集的元素image.png|268

SUNIONSTORE

獲取給定 set 的并集中的元素并保存到目標 set


語法:

SUNIONSTORE destination key [key ...]
  • 返回值:并集的元素個數image.png

SDIFF

獲取給定 set 的差集中的元素


語法:

SDIFF key [key ...]
  • 返回值:差集的元素image.png

SDIFFSTORE

獲取給定 set 的差集中的元素并保存到目標 set


語法:

SDIFFSTORE destination key [key ...]
  • 返回值:差集的元素個數image.png

命令小結

image.png

內部編碼

intset(整數集合)

  • 為了節省空間,做出的特定優化。當元素均為整數,并且元素個數不是很多的時候

  • hashtable(哈希表)

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

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

相關文章

C 語言進【進階篇】之動態內存管理:從底層機制到實戰優化

目錄 🚀前言🌟動態內存分配的必要性🤔動態內存分配函數深度剖析💯malloc函數:內存申請的主力軍💯free函數:釋放內存的“清道夫”💯calloc函數:初始化內存的利器&#x1f…

2023華東師范大學計算機復試上機真題

2023華東師范大學計算機復試上機真題 2022華東師范大學計算機復試上機真題 2021華東師范大學計算機復試上機真題 2023華東師范大學計算機復試機試真題 2022華東師范大學計算機復試機試真題 2021華東師范大學計算機復試機試真題 在線評測:傳送門:pgcode.…

Mac下安裝Zed以及Zed對MCP(模型上下文協議)的支持

Zed是當前新流行的一種編輯器,支持MCP(模型上下文協議) Mac下安裝Zed比較簡單,直接有安裝包,在這里: brew install --cask zedMac Monterey下是可以安裝上的,親測有效。 配置 使用CtrlShiftP…

Spring Boot 約定大于配置:實現自定義配置

文章目錄 Spring Boot 約定大于配置:實現自定義配置引言1. Spring Boot 的約定大于配置2. 自定義配置的需求3. 實現自定義配置的步驟4. 示例:自定義 Spring MVC 配置4.1 創建自定義配置類4.2 創建自定義攔截器4.3 測試自定義配置 5. 其他自定義配置場景5…

交易系統優化方案

證券交易系統優化方案 一、選股策略體系 (一)擇時策略矩陣 尾盤集中篩選法(14:30后)聚焦量價異動個股,捕捉次日溢價機會早盤轉債套利法(9:25-10:00)通過可轉債與正股聯動性捕捉日內機會龍頭戰法(全時段)行業板塊強度排序,鎖定前三大市值龍頭容量資金戰法(中盤股適用…

在線Doc/Docx轉換為PDF格式 超快速轉換的一款辦公軟件 文檔快速轉換 在線轉換免費轉換辦公軟件

小白工具https://www.xiaobaitool.net/files/word-pdf/提供了一項非常實用的在線服務——將Doc或Docx格式的文檔快速轉換為PDF格式。這項服務不僅操作簡單,而且轉換效率高,非常適合需要頻繁處理文檔轉換的用戶。 服務特點: 批量轉換&#x…

java學習總結(四)MyBatis多表

一、多表結構 學生表、班級表、課程表、班級課程表 二、一對一 一個學生只屬于一個班級。 查詢:id name age gender banjiName SELECT s.id,s.name,s.age,s.gender,b.id AS banjiId,b.name AS banjiName FROM student AS s INNER JOIN banji AS b ON s.banji_id…

大語言模型學習及復習筆記(1)語言模型的發展歷程

1.大模型進入人們視野 ChatGPT 于2022年11月底上線 模型名稱 發布時間 核心突破 GPT-3 2020年6月 首款千億參數模型,少樣本學習 GPT-3.5-Turbo 2022年11月 對話能力優化,用戶級應用落地 GPT-4 2023年3月 多模態、強邏輯推理 GPT-4o / GPT-4…

【NLP】 3. Distributional Similarity in NLP(分布式相似性)

Distributional Similarity in NLP(分布式相似性) 分布式相似性(Distributional Similarity) 是自然語言處理(NLP)中的核心概念,基于“相似的單詞出現在相似的上下文中”這一假設。它用于衡量單…

【C#學習】協程等待

來源GPT,僅記錄學習 yield return WaitForEndOfFrame() 適用于 渲染結束后再執行代碼,但 WebGL 可能不適合這個操作,會拖慢幀率。(渲染得太慢) yield return null; 讓代碼在下一幀的 Update() 里繼續運行,更加流暢。 …

【項目】負載均衡式在線OJ

負載均衡式在線OJ 目錄 負載均衡式在線OJ 1.項目介紹: 2.comm 2.1 log.hpp 日志等級 開放式日志 時間戳工具 2.2 util.hpp TimeUtil類 PathUtil類 FileUtil類 StringUtil類 3.Compile_server 3.1compile_run.hpp RemoveTempFile CodeToDesc Start 3.…

實現“XXX一張圖“進行環境設施設備可視化管理

實現“電網一張圖”、“鐵路一張圖”、“水庫一張圖”、“森林一張圖”等概念,本質上是將某一領域的空間數據、設施設備、運行狀態等信息整合到一個統一的數字化平臺上,實現全域可視化、智能化管理和協同運營。這種“一張圖”模式依賴于地理信息系統(GIS)、物聯網(IoT)、…

《基於Python的網絡爬蟲抓包技術研究與應用》

## 摘要 本文探討了基于Python的網絡爬蟲抓包技術及其應用。隨著互聯網數據的快速增長,網絡爬蟲技術在數據采集和分析中扮演著越來越重要的角色。本研究首先介紹了網絡爬蟲的基本概念和Python在爬蟲開發中的優勢,然后深入分析了抓包技術的原理和常用工具…

【藍橋杯速成】| 1.暴力解題

1高頻考點與暴力解題_嗶哩嗶哩_bilibili 感謝up主分享,以下內容是學習筆記,以c為主,部分python 題目一:維納的年齡 題目內容 美國數學家維納(N.Wiener)智力早熟, 11歲就上了大學。他曾在1935~1936年應邀來中國清華大…

[C++Qt] 槽函數收不到信號問題(信號的注冊)

📢博客主頁:https://loewen.blog.csdn.net📢歡迎點贊 👍 收藏 ?留言 📝 如有錯誤敬請指正!📢本文由 丶布布原創,首發于 CSDN,轉載注明出處🙉📢現…

從零開始用AI開發游戲(一)

1. 核心玩法設計 核心目標:玩家需在隨機生成的3D迷宮中尋找出口,躲避陷阱、收集道具、解開謎題。核心機制: 隨機生成迷宮:每次游戲生成不同結構的迷宮(遞歸分割算法或深度優先搜索)。第一人稱視角&#xf…

基于ssm的寵物醫院信息管理系統(全套)

一、系統架構 前端:html | layui | vue | element-ui 后端:spring | springmvc | mybatis 環境:jdk1.8 | mysql | maven | tomcat | idea | nodejs 二、代碼及數據庫 三、功能介紹 01. web端-首頁1 02. web端-首頁…

【CXX】6.7 SharedPtr<T> — std::shared_ptr<T>

std::shared_ptr 的 Rust 綁定稱為 SharedPtr。 限制: SharedPtr 不支持 T 為不透明的 Rust 類型。對于在語言邊界上傳遞不透明 Rust 類型的所有權,應改用 Box(C 中的 rust::Box)。 示例 // src/main.rsuse std::ops::Deref; …

利用python生成excel中模板范圍對應的shape文件

利用python生成excel中模板范圍對應的shape文件 # -*- coding: utf-8 -*- import os.pathimport pandas as pd from shapely.geometry import Polygon from shapely.wkt import dumps import argparse# 創建解析器 parser argparse.ArgumentParser(description"這是一個…

cursor使用

引入私有文檔 設置-> Features->下滑找到Docs url后邊多加一個 / 可以拉取url下所有的頁面(子頁面,子目錄),不加只拉取url當前頁面 使用 選擇 Docs 回車 選擇 文檔 直接解析鏈接 鏈接 回車 搜索引擎 web 對比git版本差異 git 選擇其中一個 g…