Redis中String类型的常用命令(append,getrenge,setrange等命令)

news/2024/10/4 12:49:51/

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存储类型.

  1. 基本格式的字符串
    在这里插入图片描述

  2. JSON格式的字符串.
    在这里插入图片描述

  3. 数字(浮点数/整数)
    在这里插入图片描述

  4. 二进制数据.
    如图片、视频、音频等文件的二进制表示。由于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

  • 演示命令的使用:
    在这里插入图片描述

http://www.ppmy.cn/news/1534412.html

相关文章

Tomcat监控与调优:比Tomcat Manager更加强大的Psi-Probe

这是一款 Tomcat 管理和监控工具,前身是 Lambda Probe。由于 Lambda Probe 2006不再更新,所以 PSI Probe 算是对其的一个 Fork 版本并一直更新至今。 Probe psi-probe是在相同的开源许可证(GPLV2)下分发的社区驱动的 Lambda Probe ,psi-pro…

使用 cron 来设置定时任务

使用 cron 来设置定时任务,以便定期运行这个脚本。 在 Linux 系统中设置定时任务的步骤: 1. 编辑 cron 任务 打开终端并输入以下命令以编辑 crontab 文件: crontab -e2. 设置每天 8 点运行脚本 在 crontab 文件的最后,添加以下…

【数据库差异研究】别名与表字段冲突,不同数据库在where中的处理行为

目录 ⚛️总结 ☪️1 问题描述 ☪️2 测试用例 ♋2.1 测试单层查询 ♏2.1.1 SQLITE数据库 ♐2.1.2 ORACLE数据库 ♑2.1.3 PG数据库 ♋2.2 测试嵌套查询 ♉2.2.1 SQLITE数据库 ♈2.2.2 ORACLE数据库 🔯2.2.3 PG数据库 ⚛️总结 单层查询 数据库类型别名…

Codeforces Round 121 (Div. 1) C题 Fools and Roads(LCA最近公共祖先,树上差分)

题目链接 https://codeforces.com/problemset/problem/191/C 思路 一道比较板的LCA和树上差分的题。 先预处理出这棵树的LCA,之后对于每一对 a i , b i a_{i},b_{i} ai​,bi​,在树上做差分,最后用 d f s dfs dfs处理差分数组即可。 树上…

“衣依”服装销售平台:Spring Boot技术架构剖析

2相关技术 2.1 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统,它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等,非常适…

VS Code 图形化合并工具

VS Code 图形化合并工具能够帮助你更直观地进行代码合并和解决冲突 1. VS Code 内置的 Git 合并工具 VS Code 自带的 Git 支持已经非常强大,能够在合并冲突时提供直观的图形化界面,帮助你轻松解决冲突。以下是使用内置功能的步骤: 步骤一&…

中安未来 OCR—— 开启高效驾驶证识别新时代

在数字化飞速发展的今天,光学字符识别(OCR)技术正逐渐成为各行业提高效率、降低成本的重要工具。而中安未来的 OCR 技术,以其卓越的性能和广泛的应用场景,在众多 OCR 解决方案中脱颖而出。其中,驾驶证识别功…

基于大数据技术的足球数据分析与可视化系统

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码 精品专栏:Java精选实战项目…