当前位置: 首页 > article >正文

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的性能和资源利用率

相关文章:

Redis常用数据结构和应用场景

一、前言 Redis提供了多种数据结构,每种结构对应不同的应用场景。本文对部分常用的核心数据结构和典型使用场景作出介绍。 二、String(字符串) 特点:二进制安全,可存储文本、数字、序列化对象等。场景: 缓…...

【转载翻译】使用Open3D和Python进行点云处理

转自个人博客:【转载翻译】使用Open3D和Python进行点云处理 转载自:Point Cloud Processing with Open3D and Python 本文由 Carlos Melo 发布于2024年2月12日 本文很适合初学者对三维处理、点云处理以及Open3D库进行初步了解 另外,本文是基于…...

用户登录不上linux服务器

一般出现这种问题,重新用root用户修改lsy用户的密码即可登录,但是当修改了还是登录不了的时候,去修改一个文件用root才能修改, 然后在最后添加上改用户的名字,例如 原本是只有user的,现在我加上了lsy了&a…...

SQL 全文检索原理

全文检索(Full-Text Search)是SQL中用于高效搜索文本数据的技术,与传统的LIKE操作或简单字符串比较相比,它能提供更强大、更灵活的文本搜索能力。 基本概念 全文检索的核心思想是将文本内容分解为可索引的单元(通常是词或词组),然后建立倒排…...

dcsdsds

我将为您在页面顶部添加欢迎内容&#xff0c;同时保持整体风格的一致性。以下是修改后的代码&#xff0c;主要修改了模板部分和对应的样式&#xff1a; vue 复制 <template><div class"main-wrapper"><!-- 新增欢迎部分 --><div class"…...

FISCO BCOS区块链Postman接口测试:高级应用与实战技巧 [特殊字符]

引言:为什么Postman是FISCO BCOS测试的利器? 在区块链开发领域,接口测试是确保系统稳定性和安全性的关键环节。作为国产领先的联盟链平台,FISCO BCOS在金融、政务、供应链等多个领域得到广泛应用。而Postman作为一款功能强大的API测试工具,凭借其直观的图形界面和丰富的测…...

KWDB创作者计划—KWDB场景化创新实践:多模态数据融合与边缘智能的突破性应用

引言&#xff1a;AIoT时代的数据库范式重构 在工业物联网设备数量突破千亿、边缘计算节点覆盖率达75%的2025年&#xff0c;传统数据库面临多模态数据处理效率低下、边缘端算力利用率不足、跨域数据协同困难等核心挑战。KWDB&#xff08;KaiwuDB Community Edition&#xff09;通…...

风暴之眼:在AI重构的数字世界重绘职业坐标系

硅谷的某个深夜&#xff0c;GitHub Copilot在程序员的注视下自动生成出完美代码&#xff0c;这个场景正在全球数百万开发者的屏幕上同步上演。当AI生成的代码通过图灵测试&#xff0c;当机器学习模型开始理解业务需求&#xff0c;一个根本性命题浮出水面&#xff1a;在人类亲手…...

主机协议端口安全

FTP RDP SSH Rsync 渗透基础 | 黑客常用端口利用总结 - ZM思 - 博客园 (cnblogs.com)...

matplotlib数据展示

目录 一、绘制直方图 1、简单直方图 2、绘制横向直方图 3、绘制堆叠直方图 4、对比直方图 二、折线图与散点图 三、绘制饼图 四、雷达图 1、简单雷达图 2、多层雷达图 五、总和 在前面的学习中&#xff0c;我们能够使用一些库进行数据的整合&#xff0c;收集&#x…...

MySQL 面经

1、什么是 MySQL&#xff1f; MySQL 是一个开源的关系型数据库&#xff0c;现在隶属于 Oracle 公司。是我们国内使用频率最高的一种数据库&#xff0c;我本地安装的是比较新的 8.0 版本。 1.1 怎么删除/创建一张表&#xff1f; 可以使用 DROP TABLE 来删除表&#xff0c;使用…...

vLLM实战:多机多卡大模型分布式推理部署全流程指南

1. 环境准备与基础配置 1.1 系统要求 依赖组件&#xff1a; # 基础工具安装 sudo apt-get install -y lsof git-lfs nvidia-cuda-toolkit1.2 虚拟环境配置 使用conda创建隔离环境&#xff0c;避免依赖冲突&#xff1a; conda create -n vllm python3.10 -y conda activate…...

贪心算法 day08(加油站+单调递增的数字+坏了的计算机)

目录 1.加油站 2.单调递增的数字 3.坏了的计算器 1.加油站 链接&#xff1a;. - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a; gas[index] - cost[index]&#xff0c;ret 表示的是在i位置开始循环时剩余的油量 a到达的最大路径假设是f那么我们可以得出 a b …...

String类基本使用

文章目录 1. String类的理解和创建对象2. 创建String对象的两种方式3. 两种创建String对象的区别4. 测试5. 字符串的特性6. String 类的常见方法 1. String类的理解和创建对象 String 对象用于保存字符串&#xff0c;也就是一组字符序列字符串常量对象是用双引号括起的字符序列…...

华为机试—火车进站

题目 火车站一共有 n 辆火车需要入站&#xff0c;每辆火车有一个编号&#xff0c;编号为 1 到 n。 同时&#xff0c;也有火车需要出站&#xff0c;由于火车站进出共享一个轨道&#xff0c;所以后入站的火车需要先出站。换句话说&#xff0c;对于某一辆火车&#xff0c;只有在它…...

Python数组(array)学习之旅:数据结构的奇妙冒险

Python数组学习之旅:数据结构的奇妙冒险 第一天:初识数组的惊喜 阳光透过窗帘缝隙洒进李明的房间,照亮了他桌上摊开的笔记本和笔记本电脑。作为一名刚刚转行的金融分析师,李明已经坚持学习Python编程一个月了。他的眼睛因为昨晚熬夜编程而微微发红,但脸上却挂着期待的微…...

spark-core编程2

Key-Value类型&#xff1a; foldByKey 当分区内计算规则和分区间计算规则相同时&#xff0c;aggregateByKey 就可以简化为 foldByKey combineByKey 最通用的对 key-value 型 rdd 进行聚集操作的聚集函数&#xff08;aggregation function&#xff09;。类似于aggregate()&…...

AIDD-人工智能药物设计-大语言模型在医学领域的革命性应用

Nat. Rev. Bioeng. | 大语言模型在医学领域的革命性应用 大型语言模型&#xff08;LLMs&#xff09;&#xff0c;如 ChatGPT&#xff0c;因其对人类语言的理解与生成能力而备受关注。尽管越来越多研究探索其在临床诊断辅助、医学教育等任务中的应用&#xff0c;但关于其发展、…...

Windows 系统中安装 Git 并配置 GitHub 账户

由于电脑重装系统&#xff0c;重新配置了git. 以下是在 Windows 系统中安装 Git 并配置 GitHub 账户的详细步骤&#xff1a; 1. 安装 Git 访问 Git 官网下载页面下载 Windows 版本的 Git 安装程序运行安装程序&#xff0c;使用默认选项即可 2. 配置 Git 用户信息 打开命令…...

QQ风格客服聊天窗口

QQ风格客服聊天窗口 展示引入方式 展示 引入方式 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title&g…...

fastadmin后端添加页面,自主控制弹出框关闭,关闭父页面弹框

Form.api.bindevent($(“form[roleform]”), (data, ret) > { 重写绑定事件,返回false即可 注意:只有返回code1才能拦截,其他值不进行拦截 add: function () {//获取当前search里面的type值var type location.search.split(type)[1];Form.api.bindevent($("form[role…...

leetcode572 另一棵树的子树

1.与100、101解法相同 递归&#xff1a; class Solution { private:bool compare(TreeNode* p, TreeNode* q){if(!p && !q) return true;else if(!p || !q) return false;else if(p->val ! q->val) return false;bool leftside compare(p->left, q->lef…...

MCU刷写——Hex文件格式详解及Python代码

工作之余来写写关于MCU的Bootloader刷写的相关知识,以免忘记。今天就来聊聊Hex这种文件的格式,我是分享人M哥,目前从事车载控制器的软件开发及测试工作。 学习过程中如有任何疑问,可底下评论! 如果觉得文章内容在工作学习中有帮助到你,麻烦点赞收藏评论+关注走一波!感谢…...

ubnetu 服务器版本常用端口和开放的端口对应的应用

1. 使用 netstat 查看端口与进程 netstat 是查看网络连接和监听端口的常用工具。通过以下命令可以列出所有开放的TCP/UDP端口及其关联的进程&#xff1a; sudo netstat -tulnp参数解析&#xff1a; -t&#xff1a;显示TCP端口。 -u&#xff1a;显示UDP端口。 -l&#xff1…...

汇舟问卷:国外问卷调查技巧有哪些,具体该怎么操作

大家好&#xff0c;我是汇舟问卷&#xff0c;今天咱们就聊聊国外问卷答题的技巧和操作步骤&#xff0c;保你听完立马能上手&#xff01; 一、答题前先创建人设 1&#xff0c;进题时先瞄两眼问题&#xff0c;快速判断问卷主题&#xff0c;再定人设。比如遇到奶粉问卷&#xff…...

DeepSeek的神经元革命:穿透搜索引擎算法的下一代内容基建

DeepSeek的神经元革命&#xff1a;穿透搜索引擎算法的下一代内容基建 ——从语义网络到价值共识的范式重构 一、搜索引擎的“内容饥渴症”与AI的基建使命 2024年Q1数据显示&#xff0c;百度索引网页总数突破3500亿&#xff0c;但用户点击集中在0.78%的高价值页面。这种“数据…...

C++标识符:检查是否和保留字冲突

1. 基础知识 最基本的要求&#xff1a; 字母、数字、下划线组成&#xff0c; 并且不能是数字开头。 禁忌1&#xff1a; C 关键字不能用做标识符。 它们是&#xff1a; alignas alignof asm auto bool break case catch char char16_t char32_t class const constexpr const_…...

《Python星球日记》第27天:Seaborn 可视化

名人说&#xff1a;路漫漫其修远兮&#xff0c;吾将上下而求索。—— 屈原《离骚》 创作者&#xff1a;Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#x1f60a;&#xff09; 专栏&#xff1a;《Python星球日记》&#xff0c;限时特价订阅中ing 目录 一、Seabor…...

自动驾驶技术-相机_IMU时空标定

自动驾驶技术-相机_IMU时空标定 时间延迟 时间延迟 参考链接1、2 相机主要分为全局和卷帘快门相机&#xff0c;从触发到成像的过程包括&#xff1a;复位时间、AE()曝光时间、读出时间 全局快门如下图所示 卷帘快门如下图所示 相机录制视频时&#xff0c;为了保持固定频率&am…...

第十六届蓝桥杯大赛软件赛省赛 Python 大学 B 组 部分题解

题面链接Htlang/2025lqb_python_b 个人觉得今年这套题整体比往年要简单许多&#xff0c;但是G题想简单了出大问题&#xff0c;预估50101015120860&#xff0c;道阻且长&#xff0c;再接再厉 A: 攻击次数 答案&#xff1a;103&#xff1f;181&#xff1f;题目没说明白每回合是…...