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 …...
量子电路仿真加速器QEA的FPGA实现与优化
1. 量子电路仿真加速器的核心挑战与现状量子计算正在重塑我们对计算能力的认知边界。作为一名长期从事高性能计算与量子仿真研究的工程师,我见证了量子仿真技术从理论探索到工程实现的完整历程。量子电路仿真作为验证量子算法正确性的关键技术,其核心痛点…...
GBase 8c 在过程里记流水时要小心自治事务边界
GBase 8c 在过程里记流水时要小心自治事务边界 我最近看 GBase 8c 自治事务资料时,觉得它特别适合拿来讨论一个开发现场经常遇到的问题:业务过程失败了,排障流水也跟着回滚了。等真正去查问题时,只剩应用日志里几行模糊报错&#…...
开源清理工具OpenClearn:透明可控的数字垃圾管理方案
1. 项目概述:一个开源的“清洁工”如何重塑你的数字生活如果你和我一样,是个在数字世界里摸爬滚打了十几年的老鸟,那你电脑里肯定也有一堆“数字垃圾”。这些垃圾不是指那些过时的文件,而是那些你明明已经删除了,但操作…...
御坂翻译器:5分钟快速上手,让Galgame翻译不再困扰你
御坂翻译器:5分钟快速上手,让Galgame翻译不再困扰你 【免费下载链接】MisakaTranslator 御坂翻译器—Galgame/文字游戏/漫画多语种实时机翻工具 项目地址: https://gitcode.com/gh_mirrors/mi/MisakaTranslator 你是否曾因语言障碍而错过精彩的Ga…...
Taotoken API Key的精细化管理与审计日志功能实践
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 Taotoken API Key的精细化管理与审计日志功能实践 对于需要将大模型能力集成到业务流程中的团队而言,API Key的管理与安…...
Boss-Key终极指南:一键隐藏窗口,打造高效安全的办公环境
Boss-Key终极指南:一键隐藏窗口,打造高效安全的办公环境 【免费下载链接】Boss-Key 老板来了?快用Boss-Key老板键一键隐藏静音当前窗口!上班摸鱼必备神器 项目地址: https://gitcode.com/gh_mirrors/bo/Boss-Key 在数字化办…...
【职场】职场上,从不发脾气的人,最值得警惕
职场上,从不发脾气的人,最值得警惕“真正危险的人,从来不是那个拍桌子的人。而是那个,永远在微笑的人。”一、你身边有没有这种人 开会的时候,无论发生什么,他都面带微笑。 被否定了,点头&#…...
Notemd Pro:基于Web技术栈的开源个人知识管理应用深度解析
1. 项目概述:一个面向未来的笔记应用如果你和我一样,常年混迹在程序员、产品经理和知识工作者的圈子里,那你一定对“笔记软件”这个赛道又爱又恨。爱的是,它确实是我们整理思路、记录灵感、构建知识体系的刚需;恨的是&…...
LVGL字体优化实战:如何将中文字库放到外部SPI Flash并动态加载(节省内部RAM)
LVGL外部SPI Flash字库优化实战:RAM节省与性能平衡的艺术 在嵌入式UI开发中,中文显示一直是资源受限设备的痛点。当STM32F4系列芯片遇到需要显示多语言菜单的智能家居面板,或是工业HMI设备需要展示复杂参数时,传统的内部字库方案往…...
NOMA实战:从叠加编码到SIC解码的链路级仿真解析
1. NOMA技术基础与核心原理 NOMA(非正交多址接入)是5G通信中的一项关键技术,它彻底改变了传统正交多址技术(如OFDMA)的资源分配方式。我第一次接触NOMA时,最让我惊讶的是它竟然主动引入干扰来提升频谱效率—…...
