Redis常用數據結構和應用場景

一、前言

  • Redis提供了多種數據結構,每種結構對應不同的應用場景。
  • 本文對部分常用的核心數據結構和典型使用場景作出介紹。

二、String(字符串)

  • 特點:二進制安全,可存儲文本、數字、序列化對象等。
  • 場景
    • 緩存:存儲Session、Token、圖片地址等。
    • 計數器:文章閱讀量(INCR)、秒殺庫存(DECR)。
    • 分布式鎖:SETNX實現簡單鎖(需結合過期時間)。
    • 示例命令:
SET user:1001 "{\"name\":\"Alice\",\"age\":25}"
INCR article:1001:views

三、Hash(哈希表)

  • 特點:鍵值對集合,適合存儲對象。
  • 場景
    • 對象存儲:用戶信息(字段獨立更新)、商品詳情。
    • 購物車:以用戶ID為Key,商品ID為Field,數量為Value。
    • 示例命令:
HSET user:1001 name Alice age 25
HINCRBY cart:1001 product:2001 1

四、List(列表)

  • 特點:雙向鏈表,支持棧/隊列操作。
  • 場景: 消息隊列:簡單任務隊列(LPUSH+BRPOP)。
    • 最新動態:朋友圈時間線(存儲最新N條動態)。
    • 示例命令:
LPUSH feed:1001 "New post: Redis guide"
LRANGE feed:1001 0 4  # 查看前5條動態

五、Set(集合)

  • 特點:無序且唯一元素,支持交并差運算。
  • 場景
    • 標簽系統:用戶興趣標簽(共同關注:SINTER)。
    • 抽獎/黑名單:去重存儲(如抽獎用戶ID)。
    • 示例命令:
SADD user:1001:tags tech database
SINTER user:1001:tags user:1002:tags  # 共同興趣

六、Sorted Set(有序集合)

  • 特點:元素按Score排序,支持范圍查詢。
  • 場景
    • 排行榜:游戲積分排名(ZREVRANGE)。
    • 延遲隊列:按時間戳排序處理任務。
    • 示例命令:
ZADD leaderboard 5000 "PlayerA" 4800 "PlayerB"
ZREVRANGE leaderboard 0 9 WITHSCORES  # 前10名

七、拓展結構

在這里插入圖片描述


八、使用建議

  • 內存優化:小對象優先用Hash(比多個String更省內存)。
  • 性能考量:高頻寫入場景慎用大Key(如長List/Hash)。
  • 集群限制:集群模式下慎用跨節點操作(如Set交并差)。
  • 通過合理選擇數據結構,可以顯著提升Redis的性能和資源利用率

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

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

相關文章

spring security oauth2.0的四種模式

OAuth 2.0 定義了 4 種授權模式(Grant Type),用于不同場景下的令牌獲取。以下是每種模式的詳細說明、適用場景和對比: 一、授權碼模式(Authorization Code Grant) 適用場景 ? Web 應用(有后端…

Oracle 排除交集數據 MINUS

MINUS 是 Oracle 數據庫中的一種集合操作符,用于返回第一個查詢結果中存在但第二個查詢結果中 不存在 的 唯一行。其核心功能是 排除交集數據,常用于數據差異分析或過濾特定記錄 一、核心功能 排除交集:返回第一個查詢結果中 不在第二個查詢結…

WiFi那些事兒(四)

目錄 一、IEEE 802.11ah標準簡介 二、IEEE 802.11ah信道特點 三、IEEE 802.11ah傳輸模式 在WiFi通信領域,信號繞射能力一直是一個關鍵問題。常規的WiFi設備多工作在2.4GHz和5GHz頻段,這些頻段的電磁波波長通常小于障礙物尺寸,受電磁波本身…

C++在Linux上生成動態庫并調用接口測試

加減乘除demo代碼 項目結構 CPP/ ├── calculator.cpp ├── calculator.h ├── main.cpp 頭文件 #ifndef CALCULATOR_H #define CALCULATOR_H#ifdef __cplusplus extern "C" {#endifdouble add(double a, double b);double subtract(double a, double b…

離線密碼生成器:安全可靠的密碼管理解決方案

離線密碼生成器:安全可靠的密碼管理解決方案 在當今數字時代,我們每天都需要使用各種網站和應用程序,每個賬戶都需要一個強密碼來保護我們的個人信息和隱私。然而,記住多個復雜的密碼幾乎是不可能的任務。今天,我要向…

ChatRex: Taming Multimodal LLM for Joint Perception and Understanding 論文理解和翻譯

一、TL;DR MLLM在感知方面存在不足(遠遠比不上專家模型),比如Qwen2-VL在coco上recall只有43.9%提出了ChatRex,旨在從模型設計和數據開發兩個角度來填補這一感知能力的缺口ChatRex通過proposal邊界框輸入到LLM中將其轉…

自動駕駛技術-相機_IMU時空標定

自動駕駛技術-相機_IMU時空標定 時間延遲 時間延遲 參考鏈接1、2 相機主要分為全局和卷簾快門相機,從觸發到成像的過程包括:復位時間、AE()曝光時間、讀出時間 全局快門如下圖所示 卷簾快門如下圖所示 相機錄制視頻時,為了保持固定頻率&am…

Vue3 + Vite + TS,使用 Web Worker,web worker進階 hooks

worker 具體通訊方式 1.由 web page 發送消息- worker.postMessage(發送數據) 2.web worker 接收消息并執行相關邏輯- onmessage (e) > { 接收數據并處理邏輯postMessage(傳遞處理后的數據)} 3.由 web page 監聽 worker 消息,包括:- 處理數據的監聽…

AIDD-人工智能藥物設計-AI 精準預測蛋白質變構位點

Allo-PED: AI 精準預測蛋白質變構位點 目錄 Allo-PED 框架融合蛋白質語言模型與結構特征,顯著提高了變構位點預測的準確性和泛化能力。EcoFoldDB 利用蛋白質結構信息,為宏基因組提供了精確且可擴展的生態功能注釋新方法,顯著提升了對未知微生物功能的認知。上下文分子適配(…

1558 找素數

1558 找素數 ??難度:中等 🌟考點:質數 📖 📚 import java.util.Scanner; import java.util.Arrays;public class Main {public static void main(String[] args) {Scanner sc new Scanner(System.in);int a sc.…

Nacos 提供了哪些服務的保護機制?

當面試官問這個問題時,大家一定要保持頭腦清醒,不要被帶跑偏了,Nacos 本身的核心定位是服務發現和配置管理中心,它并不直接提供像服務熔斷、服務限流、服務降級、請求重試 這類完整的、開箱即用的客戶端/網關級服務保護&#xff0…

【家政平臺開發(38)】解鎖家政平臺國際化密碼:多語言支持開發實戰

> 本【家政平臺開發】專欄聚焦家政平臺從 0 到 1 的全流程打造。從前期需求分析,剖析家政行業現狀、挖掘用戶需求與梳理功能要點,到系統設計階段的架構選型、數據庫構建,再到開發階段各模塊逐一實現。涵蓋移動與 PC 端設計、接口開發及性能優化,測試階段多維度保障平臺質…

DirectX12 - 基本知識 - 圖形驅動的本質

這里是SunshineBooming,GPU公司一枚小小的Driver工程師,主要工作是寫DirectX12 Driver,我會持續更新這個DX12 Spec系列,可能比較冷門,但是都是干貨和工作中的心得體會,有任何GPU相關的問題都可以在評論區互…

selenium元素獲取

from selenium import webdriver from selenium.webdriver.common.by import Bydriver webdriver.Chrome()driver.maximize_window()#最大化窗口 #隱式等待 driver.implicitly_wait(10)#打開網頁 driver.get("https://www.zhipin.com/beijing/?kacity-sites-101010100&q…

生物化學筆記:醫學免疫學原理15 超敏反應過敏反應(I型[蚊蟲叮咬]+II型[新生兒溶血癥、突眼型甲亢]+III型+IV型)

超敏反應 每個人都可能發生的過敏問題:被蚊子咬后起包 I型超敏反應 II型超敏反應 新生兒溶血癥分為Rh血型不合和ABO血型不合兩種情況。Rh血型不合通常從第二胎開始更容易發病,因為母體初次接觸Rh陽性胎兒的紅細胞后會產生抗D抗體,而這個致敏…

【android bluetooth 框架分析 02】【Module詳解 2】【gd_shim_module 模塊介紹】

1. 背景 上一章節 我們介紹了 module_t 的 大體框架 ,本節內容我們就選擇 我們的 gd_shim_module 模塊為例子,具體剖析一下,它里面的邏輯。 static const char GD_SHIM_MODULE[] "gd_shim_module";// system/main/shim/shim.cc …

【包管理器】主流包管理器_對比_應用場景

不定期更新,建議關注收藏點贊。 鏈接: npm專題 目錄 主流包管理器簡介對比 主流包管理器簡介 主流的包管理器其實有不少,不同語言和平臺都有各自的一套系統。 前端(JavaScript/TypeScript) 名稱簡介開發者特點npmNo…

參照Spring Boot后端框架實現序列化工具類

本文參照Jackson實現序列化工具類,旨在于簡化開發 JacksonUtil.class public class JacksonUtil {private JacksonUtil() {}/*** 單例*/private final static ObjectMapper OBJECT_MAPPER;static {OBJECT_MAPPER new ObjectMapper();}private static ObjectMappe…

Rust入門之迭代器(Iterators)

Rust入門之迭代器(Iterators) 本文已同步本人博客網站 本文相關源碼已上傳Github 前言 迭代器(Iterators)是 Rust 中最核心的工具之一,它不僅是遍歷集合的抽象,更是 Rust 零成本抽象(Zero-Co…

若依框架二次開發——RuoYi-AI 本地部署流程

文章目錄 項目環境安裝后端1. 下載項目2. 使用 IDEA 導入項目3. 配置 Maven4. 配置 Maven settings.xml5. 初始化數據庫6. 啟動 Redis7. 修改數據庫配置8. 啟動后端服務安裝管理端1. 下載管理端項目2. 安裝依賴3. 啟動管理端4. 修改管理端配置安裝用戶端1. 下載用戶端項目2. 安…