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

news2024/9/28 18:28:38

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.coloradmin.cn/o/2174402.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

《开题报告》基于SpringBoot框架的高校专业实习管理系统开题报告的设计与实现源码++学习文档+答辩讲解视频

开题报告 研究背景 在当今高等教育日益普及与深化的背景下,高校专业实习作为学生将理论知识转化为实践能力、提前适应社会工作环境的重要环节,其重要性不言而喻。然而,传统的高校专业实习管理模式往往存在信息不对称、流程繁琐、效率低下、…

C# Blazor Server 调用海康H5Player播放摄像头画面

目标 调用海康综合安防平台api,通过摄像头的cameraIndexCode调用【获取监控点预览取流URLv2】api,得到websocket 的url,然后在blazor server中使用htplayer.js播放摄像头实时画面。 步骤 根据摄像头名字,调用【查询监控点列表v2…

CGAL Surface_Mesh 示例

CGAL Surface_Mesh 示例 创建一个简单的网格曲面Surface_Mesh对象&#xff0c;然后通过半边结构遍历某个面的顶点以及遍历整个网格对象的所有顶点&#xff0c;最后计算网格所有顶点的3D凸包网格。 项目 sm_points.cpp #include <CGAL/Simple_cartesian.h> #include &l…

Virtio半虚拟化基本原理简介

virtio半虚拟化基本原理简介 在本文中&#xff0c;将首先了解VirtIO的基本概念及其应用原因&#xff0c;然后从技术角度深入探讨VirtIO的关键领域&#xff0c;包括VirtIO设备与驱动程序、VirtQueues和VRings。在介绍完这些基础知识后&#xff0c;将通过一个在Qemu中的VirtIO设备…

【C++】函数模板,类模板,全特化,偏特化详解

目录 1. 函数模板 1.1 函数模板概念 1.2 函数模板格式 1.3 函数模板的原理 1.4 函数模板的实例化 1.4.1 隐式实例化 1.4.2 显示实例化 1.5 模板参数的匹配原则 2. 类模板 2.1 类模板的定义格式 2.2 类模板的实例化 3. 非类型模板参数 4. 模板的特化 4.1 类模板…

AI动漫转真人终极教程!3步做出爆款内容,音乐推广号变现

从小到大&#xff0c;我们看过的动漫、玩过的游戏有很多很多 但我们会发现里面的角色或者人物都是二次元的 我就会好奇这些动漫人物在现实中会长什么样 而现在&#xff0c;我们通过AI绘画竟然就能还原出来他们现实中的样子 除了动漫角色和游戏人物&#xff0c;古代的画像、…

flink设置保存点和恢复保存点

增加了hdfs package com.qyt;import org.apache.flink.api.java.functions.KeySelector; import org.apache.flink.api.java.tuple.Tuple2;import org.apache.flink.runtime.state.storage.FileSystemCheckpointStorage;import org.apache.flink.streaming.api.datastream.Dat…

C++友元和运算符重载

目录 一. 友元 friend 1.1 概念 1.2 友元函数 1.3 友元类 1.4 友元成员函数 二. 运算符重载 2.1 概念 2.2成员函数运算符重载 2.3 成员函数运算符重载 2.4 特殊运算符重载 2.4.1 赋值运算符重载 2.4.2 类型转换运算符重载 2.5 注意事项 三、std::string 字符串类…

什么是期望最大化算法?

一、期望最大化算法 期望最大化&#xff08;EM&#xff09;算法是一种在统计学和机器学习中广泛使用的迭代方法&#xff0c;它特别适用于含有隐变量的概率模型参数估计问题。在统计学和机器学习中&#xff0c;有很多不同的模型&#xff0c;例如高斯混合模型&#xff08;GMM&…

NSSCTF [HNCTF 2022 Week1]超级签到

查看主函数 看到遍历 Str2&#xff0c;如果字符为 o&#xff0c;则替换为 0 int __fastcall main_0(int argc, const char **argv, const char **envp) {char *v3; // 指向 v7 的指针__int64 i; // 循环计数器size_t v5; // 存储 Str2 的长度char v7; // 存储输入字符int j; …

如何快速自定义一个Spring Boot Starter!!

目录 引言&#xff1a; 一. 我们先创建一个starter模块 二. 创建一个自动配置类 三. 测试启动 引言&#xff1a; 在我们项目中&#xff0c;可能经常用到别人的第三方依赖&#xff0c;又是引入依赖&#xff0c;又要自定义配置&#xff0c;非常繁琐&#xff0c;当我们另一个项…

mysql8.0安装后没有my.ini

今天安装mysql后想改一下配置文件看了一下安装路径 C:\Program Files\MySQL\MySQL Server 8.0 发现根本没有这个文件查看隐藏文件也没用查了之后才知道换地方了和原来的5.7不一样 新地址是C:\ProgramData\MySQL\MySQL Server 8.0 文件也是隐藏的记得改一下配置

【Redis 源码】7RDB持久化

1 功能说明 RDB (Redis Database Backup) 是 Redis 的一种持久化方式&#xff0c;它通过将某一时刻的内存快照&#xff08;snapshot&#xff09;以二进制格式保存到磁盘上。这种持久化方式提供了高性能和紧凑的数据存储&#xff0c;但相对于 AOF (Append Only File) 来说&…

充电桩安装-理想充电桩如何安装全流程-从准备到材料准备全流程

充电桩安装 Willya 2023年3月6日 新能源车出行成本低&#xff0c;那肯定是要在便利的条件下&#xff0c;得有自己的充电桩才行&#xff0c;实在安装不了自己的充电桩&#xff0c;那也要保证居住周边有充足的充电站&#xff0c;这样才能保证用车的便捷。 理想汽车充电桩安装一般…

智能化转型新篇章:EasyCVR引领大型连锁超市视频监控进入AI时代

随着科技的飞速发展&#xff0c;视频监控系统在各行各业中的应用日益广泛&#xff0c;大型连锁超市作为人员密集、商品繁多的公共场所&#xff0c;其安全监控显得尤为重要。为了提升超市的安全管理水平、减少损失、保障顾客和员工的安全&#xff0c;引入高效、全面的视频监控系…

胤娲科技:AI界的超级充电宝——忆阻器如何让LLM告别电量焦虑

当AI遇上“记忆橡皮擦”&#xff0c;电量不再是问题&#xff01; 嘿&#xff0c;朋友们&#xff0c;你们是否曾经因为手机电量不足而焦虑得像个无头苍蝇&#xff1f;想象一下&#xff0c;如果这种“电量焦虑”也蔓延到了AI界&#xff0c; 特别是那些聪明绝顶但“耗电如喝水”的…

逃离陷阱:如何巧妙避免机器学习中的过拟合与欠拟合

逃离陷阱&#xff1a;如何巧妙避免机器学习中的过拟合与欠拟合 前言过拟合&#xff1a;定义与识别定义表现原因示例&#xff1a;决策树模型的过拟合 欠拟合&#xff1a;定义与识别定义表现原因示例&#xff1a;线性回归模型的欠拟合 避免过拟合的策略减少模型复杂度使用正则化…

基于nodejs+vue的校园二手物品交易系统

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

SSM超市售卖管理系统-计算机毕业设计源码23976

目 录 摘要 Abstract 1 绪论 1.1研究的背景和意义 1.2研究内容 1.3论文结构与章节安排 2 开发技术介绍 2.1 SSM框架 2.2 MySQL数据库 3 超市售卖管理系统系统分析 3.1 可行性分析 3.2 系统流程分析 3.2.1 数据流程 3.3.2 业务流程 3.3 系统功能分析 3.3.1 功…

低代码可视化-UniApp二维码可视化-代码生成器

市面上提供了各种各样的二维码组件&#xff0c;做了一简单的uniapp二维码组件&#xff0c;二维码实现依赖davidshimjs/qrcodejs。 组件特点 跨浏览器支持&#xff1a;利用Canvas元素实现二维码的跨浏览器兼容性&#xff0c;兼容微信小程序、h5、app。 无依赖性&#xff1a;QR…