Redis 常用操作
一、Redis常用的5种数据类型
- 字符串(String):最基本的数据类型,可以存储字符串、整数或浮点数。
- 哈希(Hash):键值对的集合,可以在一个哈希数据结构中存储多个字段和值。
- 列表(List):按照插入顺序存储一组有序的值,可以在列表的两端执行插入、删除和访问操作。
- 集合(Set):无序的唯一值的集合,支持对集合执行添加、删除和集合间的交集、并集、差集等操作。
- 有序集合(Sorted Set):也叫Zset,类似于集合,但每个成员都关联着一个分数(score),可以根据分数对成员进行排序,同时保持唯一性。
二、String类型
常用操作
- SET key value:设置指定 key 的值为给定的 value。
- GET key:获取指定 key 的值。
- DEL key:删除指定的 key。
- MSET key value [key value ...]:批量设置key value。
- MGET key [key ...]:批量获得key value。
- SETEX key seconds value:设置指定 key 的值,并指定过期时间(以秒为单位)。
- SETNX key value:设置 key 不存在的key value,如果key存在,那么当前value不会覆盖已存在key的value。
- STRLEN key:返回指定 key 的值的长度。
原子加减操作:
- INCR key:将指定 key 的值加 1。
- DECR key:将指定 key 的值减 1。
- INCRBY key increment:将指定key的value与increment相加,只针对数字类型。
- DECEBY key decrement:将指定key的value减去decrement,只针对数字类型。
- APPEND key value:将指定 value 追加到指定 key 的值末尾。
- GETSET key value:设置指定 key 的新值,并返回旧值。
单值缓存操作:
- SET key value
- GET key
对象缓存操作:
- SET user:1 value(value是一个JSON字符串)
- MSET user:1:name zhangsan user:1:age 18
分布式锁操作:
- SETNX lock_key 1 (lock_key:要锁的键, 1: 可以是任意非空的值,用于表示锁的存在。结果返回0表示false,1表示true)
- DEL lock_key //执行完业务逻辑释放锁
- SETEX lock_key expiration_time 1(设置有时效的锁)
Sting类型适用场景
- 例如统计一篇文章的阅读量,在业务场景上来说用户打开一篇文章则+1,那么可以使用redis的计数器。使用incr article:readcount:1000,每执行一次表示文章ID为1000的累加一次。article:readcount是我们自定义的前缀,为了更好的见名识义
- Web集群session共享,spring session + redis实现session共享
- 分布式全局序列号,使用redis批量生成序列号提升性能,INCRBY orderId 1
三、Hash类型
常用操作
- HSET key field value:设置 Hash 中指定键的字段和值。
- HGET key field:获取 Hash 中指定键的字段的值。
- HDEL key field1 [field2 ...]:删除 Hash 中指定键的一个或多个字段。
- HEXISTS key field:检查 Hash 中指定键是否存在指定字段。
- HKEYS key:获取 Hash 中指定键的所有字段名。
- HVALS key:获取 Hash 中指定键的所有字段值。
- HGETALL key:获取 Hash 中指定键的所有字段和值。
- HINCRBY key field increment:将 Hash 中指定键的字段值按给定增量递增。
- HLEN key:获取 Hash 中指定键的字段数量。
对象缓存操作
- HMSET key field1 value1 [field2 value2 ...]:同时设置 Hash 中指定键的多个字段和值。
- HMGET key field1:获取 Hash 中指定键的字段值。
四、List类型
常用操作
- LPUSH key element1 [element2 ...]:将一个或多个元素从左侧插入到列表中。
- RPUSH key element1 [element2 ...]:将一个或多个元素从右侧插入到列表中。
- LPOP key:从左侧移除并返回列表中的第一个元素。
- RPOP key:从右侧移除并返回列表中的最后一个元素。
- BRPOP key [key ...] timeout:从右侧移除一个元素,如果没有则等待,timeout是等待时长(秒),0则一直等待
- LINDEX key index:获取列表中指定索引位置的元素值。
- LRANGE key start stop:获取列表中指定范围内的元素列表。
- LLEN key:获取列表的长度(即列表中元素的数量)。
- LREM key count element:从列表中移除指定数量的匹配元素。
- LINSERT key BEFORE|AFTER pivot element:在列表中指定元素的前面或后面插入一个元素。
- LSET key index element:将列表中指定索引位置的元素替换为新的值。
五、Set类型
常用操作
- SADD key member1 [member2 ...]:将一个或多个成员添加到集合中,成员存在则忽略,不存在则新建。
- SREM key member1 [member2 ...]:从集合中移除一个或多个成员。
- SISMEMBER key member:检查指定成员是否存在于集合中。
- SMEMBERS key:获取集合中的所有成员。
- SCARD key:获取集合中的成员数量。
- SPOP key [count]:从集合中随机移除并返回一个或多个成员。
- SRANDMEMBER key [count]:从集合中随机获取一个或多个成员,但不移除。
- SDIFF key1 [key2 ...]:获取多个集合的差集。(计算公式为:list1-(list2、list2、...的并集),第一个集合减去其他几个集合的并集。排除相同的元素,第一个集合剩下的就是并集)
- SINTER key1 [key2 ...]:获取多个集合的交集。
- SUNION key1 [key2 ...]:获取多个集合的并集。
六、Sorted Set(Zset)
- ZADD key score1 member1 [score2 member2 ...]:将一个或多个成员及其分数添加到有序集合中。各参数的具体含义:key为键,score为member的分数,用于排序,member是key的值,可以批量添加。
- ZREM key member1 [member2 ...]:从有序集合中移除一个或多个成员。
- ZSCORE key member:获取有序集合中指定成员的分数。
- ZRANGE key start stop [WITHSCORES]:按照分数从小到大的顺序,获取有序集合中指定索引范围内的成员。
- ZREVRANGE key start stop [WITHSCORES]:按照分数从大到小的顺序,获取有序集合中指定索引范围内的成员。
- ZCARD key:获取有序集合中的成员数量。
- ZCOUNT key min max:计算有序集合中分数在给定范围内的成员数量。
- ZRANK key member:获取有序集合中指定成员的排名,排名从0开始。(按照分数从小到大的顺序)。
- ZREVRANK key member:获取有序集合中指定成员的排名(按照分数从大到小的顺序)。
- ZINCRBY key increment member:将有序集合中指定成员的分数增加给定的增量值。
相关文章:
Redis 常用操作
一、Redis常用的5种数据类型 字符串(String):最基本的数据类型,可以存储字符串、整数或浮点数。哈希(Hash):键值对的集合,可以在一个哈希数据结构中存储多个字段和值。列表…...
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年代提出以后,其逐渐取代了其它各种总线,被各种处理器所支持。直到现在…...
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…...
胡圆圆的暑期实习经验分享
背景 实验室一般是在研究生二年级的时候会放实习,在以后的日子就是自己完成毕业工作要求,基本上不再涉及实验室的活了,目前是一月份也是开始准备暑期实习的好时间。实验室每年这个时候都会有学长学姐组织暑期实习经验分享,本着不…...
基于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,然后cd切换到代码目录; 2、git log查看提交记录,获取commit id 3、git reset commit id(commit id指要保留的最新的提交记录id) 4、git push --force,强制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) ,当我们直接预测动作价值函数,在决策中选择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:3.2 UNION ALL3.3 注意事项 一、CRUD CRUD 是指数据库操作的四…...
Adding Conditional Control to Text-to-Image Diffusion Models——【论文笔记】
本文发表于ICCV2023 论文地址:ICCV 2023 Open Access Repository (thecvf.com) 官方实现代码:lllyasviel/ControlNet: Let us control diffusion models! (github.com) Abstract 论文提出了一种神经网络架构ControlNet,可以将空间条件控制添加到大型…...
Python与人工智能
Python 是一种广泛用于人工智能(AI)开发的编程语言。Python具有简洁的语法和强大的库支持,使其成为数据科学、机器学习和深度学习的理想选择。 Python中有许多库可以帮助实现人工智能,其中最流行的包括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 …...
linux异常情况,排查处理中
登录客户环境后,发现一个奇怪情况如下图,之前也遇到过,直接fuser -ck /backup操作的话,主机将会重启,因数据库运行中,等待停机维护时间,同时也在想办法不重启的情况下解决该问题 [rootdb ~]# f…...
Spring Boot参数校验方案
NotNull:值不能为null;NotEmpty:字符串、集合或数组的值不能为空,即长度大于0;NotBlank:字符串的值不能为空白,即不能只包含空格;Size:字符串、集合或数组的大小是否在指…...
【漏洞复现】ActiveMQ反序列化漏洞(CVE-2015-5254)
Nx01 产品简介 Apache ActiveMQ是Apache软件基金会所研发的开放源代码消息中间件。ActiveMQ是消息队列服务,是面向消息中间件(MOM)的最终实现,它为企业消息传递提供高可用、出色性能、可扩展、稳定和安全保障。 Nx02 漏洞描述 Re…...
面试题:MySQL误删表数据,如何快速恢复丢失的数据?
相信后端研发的同学在开发过程经常会遇到产品临时修改线上数据的需求,如果手法很稳那么很庆幸可以很快完成任务,很不幸某一天突然手一抖把表里的数据修改错误或者误删了,这个时候你会发现各种问题反馈接踵而来。 如果身边有BDA或者有这方面经…...
李沐之神经网络基础
目录 1.模型构造 1.1层和块 1.2自定义块 1.3顺序块 1.4在前向传播函数中执行代码 2.参数管理 2.1参数访问 2.2参数初始化 3.自定义层 3.1不带参数的层 3.2带参数的层 4.读写文件 4.1加载和保存张量 4.2加载和保存模型参数 1.模型构造 1.1层和块 import torch fr…...
【docker】使用 Dockerfile 构建镜像
一、什么是Dockerfile Dockerfile 是用于构建 Docker 镜像的文本文件。它包含了一系列的指令,用于描述如何构建镜像的步骤和配置。 通过编写 Dockerfile,您可以定义镜像的基础环境、安装软件包、复制文件、设置环境变量等操作。Dockerfile 提供了一种可…...
计算机网络—— 概述
概述 1.1 因特网概述 网络、互联网和因特网 网络由若干结点和连接这些结点的链路组成多个网络还可以通过路由器互联起来,这样就构成了一个覆盖范围更大的网络,即互联网(或互连网)。因特网(Internet)是世…...
“超人练习法”系列06:如何更好地掌握技能?
01 掌握的阶段 关于人类学习新事物的最生动、最精妙的比喻,我是从笑来老师那里学到的。 他指出,学习新知识、新概念犹如在构建自己大脑皮层,每个习得的概念就像是大脑皮层上的一个个微小神经元。 一个看似聪明、博学的人,总能在各…...
【华为OD机试真题2023CD卷 JAVAJS】字符串拼接
华为OD2023(C&D卷)机试题库全覆盖,刷题指南点这里 字符串拼接 知识点数组递归 时间限制:1s 空间限制:256MB 限定语言:不限 题目描述: 给定M(0<M<=30)个字符(a-z),从中取出任意字符(每个字符只能用一次)拼接成长度为N(0<N<=5)的字符串,要求相同的字…...
【算法】链表-20240109
这里写目录标题 一、141. 环形链表二、876. 链表的中间结点三、面试题 02.01. 移除重复节点 一、141. 环形链表 简单 给你一个链表的头节点 head ,判断链表中是否有环。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中…...
怎么做网站文字优化/促销活动推广语言
在使用ajks时,json是经常使用的一种数据,我对它了解的也不是很透彻,但在这里想要分享一下最近答辩中我使用它的一种形式,当然这是一种很笨的方法。 我希望在访问网上书店时,主页里有一些分类,点击不同的分类…...
公司网站维护如何做分录/外链交易平台
Paxos算法在分布式领域具有非常重要的地位。但是Paxos算法有两个比较明显的缺点:1.难以理解 2.工程实现更难。 网上有很多讲解Paxos算法的文章,但是质量参差不齐。看了很多关于Paxos的资料后发现,学习Paxos最好的资料是论文《Paxos Made Sim…...
备案网站url转发/凡科建站客服电话
三种方法实现HBASE主-从集群备份 1、Export/Import 通过Export导出数据到目标集群的hdfs,再在目标集群执行import导入数据,Export支持指定开始时间和结束时间,因此可以做增量备份,导出时可以指定version,starttime(时…...
做姓氏图的网站/七牛云
来源 | 腾讯知乎专栏作者 | AIoys(腾讯员工,后台工程师)项目文档和代码在此:github项目地址▌一、前言阅读本文的基础:我会认为你对BP神经网络有充分的了解,熟读过我上一篇文章,本文会大量引用上…...
迪奥生物做图网站/南宁百度seo建议
while循环 do...while循环 for 循环 在Java5中引入了一种主要用于数组增强型for循环。 whil循环结构:while循环时最基本的循环结构结构语句如下 语句: while(布尔表达式){ 循环内容 } 只要布尔表达式时为true,…...
中山市区做网站公司/亚马逊的免费网站
导读:高考专业解读,计算机科学与技术国家重点学科,21所高校获评!计算机科学与技术专业一直以来都是报考的热门,计算机科学与技术(0821)下设3个二级学科081201计算机系统结构;081202计算机软件与理论&#x…...