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

  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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/886280.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Kubernetes】常见面试题汇总(四十五)

目录 102.使用 Kubernetes 时可以采取的最佳安全措施是什么? 103.什么是联合集群? 特别说明: 题目 1-68 属于【Kubernetes】的常规概念题,即 “ 汇总(一)~(二十二)” 。 题目…

高中教辅汇总【35GB】

文章目录 一、资源概览二、资源亮点三、获取方式 一、资源概览 这份教辅资源汇总,精心搜集了高中各学科的海量教辅资料,总容量高达35GB,覆盖了语文、数学、英语、物理、化学、生物、历史、地理、政治等所有必修及选修科目。从基础知识点到难…

插槽slot在vue中的使用

介绍 在 Vue.js 中,插槽(slot)是一种用于实现组件内容分发的功能。通过插槽,可以让父组件在使用子组件时自定义子组件内部的内容。插槽提供了一种灵活的方式来组合和复用组件。 项目中有很多地方需要调用一个组件,比…

【H2O2|全栈】关于CSS(9)CSS3扩充了哪些新鲜的东西?(二)

目录 CSS3入门 前言 准备工作 伪元素补充 :before :after 文本溢出属性 转换效果 预告和回顾 后话 CSS3入门 前言 本系列博客主要介绍CSS相关的知识点。 这一期主要介绍以下几个CSS3的知识点: 伪元素补充文本溢出属性转换 没有基础的朋友&#xff…

【Docker】配置文件

问题 学习Docker期间会涉及到docker的很多配置文件,可能会涉及到的会有: /usr/lib/systemd/system/docker.service 【docker用于被systemd管理的配置文件】 /etc/systemd/system/docker.service.d【覆盖配置文件的存放处】 /etc/systemd/system/mul…

网页前端开发之Javascript入门篇(4/9):循环控制

Javascript循环控制 什么是循环控制? 答:其概念跟 Python教程 介绍的一样,只是语法上有所变化。 参考流程图如下: 其对应语法: var i 0; // 设置起始值 var minutes 15; // 设置结束值(15分钟…

VMware Aria Operations for Networks 6.13 发布,新增功能概览

VMware Aria Operations for Networks 6.13 - 网络和应用监控工具 请访问原文链接:https://sysin.org/blog/vmware-aria-operations-for-networks/,查看最新版。原创作品,转载请保留出处。 作者主页:sysin.org VMware Aria Oper…

Golang | Leetcode Golang题解之第440题字典序的第K小数字

题目&#xff1a; 题解&#xff1a; func getSteps(cur, n int) (steps int) {first, last : cur, curfor first < n {steps min(last, n) - first 1first * 10last last*10 9}return }func findKthNumber(n, k int) int {cur : 1k--for k > 0 {steps : getSteps(cu…

Llama 系列简介与 Llama3 预训练模型推理

1. Llama 系列简介 1.1 Llama1 由 Meta AI 发布&#xff0c;包含 7B、13B、33B 和 65B 四种参数规模的开源基座语言模型 数据集&#xff1a;模型训练数据集使用的都是开源的数据集&#xff0c;总共 1.4T token 模型结构&#xff1a;原始的 Transformer 由编码器&#xff08…

C++入门基础 (超详解)

文章目录 前言1. C关键字2. C的第一个程序3. 命名空间3.1 namespace的定义3.2 命名空间的嵌套3.3 命名空间使用3.4 查找优先级总结 4. C输入和输出4.1 标准输入输出 (iostream库)4.2 文件输入输出 (fstream库)4.3 字符串流 (sstream库)4.4 C格式化输出4.5 std::endl和\n的区别 …

56 门控循环单元(GRU)_by《李沐:动手学深度学习v2》pytorch版

系列文章目录 文章目录 系列文章目录门控循环单元&#xff08;GRU&#xff09;门控隐状态重置门和更新门候选隐状态隐状态 从零开始实现初始化模型参数定义模型训练与预测 简洁实现小结练习 门控循环单元&#xff08;GRU&#xff09; 之前我们讨论了如何在循环神经网络中计算梯…

生信初学者教程(二十三):REF+SVM筛选候选标记物

文章目录 介绍加载R包导入数据准备数据机器学习特征筛选数据分割基础模型Recursive Feature Elimination特征筛选调参最终分类模型测试集验证标记基因输出结果总结介绍 采用了REF(Recursive Feature Elimination) 结合 SVM(Support Vector Machine) 的方法,对差异基因(参…

探索未来:hbmqtt,Python中的AI驱动MQTT

文章目录 **探索未来&#xff1a;hbmqtt&#xff0c;Python中的AI驱动MQTT**1. 背景介绍2. hbmqtt是什么&#xff1f;3. 安装hbmqtt4. 简单的库函数使用方法4.1 连接到MQTT服务器4.2 发布消息4.3 订阅主题4.4 接收消息4.5 断开连接 5. 应用场景示例5.1 智能家居控制5.2 环境监测…

react-问卷星项目(4)

项目实战 使用CSS 尽量不要使用内联CSS 内联style代码多&#xff0c;性能差&#xff0c;扩展性差外链css文件可复用代码&#xff0c;可单独缓存文件 元素内联style 和HTMl元素的style相似必须用JS写法&#xff0c;不能是字符串&#xff0c;里面必须是对象 <span style…

实现epoll事件的两种模型(ET/LT)、epoll反应堆模型

前置知识&#xff1a; 多进程/线程并发服务器、多路I/O转接服务器的简单实现-CSDN博客 1. 事件模型 EPOLL事件有两种模型&#xff1a; Edge Triggered (ET) 边缘触发只有数据到来才触发&#xff0c;不管缓存区中是否还有数据。Level Triggered (LT) 水平触发只要有数据都会…

C++基类构造器的自动调用

C基类构造器的自动调用 虽然基类的构造器和解构器不会被派生类继承&#xff0c;但它们会被派生类的构造器和解构器自动调用&#xff0c;今天我们用代码实证一下。 验证代码 源代码&#xff0c;仔细看注释内容&#xff1a; D:\YcjWork\CppTour>vim c2004.cpp #include &l…

Ubuntu下安装Zookeeper集群

Zookeeper集群是一个开源的分布式协调服务系统&#xff0c;它由Apache软件基金会维护&#xff0c;旨在为分布式应用提供一致性和可靠性的服务。 在Zookeeper集群中&#xff0c;服务器可以扮演三种角色——领导者&#xff08;Leader&#xff09;、跟随者&#xff08;Follower&a…

如何使用ssm实现基于HTML的中国传统面食介绍网站的搭建+vue

TOC ssm758基于HTML的中国传统面食介绍网站的搭建vue 第1章 绪论 1.1选题动因 当前的网络技术&#xff0c;软件技术等都具备成熟的理论基础&#xff0c;市场上也出现各种技术开发的软件&#xff0c;这些软件都被用于各个领域&#xff0c;包括生活和工作的领域。随着电脑和笔…

Python和C++混淆矩阵地理学医学物理学视觉语言模型和算法模型评估工具

&#x1f3af;要点 优化损失函数评估指标海岸线检测算法评估遥感视觉表征和文本增强乳腺癌预测模型算法液体中闪烁光和切伦科夫光分离多标签分类任务性能评估有向无环图、多路径标记和非强制叶节点预测二元分类评估特征归因可信性评估马修斯相关系数对比其他准确度 Python桑…

数据集-目标检测系列- 螃蟹 检测数据集 crab >> DataBall

数据集-目标检测系列- 螃蟹 检测数据集 crab >> DataBall 数据集-目标检测系列- 螃蟹 检测数据集 crab >> DataBall 数据量&#xff1a;3k 想要进一步了解&#xff0c;请联系。 DataBall 助力快速掌握数据集的信息和使用方式&#xff0c;会员享有 百种数据集&a…