【Redis】 關于 Redis 集合類型

文章目錄

  • 🍃前言
  • 🌳普通命令
    • 🚩sadd
    • 🚩smembers
    • 🚩sismember
    • 🚩scard
    • 🚩spop
    • 🚩smove
    • 🚩srem
  • 🌲集合間操作
    • 🚩sinter
    • 🚩sinterstore
    • 🚩sunion
    • 🚩sunionstore
    • 🚩sdiff
    • 🚩sdiffstore
  • 🎍集合類型的內部編碼
  • 🍀集合類型的使用場景
  • ?總結

🍃前言

集合類型是用來保存多個字符串類型的元素的,但和列表類型是不同的,集合中

  1. 元素之間是?序的
  2. 元素不允許重復。

?個集合中最多可以存儲 2^32 - 1 個元素。Redis 除了?持集合內的增刪查改操作,同時還?持多個集合取交集、并集、差集,合理地使?好集合類型,能在實際開發中解決很多問題

🌳普通命令

🚩sadd

將?個或者多個元素添加到 set 中。注意,重復的元素?法添加到 set 中。

語法:

sadd key member [member ...]

時間復雜度:

  • O(1)

返回值:

  • 本次添加成功的元素個數

在這里插入圖片描述

🚩smembers

獲取?個 set 中的所有元素,注意,元素間的順序是?序的。

語法:

semembers key

時間復雜度:

  • O(N)

返回值:

  • 所有元素的列表。

在這里插入圖片描述

🚩sismember

判斷?個元素在不在 set 中。

語法:

sismember key member

時間復雜度:

  • O(1)

返回值:

  • 1 表?元素在 set 中。0 表?元素不在 set 中或者 key 不存在。

在這里插入圖片描述

🚩scard

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

語法:

scard key

時間復雜度:

  • O(1)

返回值:

  • set 內的元素個數。

在這里插入圖片描述

🚩spop

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

語法:

spop key [count]

時間復雜度:

  • O(N), n 是 count

返回值:

  • 取出的元素。

在這里插入圖片描述

🚩smove

將?個元素從源 set 取出并放??標 set 中。

語法:

smove source destination member

時間復雜度:

  • O(1)

返回值:

  • 1 表?移動成功,0 表?失敗

在這里插入圖片描述

🚩srem

將指定的元素從 set 中刪除。

語法:

srem key member [member ...]

時間復雜度:

  • O(N), N 是要刪除的元素個數.

返回值:

  • 本次操作刪除的元素個數。

在這里插入圖片描述

🌲集合間操作

對于集合,我們有三種基本操作,分別為交集、并集、差集

🚩sinter

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

語法:

sinter key [key ...]

時間復雜度:

  • O(N * M), N 是最?的集合元素個數. M 是最?的集合元素個數.

返回值:

  • 交集的元素。

在這里插入圖片描述

🚩sinterstore

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

語法:

sinterstore destination key [key ...]

時間復雜度:

  • O(N * M), N 是最?的集合元素個數. M 是最?的集合元素個數.

返回值:

  • 交集的元素個數

在這里插入圖片描述

🚩sunion

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

語法:

sunion key [key ...]

時間復雜度:

  • O(N), N 給定的所有集合的總的元素個數.

返回值:

  • 并集的元素

在這里插入圖片描述

🚩sunionstore

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

語法:

sunionstore destination key [key ...]

時間復雜度:

  • O(N), N 給定的所有集合的總的元素個數.

返回值:

  • 并集的元素個數。
    在這里插入圖片描述

🚩sdiff

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

語法:

sdiff  key [key ...]

時間復雜度:

  • O(N), N 給定的所有集合的總的元素個數.

返回值:

  • 差集的元素

在這里插入圖片描述

🚩sdiffstore

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

語法:

sdiffstore destination key [key ...]

時間復雜度:

  • O(N), N 給定的所有集合的總的元素個數.

返回值:

  • 差集的元素個數

在這里插入圖片描述

🎍集合類型的內部編碼

集合類型的內部編碼有兩種:

  • intset(整數集合):當集合中的元素都是整數并且元素的個數?于set-max-intset-entries 配置(默認 512 個)時,Redis 會選? intset 來作為集合的內部實現,從?減少內存的使?。
  • hashtable(哈希表):當集合類型?法滿? intset 的條件時,Redis 會使? hashtable 作為集合的內部實現。

🍀集合類型的使用場景

集合類型?較典型的使?場景是標簽(tag)。

例如 A ??對娛樂、體育板塊?較感興趣,B??對歷史、新聞?較感興趣,這些興趣點可以被抽象為標簽。有了這些數據就可以得到喜歡同?個標簽的?,以及??的共同喜好的標簽,這些數據對于增強??體驗和??黏度都?常有幫助。

例如?個電?商務?站會對不同標簽的??做不同的產品推薦

?總結

關于《【Redis】 關于 Redis 集合類型》就講解到這兒,感謝大家的支持,歡迎各位留言交流以及批評指正,如果文章對您有幫助或者覺得作者寫的還不錯可以點一下關注,點贊,收藏支持一下

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

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

相關文章

C# --- 浮點數類型 float, double, decimal

C# --- 浮點數類型 float, double, decimal float, double, decimaldecimal float, double, decimal decimal double 和 float 的采用base 2, 不能精確的表示浮點數, 進行加減乘除的操作的時候會出現精度丟失的問題decimal 采用base 10,可以精確的表示浮點數&#x…

客戶體驗:電子元器件商城配送滿意度調查

背景介紹 電子元器件商城為了提升配送服務質量,決定開展配送滿意度調查,以了解客戶對配送服務的評價和意見。通過客戶的反饋,商城將進一步優化配送流程,提高客戶滿意度,增強市場競爭力。 調查內容 配送時效性&#xf…

linux 之dma_buf (4)- mmap

一、前言 前面幾篇都是在 kernel space 對 dma-buf 進行訪問的,本篇我們將一起來學習,如何在 user space 訪問 dma-buf。當然,user space 訪問 dma-buf 也屬于 CPU Access 的一種。 二、mmap 為了方便應用程序能直接在用戶空間讀寫 dma-bu…

nbcio-vue升級遷移flowable到最新的jeeg-boot-vue3的問題記錄(一)

因為這個項目license問題無法開源,更多技術支持與服務請加入我的知識星球。 1、vue3 jeeg-boot-vue3新版本的流程定義的頁面,刷新出現下面問題,或第一次進去也一樣 看著好像就一個警告的信息,不知道是什么原因引起的,應…

111.二叉樹的最小深度

給定一個二叉樹,找出其最小深度。 最小深度是從根節點到最近葉子節點的最短路徑上的節點數量。 說明: 葉子節點是指沒有子節點的節點。 示例: 給定二叉樹 [3,9,20,null,null,15,7], 返回它的最小深度 2. 思路: 后序遍歷(左右中&#xff…

深入理解 Nginx Concat 模塊:示例、安裝和使用方法

Nginx 是一個高性能的開源 Web 服務器,廣泛用于構建可靠的 Web 應用程序和服務。其中的 Concat 模塊為用戶提供了在服務器端快速合并和傳輸多個文件的能力,從而提高了網頁加載速度和性能。在本文中,我們將深入探討 Nginx Concat 模塊的安裝、示例以及使用場景。 什么是 Ngi…

【設計模式深度剖析】【5】【結構型】【橋接模式】| 以電視和遙控器為例加深理解

👈?上一篇:組合模式 設計模式-專欄👈? 目 錄 橋接模式(Bridge Pattern)定義英文原話是:直譯理解 4個角色UML類圖代碼示例 應用優點缺點使用場景 示例解析:電視和遙控器UML類圖 橋接模式(Bridge Pattern) 定義 英文原話是&am…

band對應頻段列表(2G、4G、5G)

5G BAND對應頻段 n1:2.1G n3:1.8 n5:850 n8:900 n28:700 n41:2.6G n77:3.3G n78:3.5G n79:4.9G n257、258、260:毫米波頻段(26G,28G,39G) 4G BAND對應頻段 Band1:2.1G–上行1920-1980 MHz,下行2110-2170 MHz Band3:1.8G–上行1710-1785 MH…

CC工具箱使用指南:【淹沒區分析(BHM)】

一、簡介 群友定制工具。 這個工具適用面比較小。 工具的應用場景如下: 提供一個淹沒區范圍,類型是面要素。統計這個范圍內的一些線、面要素的面積或長度。 給定的幾個數據有:耕地、永久基本農田、房臺、道路(線)…

基于Docker搭建屬于你的CC++集成編譯環境

常常,我會幻想著擁有一個隨時可以攜帶、隨時可以使用的開發環境,那該是多么美好的事情。 在工作中,編譯環境的復雜性常常讓我頭疼不已。稍有不慎,刪除了一些關鍵文件,整個編譯鏈就會瞬間崩潰。更糟糕的是,…

【Go語言入門學習筆記】Part6.包和兩個幾乎用不到的小Tip

一、前言 這個文章簡單了寫了一下包、init函數、匿名函數。 二、學習代碼 1.包 package packTestimport "fmt"func init() { //如果主函數引用了這個包,主函數執行的時候會先執行包的initfmt.Println("hello world") }func Add(num1 int, num…

如何保養和維護氣膜體育館—輕空間

隨著經濟的飛速發展,氣膜體育館以其新穎的外觀、優美的造型、節能環保的特點,迅速進入體育市場。然而,對于氣膜體育館的維護和保養是不容忽視的問題,必須引起重視。下面我們將詳細介紹氣膜體育館的維護需要從哪些方面著手。 一、保…

公路行業交通工程乙級資質的動態考核要點

技術人員保持與更新: 核查技術人員的在職狀態、專業資格證書的有效性,以及新增或離職技術人員的情況,確保關鍵崗位人員的穩定性和資質要求的持續達標。評估技術人員的專業發展,包括繼續教育、培訓和參與專業活動的情況&#xff0c…

【電路筆記】-狀態可變濾波器

狀態可變濾波器 文章目錄 狀態可變濾波器1、概述2、**狀態可變濾波器電路**3、狀態可變濾波器示例4、陷波濾波器設計5、總結狀態可變濾波器是一種多反饋濾波器電路,可以從同一單個有源濾波器設計中同時產生所有三種濾波器響應:低通、高通和帶通。 1、概述 狀態可變濾波器使用…

基于Java+SpringBoot+Mybaties-plus+Vue+elememt + uniapp 新聞資訊 的設計與實現

一.項目介紹 本系統分為 后端 和 小程序端 后端:點擊登錄按鈕 設置個人中心、 管理員賬號數據維護、 基礎數據維護、 短視頻信息維護(包括查看短視頻留言、短視頻收藏)、 論壇維護(增刪改查帖子信息,包括查…

Rabbit MQ學習之《基礎概念》

Message Queue 1 什么是MQ MQ(message queue),本質是個隊列,FIFO 先入先出,只不過隊列中存放的內容是message而已,同時是一種跨進程的通信機制,用于上下游傳遞消息。 在互聯網架構中,MQ 是一種非常常見的…

深入解析力扣166題:分數到小數(模擬長除法與字符串操作詳解及模擬面試問答)

力扣166題:分數到小數 在本篇文章中,我們將詳細解讀力扣第166題“分數到小數”。通過學習本篇文章,讀者將掌握如何使用多種方法來解決這一問題,并了解相關的復雜度分析和模擬面試問答。每種方法都將配以詳細的解釋和ASCII圖解&am…

鋇錸技術BL205模塊在智能制造產線的靈活配置與優化

鋇錸技術的OPC UA耦合器BL205模塊在智能制造產線中的靈活配置與優化是當今工業領域中的一個關鍵議題。隨著工業4.0和數字化轉型的不斷推進,生產線的靈活性和智能化程度成為了企業追求的目標。在這一背景下,BL205模塊以其分布式、可插拔、結構緊湊、可編程…

【Python快速上手(三十三)】- Python operator 模塊

目錄 Python快速上手(三十三)- Python operator 模塊Python operator 模塊詳解1. 模塊簡介2. 算術運算符函數3. 比較運算符函數4. 位運算符函數5. 序列操作函數6. 方法調用函數7. 操作函數對象8. 實際應用案例9. 小結 Python快速上手(三十三&…

Java基礎入門day57

day57 JSP、Servlet&#xff0c;Java bean和JDBC整合項目 index.jsp頁面 <% page contentType"text/html; charsetUTF-8" pageEncoding"UTF-8" %> <!DOCTYPE html> <html> <head><title>JSP - Hello World</title> …