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

Redis 常用操作

一、Redis常用的5种数据类型

  1. 字符串(String):最基本的数据类型,可以存储字符串、整数或浮点数。
  2. 哈希(Hash):键值对的集合,可以在一个哈希数据结构中存储多个字段和值。
  3. 列表(List):按照插入顺序存储一组有序的值,可以在列表的两端执行插入、删除和访问操作。
  4. 集合(Set):无序的唯一值的集合,支持对集合执行添加、删除和集合间的交集、并集、差集等操作。
  5. 有序集合(Sorted Set):也叫Zset,类似于集合,但每个成员都关联着一个分数(score),可以根据分数对成员进行排序,同时保持唯一性。

二、String类型

常用操作

  1. SET key value:设置指定 key 的值为给定的 value。
  2. GET key:获取指定 key 的值。
  3. DEL key:删除指定的 key。
  4. MSET key value [key value ...]:批量设置key value。
  5. MGET key [key ...]:批量获得key value。
  6. SETEX key seconds value:设置指定 key 的值,并指定过期时间(以秒为单位)。
  7. SETNX key value:设置 key 不存在的key value,如果key存在,那么当前value不会覆盖已存在key的value。
  8. STRLEN key:返回指定 key 的值的长度。

原子加减操作:

  1. INCR key:将指定 key 的值加 1。
  2. DECR key:将指定 key 的值减 1。
  3. INCRBY key increment:将指定key的value与increment相加,只针对数字类型。
  4. DECEBY key decrement:将指定key的value减去decrement,只针对数字类型。
  5. APPEND key value:将指定 value 追加到指定 key 的值末尾。
  6. GETSET key value:设置指定 key 的新值,并返回旧值。

单值缓存操作:

  1. SET key value
  2. GET key

对象缓存操作:

  1. SET user:1 value(value是一个JSON字符串)
  2. MSET user:1:name zhangsan user:1:age 18

分布式锁操作:

  1. SETNX lock_key 1 (lock_key:要锁的键, 1: 可以是任意非空的值,用于表示锁的存在。结果返回0表示false,1表示true)
  2. DEL lock_key //执行完业务逻辑释放锁
  3. SETEX lock_key expiration_time 1(设置有时效的锁)

Sting类型适用场景

  1. 例如统计一篇文章的阅读量,在业务场景上来说用户打开一篇文章则+1,那么可以使用redis的计数器。使用incr article:readcount:1000,每执行一次表示文章ID为1000的累加一次。article:readcount是我们自定义的前缀,为了更好的见名识义
  2. Web集群session共享,spring session + redis实现session共享
  3. 分布式全局序列号,使用redis批量生成序列号提升性能,INCRBY orderId 1

三、Hash类型

常用操作

  1. HSET key field value:设置 Hash 中指定键的字段和值。
  2. HGET key field:获取 Hash 中指定键的字段的值。
  3. HDEL key field1 [field2 ...]:删除 Hash 中指定键的一个或多个字段。
  4. HEXISTS key field:检查 Hash 中指定键是否存在指定字段。
  5. HKEYS key:获取 Hash 中指定键的所有字段名。
  6. HVALS key:获取 Hash 中指定键的所有字段值。
  7. HGETALL key:获取 Hash 中指定键的所有字段和值。
  8. HINCRBY key field increment:将 Hash 中指定键的字段值按给定增量递增。
  9. HLEN key:获取 Hash 中指定键的字段数量。

对象缓存操作

  1. HMSET key field1 value1 [field2 value2 ...]:同时设置 Hash 中指定键的多个字段和值。
  2. HMGET key field1:获取 Hash 中指定键的字段值。

四、List类型

常用操作

  1. LPUSH key element1 [element2 ...]:将一个或多个元素从左侧插入到列表中。
  2. RPUSH key element1 [element2 ...]:将一个或多个元素从右侧插入到列表中。
  3. LPOP key:从左侧移除并返回列表中的第一个元素。
  4. RPOP key:从右侧移除并返回列表中的最后一个元素。
  5. BRPOP key [key ...] timeout:从右侧移除一个元素,如果没有则等待,timeout是等待时长(秒),0则一直等待
  6. LINDEX key index:获取列表中指定索引位置的元素值。
  7. LRANGE key start stop:获取列表中指定范围内的元素列表。
  8. LLEN key:获取列表的长度(即列表中元素的数量)。
  9. LREM key count element:从列表中移除指定数量的匹配元素。
  10. LINSERT key BEFORE|AFTER pivot element:在列表中指定元素的前面或后面插入一个元素。
  11. LSET key index element:将列表中指定索引位置的元素替换为新的值。

五、Set类型

常用操作

  1. SADD key member1 [member2 ...]:将一个或多个成员添加到集合中,成员存在则忽略,不存在则新建。
  2. SREM key member1 [member2 ...]:从集合中移除一个或多个成员。
  3. SISMEMBER key member:检查指定成员是否存在于集合中。
  4. SMEMBERS key:获取集合中的所有成员。
  5. SCARD key:获取集合中的成员数量。
  6. SPOP key [count]:从集合中随机移除并返回一个或多个成员。
  7. SRANDMEMBER key [count]:从集合中随机获取一个或多个成员,但不移除。
  8. SDIFF key1 [key2 ...]:获取多个集合的差集。(计算公式为:list1-(list2、list2、...的并集),第一个集合减去其他几个集合的并集。排除相同的元素,第一个集合剩下的就是并集)
  9. SINTER key1 [key2 ...]:获取多个集合的交集。
  10. SUNION key1 [key2 ...]:获取多个集合的并集。

六、Sorted Set(Zset)

  1. ZADD key score1 member1 [score2 member2 ...]:将一个或多个成员及其分数添加到有序集合中。各参数的具体含义:key为键,score为member的分数,用于排序,member是key的值,可以批量添加。
  2. ZREM key member1 [member2 ...]:从有序集合中移除一个或多个成员。
  3. ZSCORE key member:获取有序集合中指定成员的分数。
  4. ZRANGE key start stop [WITHSCORES]:按照分数从小到大的顺序,获取有序集合中指定索引范围内的成员。
  5. ZREVRANGE key start stop [WITHSCORES]:按照分数从大到小的顺序,获取有序集合中指定索引范围内的成员。
  6. ZCARD key:获取有序集合中的成员数量。
  7. ZCOUNT key min max:计算有序集合中分数在给定范围内的成员数量。
  8. ZRANK key member:获取有序集合中指定成员的排名,排名从0开始。(按照分数从小到大的顺序)。
  9. ZREVRANK key member:获取有序集合中指定成员的排名(按照分数从大到小的顺序)。
  10. ZINCRBY key increment member:将有序集合中指定成员的分数增加给定的增量值。

相关文章:

Redis 常用操作

一、Redis常用的5种数据类型 字符串(String):最基本的数据类型,可以存储字符串、整数或浮点数。哈希(Hash):键值对的集合,可以在一个哈希数据结构中存储多个字段和值。列表&#xf…...

c# 使用Null合并操作符例子

在这个示例中,我们定义了两个字符串变量 name 和 defaultName。变量 name 被赋值为 null,而变量 defaultName 被赋值为 “John Doe”。 接下来,我们使用 Null 合并操作符 ?? 来获取一个非空值。如果 name 不为 null,则 result 的…...

【Docker】docker部署conda并激活环境

原文作者:我辈李想 版权声明:文章原创,转载时请务必加上原文超链接、作者信息和本声明。 文章目录 前言一、新建dockerfile文件二、使用build创建镜像1.报错:Your shell has not been properly configured to use conda activate.…...

HarmonyOS@Link装饰器:父子双向同步

Link装饰器:父子双向同步 子组件中被Link装饰的变量与其父组件中对应的数据源建立双向数据绑定。 说明 从API version 9开始,该装饰器支持在ArkTS卡片中使用。 概述 Link装饰的变量与其父组件中的数据源共享相同的值。 装饰器使用规则说明 Link变…...

【idea】idea插件编写教程,博主原创idea插件 欢迎下载

前言:经常使用Objects.equals(a,b)方法的同学 应该或多或少都会因为粗心而传错参, 例如日常开发中 我们使用Objects.equals去比较 status(入参),statusEnum(枚举), 很容易忘记statusEnum.getCode() 或 statusEnum.getVaule() ,再比…...

深入理解 Hadoop (四)HDFS源码剖析

HDFS 集群启动脚本 start-dfs.sh 分析 启动 HDFS 集群总共会涉及到的角色会有 namenode, datanode, zkfc, journalnode, secondaryName 共五种角色。 JournalNode 核心工作和启动流程源码剖析 // 启动 JournalNode 的核心业务方法 public void start() throws IOException …...

【Vue3+React18+TS4】1-1 : 课程介绍与学习指南

本书目录:点击进入 一、为什么做这样一门课程? 二、本门课的亮点有哪些? 2.1、轻松驾驭 2.2、体系系统 2.3、高效快捷 2.4、融合贯通 三、课程内容包括哪些? 四、项目实战 《在线考勤系统》 五、课适合哪些同学? 一、为什么做这样一门课程? 近十年内前端…...

Nacos与Eureka的区别详解

Nacos与Eureka的区别详解 在微服务架构中,服务注册与发现是核心组件之一,它们允许服务实例在启动时自动注册,并且能被其他服务发现,从而实现服务之间的互相通信。Nacos和Eureka都是现代微服务体系中广泛使用的服务注册与发现工具。本文将深入分析二者的区别,并为您提供一…...

【算法刷题】Day28

文章目录 1. 买卖股票的最佳时机 III题干:算法原理:1. 状态表示:2. 状态转移方程3. 初始化4. 填表顺序5. 返回值 代码: 2. Z 字形变换题干:算法原理:1. 模拟2. 找规律 代码: 1. 买卖股票的最佳时…...

深入了解pnpm:一种高效的包管理工具

✨专栏介绍 在当今数字化时代,Web应用程序已经成为了人们生活和工作中不可或缺的一部分。而要构建出令人印象深刻且功能强大的Web应用程序,就需要掌握一系列前端技术。前端技术涵盖了HTML、CSS和JavaScript等核心技术,以及各种框架、库和工具…...

QEMU源码全解析 —— PCI设备模拟(1)

接前一篇文章: 1. PCI设备简介 PCI是用来连接外设的一种局部(local)总线,其主要功能是连接外部设备。PCI总线规范在20世纪90年代提出以后,其逐渐取代了其它各种总线,被各种处理器所支持。直到现在&#xf…...

Vue-10、Vue键盘事件

1、vue中常见的按键别名 回车 ---------enter <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>键盘事件</title><!--引入vue--><script type"text/javascript" src"h…...

胡圆圆的暑期实习经验分享

背景 实验室一般是在研究生二年级的时候会放实习&#xff0c;在以后的日子就是自己完成毕业工作要求&#xff0c;基本上不再涉及实验室的活了&#xff0c;目前是一月份也是开始准备暑期实习的好时间。实验室每年这个时候都会有学长学姐组织暑期实习经验分享&#xff0c;本着不…...

基于uniapp封装的table组件

数据格式 tableData: [{elcInfo: [{tableData:[1,293021.1,293021.1,293021.1,293021.1,]}]},{elcInfo: [{tableData:[1,293021.1,293021.1,293021.1,293021.1,]}]},{elcInfo: [{tableData:[1,293021.1,293021.1,293021.1,293021.1,]}]},/* {title: "2",elcInfo: [{…...

Git删除远程仓库某次提交记录后的所有提交

1、鼠标右键->git bash here&#xff0c;然后cd切换到代码目录&#xff1b; 2、git log查看提交记录&#xff0c;获取commit id 3、git reset commit id&#xff08;commit id指要保留的最新的提交记录id&#xff09; 4、git push --force&#xff0c;强制push 如果出现…...

强化学习10——免模型控制Q-learning算法

Q-learning算法 主要思路 由于 V π ( s ) ∑ a ∈ A π ( a ∣ s ) Q π ( s , a ) V_\pi(s)\sum_{a\in A}\pi(a\mid s)Q_\pi(s,a) Vπ​(s)∑a∈A​π(a∣s)Qπ​(s,a) &#xff0c;当我们直接预测动作价值函数&#xff0c;在决策中选择Q值最大即动作价值最大的动作&…...

【数据库】CRUD常用函数UNION 和 UNION ALL

文章目录 一、CRUD二、函数2.1 字符函数 (Character Functions):2.2 数字函数 (Numeric Functions):2.3 日期函数 (Date Functions):2.4 流程控制函数:2.5 聚合函数: 三、UNION 和 UNION ALL3.1 UNION&#xff1a;3.2 UNION ALL3.3 注意事项 一、CRUD CRUD 是指数据库操作的四…...

Adding Conditional Control to Text-to-Image Diffusion Models——【论文笔记】

本文发表于ICCV2023 论文地址&#xff1a;ICCV 2023 Open Access Repository (thecvf.com) 官方实现代码&#xff1a;lllyasviel/ControlNet: Let us control diffusion models! (github.com) Abstract 论文提出了一种神经网络架构ControlNet,可以将空间条件控制添加到大型…...

Python与人工智能

Python 是一种广泛用于人工智能&#xff08;AI&#xff09;开发的编程语言。Python具有简洁的语法和强大的库支持&#xff0c;使其成为数据科学、机器学习和深度学习的理想选择。 Python中有许多库可以帮助实现人工智能&#xff0c;其中最流行的包括TensorFlow和PyTorch。这些…...

【Docker】Docker基础

文章目录 安装使用帮助启动命令镜像命令容器命令 安装 # 卸载旧版本 sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine # 设置存储库 sudo yum install -y yum-utils …...

英雄联盟玩家的智能工具箱:League Akari 如何提升你的游戏体验

英雄联盟玩家的智能工具箱&#xff1a;League Akari 如何提升你的游戏体验 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power &#x1f680;. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 想象一下这样的场景…...

Python实战:三大曲线平滑技术对比与场景选型指南

1. 曲线平滑处理的必要性 当你处理传感器数据、金融时间序列或任何带有噪声的曲线时&#xff0c;原始数据往往像一条暴躁的蚯蚓——上下乱窜让人抓狂。我在处理工业传感器数据时就遇到过这种情况&#xff1a;一条本该平滑的温度曲线&#xff0c;因为电磁干扰变成了"心电图…...

HS2汉化补丁完整指南:3步轻松实现Honey Select 2中文界面

HS2汉化补丁完整指南&#xff1a;3步轻松实现Honey Select 2中文界面 【免费下载链接】HS2-HF_Patch Automatically translate, uncensor and update HoneySelect2! 项目地址: https://gitcode.com/gh_mirrors/hs/HS2-HF_Patch 还在为Honey Select 2的日语界面感到困扰吗…...

开源秘密管理工具 phantom-secrets:本地化安全存储与自动化集成指南

1. 项目概述&#xff1a;一个用于秘密管理的开源工具 在软件开发和运维的日常工作中&#xff0c;秘密&#xff08;Secrets&#xff09;的管理一直是个既基础又棘手的问题。无论是数据库密码、API密钥、云服务凭证&#xff0c;还是TLS证书的私钥&#xff0c;这些敏感信息一旦泄露…...

HC32F4A0 ADC+DMA实战:8通道模拟量采集,从时钟配置到数据搬运的保姆级避坑指南

HC32F4A0 ADCDMA实战&#xff1a;8通道模拟量采集全流程精解与典型问题排查 在工业控制、智能家居和物联网设备开发中&#xff0c;多通道模拟信号采集是嵌入式系统的基础功能。HC32F4A0作为华大半导体推出的高性能MCU&#xff0c;其ADC模块配合DMA控制器可实现高效的数据采集方…...

如何快速部署Apache Traffic Server:10分钟上手完整教程

如何快速部署Apache Traffic Server&#xff1a;10分钟上手完整教程 【免费下载链接】trafficserver Apache Traffic Server™ is a fast, scalable and extensible HTTP/1.1 and HTTP/2 compliant caching proxy server. 项目地址: https://gitcode.com/gh_mirrors/traf/tra…...

5分钟掌握全能文档下载神器:告别付费壁垒,解放你的知识获取能力

5分钟掌握全能文档下载神器&#xff1a;告别付费壁垒&#xff0c;解放你的知识获取能力 【免费下载链接】kill-doc 看到经常有小伙伴们需要下载一些免费文档&#xff0c;但是相关网站浏览体验不好各种广告&#xff0c;各种登录验证&#xff0c;需要很多步骤才能下载文档&#x…...

BlueArchive-Cursors:为你的Windows桌面注入二次元灵魂

BlueArchive-Cursors&#xff1a;为你的Windows桌面注入二次元灵魂 【免费下载链接】BlueArchive-Cursors Custom mouse cursor theme based on the school RPG Blue Archive. 项目地址: https://gitcode.com/gh_mirrors/bl/BlueArchive-Cursors 还在使用Windows默认的单…...

智能网联时代的分心驾驶:技术悖论、工程困境与系统化安全框架

1. 项目概述&#xff1a;一个被忽视的致命悖论 作为一名在汽车电子和智能网联领域摸爬滚打了十几年的工程师&#xff0c;我见过太多关于“未来出行”的炫酷概念和激动人心的技术路线图。从早期的车载信息娱乐系统&#xff0c;到后来的高级驾驶辅助系统&#xff0c;再到如今如火…...

WorkshopDL:一站式解决跨平台Steam创意工坊模组下载难题

WorkshopDL&#xff1a;一站式解决跨平台Steam创意工坊模组下载难题 【免费下载链接】WorkshopDL WorkshopDL - The Best Steam Workshop Downloader 项目地址: https://gitcode.com/gh_mirrors/wo/WorkshopDL 你是否在Epic Games Store或GOG平台购买了心仪的游戏&#…...