Redis中String类型的常用命令(append,getrenge,setrange等命令)
Redis----String命令
- 前言.
- 常见的String存储类型.
- 常见命令
- 1. set 命令
- 2. get 命令
- 3. mget命令与mset命令
- 4. setnx命令
- 5. setex与psetex命令
- 6. incr与incrby与incrbyfloat命令
- 7. decr与decrby命令
- 8. append命令
- 9. getrange和setrange命令
- 10. strlen命令.
前言.
常见的String存储类型.
-
基本格式的字符串

-
JSON格式的字符串.

-
数字(浮点数/整数)

-
二进制数据.
如图片、视频、音频等文件的二进制表示。由于Redis的String是二进制安全的,因此可以直接用来存储这些非文本数据。但需要注意的是,虽然技术上可行,但在实践中通常不会将大量或大尺寸的二进制文件直接存储在Redis中,因为这会占用大量的内存资源,影响Redis的性能。
常见命令
1. set 命令
- 功能:
- 在Redis中,SET命令用于设置(或更新)存储在Redis数据库中的键的值。这个命令是最基本的Redis命令之一,用于存储字符串类型的值。当你执行SET命令时,你需要指定一个键(key)和一个值(value),Redis会将这个值存储在指定的键下。
- 基本格式:
SET key value [expiration EX seconds|PX milliseconds] [NX|XX]
key: 要设置的键。
value: 要设置的值。
expiration: 可选参数,用于设置键的过期时间。
EX seconds: 设置键的过期时间为指定的秒数。
PX milliseconds: 设置键的过期时间为指定的毫秒数。
NX: 可选参数,仅当键不存在时才设置键值对。
XX: 可选参数,仅当键已存在时才设置键值对。
- 演示命令的使用:

2. get 命令
- 功能:
- 获取 key 对应的 value。如果 key 不存在,返回 nil。如果 value 的数据类型不是 string,会报错。
- 基本格式:
GET key
- 演示命令的使用:

3. mget命令与mset命令
- 功能:
- MSET和MGET分别用于批量设置和获取多个键值对
- 返回值:
- MSET返回ok
- MGET返回对应的value值,不存在则是nil
- 基本格式:
MGET key [key …]
MGET key [key …]
- 演示命令的使用:

4. setnx命令
- 功能:
- SETNX是Redis中的一个命令,全称为“Set if Not Exists”,即“如果不存在则设置”。该命令用于设置一个键值对,但仅当该键在Redis数据库中尚不存在时才会执行设置操作。
- 返回值:
- 如果键不存在,设置成功,返回1。
- 如果键已存在,设置失败,不做任何操作,返回0
- 基本格式:
SETNX key value
- 演示命令的使用:

5. setex与psetex命令
- 功能:
- SETEX命令用于设置键的值及其过期时间(以秒为单位)。如果键已经存在,SETEX命令会替换旧的值及其过期时间。
- PSETEX命令与SETEX类似,也是用于设置键的值及其过期时间,但过期时间的单位是以毫秒为单位。
- 返回值:
- 操作成功时都返回“OK”。
- 基本格式:
SETEX key seconds value 设置到期时间为秒
PSETEX key milliseconds value 设置到期时间为毫秒
- 演示命令的使用:

6. incr与incrby与incrbyfloat命令
- 功能:
- INCR命令用于将指定键(key)的值递增1,并返回自增后的值。如果键不存在,INCR命令会先创建一个新的键,并将其初始值设置为0,然后再执行递增操作。INCR命令适用于存储为整数的值。相当于+1操作.
- INCRBY命令与INCR类似,但它允许用户指定递增的数值,而不是默认的1。INCRBY命令将键中储存的数字加上指定的增量值,此值也可以为负数。相当于+n操作
- INCRBYFLOAT命令用于递增代表存储在键中的浮点数的字符串。如果键不存在,它会先被设置为0,然后再执行递增操作。与INCR和INCRBY命令不同,INCRBYFLOAT允许对浮点数进行操作。相当于对浮点数进行加减操作.
- 基本格式:
INCR key
INCRBY key increment
INCRBYFLOAT key increment
- 演示命令的使用:

7. decr与decrby命令
-
功能:
- DECR命令将键中储存的数字值减一。如果键不存在,那么键的值会先被初始化为0,然后再执行DECR操作。
- DECRBY命令将键所储存的值减去指定的减量值。如果键不存在,那么键的值会先被初始化为0,然后再执行DECRBY操作。
-
返回值:
- 执行命令之后键的值。
- 减去指定减量值之后,键的值。
-
基本格式:
DECR key
DECRBY key decrement
- 演示命令的使用:

8. append命令
- 功能:
- APPEND命令的主要功能是在Redis中追加字符串到指定键的末尾。这意味着,如果键已经存在并且存储了一个字符串值,APPEND命令将新值追加到该值的末尾。
- 如果键不存在,APPEND命令将创建该键,并将新值设置为键的初始值,类似于使用SET命令但没有指定过期时间。
- 返回值:
- APPEND命令返回追加操作后字符串的总长度。这包括原始字符串的长度(如果键已存在)和新追加的字符串长度。
- 基本格式:
APPEND key value
- 演示命令的使用:

9. getrange和setrange命令
-
功能:
- GETRANGE命令用于获取存储在指定key中字符串的子字符串。子字符串的截取范围由start和end两个偏移量决定(包括start和end在内)。如果key不存在,命令将返回一个空字符串。
- SETRANGE命令用指定的字符串覆盖给定key所储存的字符串值,覆盖的位置从偏移量offset开始。如果key不存在,命令会先创建一个空字符串,然后再进行覆盖操作。
-
返回值:
- GETRANGE返回截取得到的子字符串。
- SETRANGE返回被修改后的字符串长度。
-
基本格式:
GETRANGE key start end
SETRANGE key offset value
- 演示命令的使用:

10. strlen命令.
-
功能:
- strlen命令返回存储在指定key中的字符串值的字节长度。这个长度是指字符串的实际字节数,对于多字节字符(如UTF-8编码的字符),其长度可能大于字符的数量。
- 如果指定的key不存在,strlen命令将返回0。
- 如果key存储的不是字符串类型的值,如列表、集合、哈希等,strlen命令将返回一个错误。
-
返回值:
- 整数回复:表示字符串的字节长度。如果key不存在,则返回0;如果key存储的不是字符串类型的值,则返回错误。
-
基本格式:
STRLEN key
- 演示命令的使用:

相关文章:
Redis中String类型的常用命令(append,getrenge,setrange等命令)
Redis----String命令 前言.常见的String存储类型. 常见命令1. set 命令2. get 命令3. mget命令与mset命令4. setnx命令5. setex与psetex命令6. incr与incrby与incrbyfloat命令7. decr与decrby命令8. append命令9. getrange和setrange命令10. strlen命令. 前言. 常见的String存…...
深度拆解:如何在Facebook上做跨境电商?
国内社交媒体正在逐渐兴盛,海外也不例外。在数字营销的新时代,Facebook已成为跨境电商不可或缺的平台之一。通过Facebook的巨大流量,卖家可以更好的触及潜在消费者,以实现销售增长。本文就深度拆解一下,卖家如何利用Fb…...
为啥数据需转换成tensor才能参与后续建模训练
将数据转换为Tensor(张量)格式用于深度学习和机器学习模型训练,主要是出于以下几个关键原因: 数值计算的效率:Tensor(由PyTorch、TensorFlow等库提供)是在GPU上执行高效的数值运算的数据结构。相…...
leetcode:380. O(1) 时间插入、删除和获取随机元素
实现RandomizedSet 类: RandomizedSet() 初始化 RandomizedSet 对象bool insert(int val) 当元素 val 不存在时,向集合中插入该项,并返回 true ;否则,返回 false 。bool remove(int val) 当元素 val 存在时࿰…...
Linux集群部署RabbitMQ
目录 一、准备三台虚拟机,配置相同 1、所有主机都需要hosts文件解析 2、所有主机安装erLang和rabbitmq 3、修改配置文件 4、导入rabbitmq 的管理界面 5、查看节点状态 6、设置erlang运行节点 7、rabitmq2和rabbitmq3重启服务 8、查看各个节点状态 二、添加…...
01DSP学习-了解DSP外设-以逆变器控制为例
(由于是回忆自己简单的DSP学习过程,所以博客看起来有些没有章法,请见谅~) 上一篇博客介绍了学习DSP需要的软件和硬件准备,以及一个DSP的工程包含了哪些东西。我的学习方法是目的导向,即我需要用什么我就学什么,并没有…...
【ArcGIS Pro实操第三期】多模式道路网构建(Multi-model road network construction)原理及实操案例
ArcGIS Pro实操第三期:多模式道路网构建原理及实操案例 1 概述1.1 原理 2 GIS实操2.1 新建文件并导入数据2.2 创建网络数据集2.3 设置连接策略(Setting up connectivity policies)2.4 添加成本(Adding cost attributes)…...
深度学习基础及技巧
机器学习中的监督学习 监督学习是通过对数据进行分析,找到数据的表达模型,对新输入的数据套用该模型做决策 主要分为训练和预测两个阶段 训练阶段:根据原始数据进行特征提取,然后使用决策树、随机森林等模型算法分析数据之间的特…...
Unity 外描边简单实现(Shader Graph)
1:原理 将物体的模型空间的位置(也就是顶点数据)放大,作为一个单独的渲染通道单独渲染,这时候模型是已经发大过的,要想看到外描边的效果,需要将正面显示的东西给去掉,显示背面渲染的…...
text2sql方法:NatSQL和DIN-SQL
NatSQL NatSQL出自2021年9月的论文《Natural SQL: Making SQL Easier to Infer from Natural Language Specifications》(github),它是一种SQL 中间表征(SQL intermediate representation(IR))方法。 NatSQL作者认为Text2SQL的关键挑战是自然语言描述和其对应的SQ…...
【新闻转载】Storm-0501:勒索软件攻击扩展到混合云环境
icrosoft发出警告,勒索软件团伙Storm-0501近期调整了攻击策略,目前正将目标瞄准混合云环境,旨在全面破坏受害者的资产。 该威胁行为者自2021年首次露面,起初作为Sabbath勒索软件行动的分支。随后,他们开始分发来自Hive…...
RabbitMQ 队列之战:Classic 和 Quorum 的性能洞察
RabbitMQ 是一个功能强大且广泛使用的消息代理,它通过处理消息的传输、存储和交付来促进分布式应用程序之间的通信。作为消息代理,RabbitMQ 充当生产者(发送消息的应用程序)和使用者(接收消息的应用程序)之…...
Spring Boot 集成 MySQL 的详细指南
在现代软件开发中,Spring Boot 因其简单易用而成为构建 Java 应用程序的热门选择。结合 MySQL这一常用关系型数据库,开发者可以快速构建出功能完善的后端服务。本文将详细介绍如何将 Spring Boot 与 MySQL 集成,提供从环境搭建到代码实现的全…...
python格式化输入输出
以下是使用 format()、f-string 和百分号 % 运算符进行 Python 数据格式化输入输出的示例代码。 1. 使用 format() 方法进行格式化 # 使用 format() 方法格式化数据并输出到文件 name "Alice" age 25 score 92.5# 格式化字符串 formatted_string "Name: {…...
音视频入门基础:FLV专题(10)——Script Tag实例分析
一、引言 在《音视频入门基础:FLV专题(9)——Script Tag简介》中对FLV文件的Script Tag进行了简介。下面用一个具体的例子来对Script Tag进行分析。 二、Script Tag的Tag header实例分析 用notepad打开《音视频入门基础:FLV专题…...
国外问卷调查匠哥已经不带人了,但是还可以交流
国外问卷调查匠哥已经不带人了,但是还可以来和匠哥交流, 为啥不带人了呢? 从今年年初开始,匠哥在带学员的过程中发现: 跟往年同样的收费,同样的教学,甚至我付出的时间精力比以前还多ÿ…...
Linux 进程的基本概念及描述
目录 0.前言 1. 什么是进程 1.1 进程的定义与特性 1.2 进程与线程的区别 2.描述进程 2.1 PCB (进程控制块) 2.2 task_struct 3.查看进程 3.1 查看进程信息 3.1.1 /proc 文件系统 3.1.2 ps 命令 3.1.2 top 和 htop 命令 3.2 获取进程标识符 3.2.1使用命令获取PID 3.2.2 使用C语言…...
【C++】透过STL源代码深度剖析vector的底层
✨ Blog’s 主页: 白乐天_ξ( ✿>◡❛) 🌈 个人Motto:他强任他强,清风拂山冈! 🔥 所属专栏:C深入学习笔记 💫 欢迎来到我的学习笔记! 参考博客:【C】透过STL源…...
ubuntu 开启root
sudo passwd root#输入以下命令来给root账户设置密码 sudo passwd -u root#启用root账户 su - root#要登录root账户 root 开启远程访问: 小心不要改到这里了:sudo nano /etc/ssh/ssh_config 而是:/etc/ssh/sshd_config sudo nano /etc/ssh…...
使用 Llama 3.1 和 Qdrant 构建多语言医疗保健聊天机器人的步骤
长话短说: 准备好深入研究: 矢量存储的复杂性以及如何利用 Qdrant 进行高效数据摄取。掌握 Qdrant 中的集合管理以获得最佳性能。释放上下文感知响应的相似性搜索的潜力。精心设计复杂的 LangChain 工作流程以增强聊天机器人的功能。将革命性的 Llama …...
SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现
摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序,以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务,提供稳定高效的数据处理与业务逻辑支持;利用 uniapp 实现跨平台前…...
css的定位(position)详解:相对定位 绝对定位 固定定位
在 CSS 中,元素的定位通过 position 属性控制,共有 5 种定位模式:static(静态定位)、relative(相对定位)、absolute(绝对定位)、fixed(固定定位)和…...
Caliper 配置文件解析:config.yaml
Caliper 是一个区块链性能基准测试工具,用于评估不同区块链平台的性能。下面我将详细解释你提供的 fisco-bcos.json 文件结构,并说明它与 config.yaml 文件的关系。 fisco-bcos.json 文件解析 这个文件是针对 FISCO-BCOS 区块链网络的 Caliper 配置文件,主要包含以下几个部…...
华硕a豆14 Air香氛版,美学与科技的馨香融合
在快节奏的现代生活中,我们渴望一个能激发创想、愉悦感官的工作与生活伙伴,它不仅是冰冷的科技工具,更能触动我们内心深处的细腻情感。正是在这样的期许下,华硕a豆14 Air香氛版翩然而至,它以一种前所未有的方式&#x…...
Mysql中select查询语句的执行过程
目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析(Parser) 2.4、执行sql 1. 预处理(Preprocessor) 2. 查询优化器(Optimizer) 3. 执行器…...
使用LangGraph和LangSmith构建多智能体人工智能系统
现在,通过组合几个较小的子智能体来创建一个强大的人工智能智能体正成为一种趋势。但这也带来了一些挑战,比如减少幻觉、管理对话流程、在测试期间留意智能体的工作方式、允许人工介入以及评估其性能。你需要进行大量的反复试验。 在这篇博客〔原作者&a…...
R 语言科研绘图第 55 期 --- 网络图-聚类
在发表科研论文的过程中,科研绘图是必不可少的,一张好看的图形会是文章很大的加分项。 为了便于使用,本系列文章介绍的所有绘图都已收录到了 sciRplot 项目中,获取方式: R 语言科研绘图模板 --- sciRplothttps://mp.…...
uniapp 小程序 学习(一)
利用Hbuilder 创建项目 运行到内置浏览器看效果 下载微信小程序 安装到Hbuilder 下载地址 :开发者工具默认安装 设置服务端口号 在Hbuilder中设置微信小程序 配置 找到运行设置,将微信开发者工具放入到Hbuilder中, 打开后出现 如下 bug 解…...
【大模型】RankRAG:基于大模型的上下文排序与检索增强生成的统一框架
文章目录 A 论文出处B 背景B.1 背景介绍B.2 问题提出B.3 创新点 C 模型结构C.1 指令微调阶段C.2 排名与生成的总和指令微调阶段C.3 RankRAG推理:检索-重排-生成 D 实验设计E 个人总结 A 论文出处 论文题目:RankRAG:Unifying Context Ranking…...
【1】跨越技术栈鸿沟:字节跳动开源TRAE AI编程IDE的实战体验
2024年初,人工智能编程工具领域发生了一次静默的变革。当字节跳动宣布退出其TRAE项目(一款融合大型语言模型能力的云端AI编程IDE)时,技术社区曾短暂叹息。然而这一退场并非终点——通过开源社区的接力,TRAE在WayToAGI等…...
