当前位置: 首页 > news >正文

Redis中String命令的基础操作

文章目录

  • Redis中String命令的基础操作
    • 一、引言
    • 二、String类型的基础命令
      • 1、设置与获取值
        • 1.1、SET命令
        • 1.2、GET命令
      • 2、字符串操作
        • 2.1、APPEND命令
        • 2.2、GETRANGE命令
        • 2.3、SETRANGE命令
        • 2.4、STRLEN命令
      • 3、数值操作
        • 3.1、INCR命令
        • 3.2、DECR命令
        • 3.3、INCRBY和DECRBY命令
    • 三、应用场景
      • 1、缓存
      • 2、计数器
      • 3、共享会话
    • 四、总结

Redis中String命令的基础操作

一、引言

Redis是一个高性能的key-value数据库,它以其出色的读写性能和丰富的数据结构而闻名。在Redis中,String是最基本的数据类型,可以存储字符串、整数、浮点数以及二进制数据。本文将详细介绍Redis中String命令的基础操作,帮助开发者更好地理解和使用Redis。

二、String类型的基础命令

1、设置与获取值

1.1、SET命令

SET命令用于设置指定key的值。如果key已经存在,则会更新其关联的值。命令的基本格式如下:

SET key value

可选参数包括:

  • EX seconds:设置键值对的过期时间(秒)。
  • PX milliseconds:设置键值对的过期时间(毫秒)。
  • NX:仅当键不存在时设置。
  • XX:仅当键已经存在时设置。

例如:

SET name "ning" EX 3600 NX

这个命令会设置key为name的值为ning,并且这个键值对将在1小时后过期,同时只有在name这个key不存在的情况下才会设置。

SET name "ning" PX 3600000 XX

这个命令会设置key为name的值为ning,并且这个键值对将在1小时(3600000毫秒)后过期,同时只有在name这个key已经存在的情况下才会更新值。

1.2、GET命令

GET命令用于获取指定key的值。如果key不存在,则返回nil

GET key

2、字符串操作

2.1、APPEND命令

APPEND命令用于追加值到指定key的值的末尾。如果key不存在,就创建一个新的key,并设置其值为给定的值。

APPEND key value

例如:

APPEND greeting "Hello, "

如果greeting这个key不存在,那么会创建这个key,并设置其值为"Hello, "

2.2、GETRANGE命令

GETRANGE命令用于获取key对应字符串的指定范围的子串。

GETRANGE key start end

其中startend是子串的开始和结束下标,下标支持负数,表示从字符串的末尾开始计数。

例如:

SET greeting "Hello, World!"
GETRANGE greeting 0 4

这将返回"Hello",因为从索引0开始到索引4结束的子字符串就是"Hello"

2.3、SETRANGE命令

SETRANGE命令用于设置key对应字符串的指定位置的值。

SETRANGE key offset value

offset是开始设置值的位置,value是新值。

例如:

SET greeting "Hi"
SETRANGE greeting 2 "ello"

这将把greeting这个key对应的字符串中的第2个位置开始的子串替换为"ello",因此greeting的值将变为"Hello"

2.4、STRLEN命令

STRLEN命令用于获取key对应字符串的长度。

STRLEN key

例如:

SET message "Hello, World!"
STRLEN message

这将返回13,因为"Hello, World!"的长度是13个字符。

3、数值操作

3.1、INCR命令

INCR命令用于将key对应的值增加1。如果key不存在,就将其值设置为1后增加。

INCR key

例如:

SET counter 10
INCR counter

这将返回11,并将counter的值增加到11。

3.2、DECR命令

DECR命令用于将key对应的值减少1。如果key不存在,就将其值设置为-1后减少。

DECR key

例如:

SET counter 10
DECR counter

这将返回9,并将counter的值减少到9。

3.3、INCRBY和DECRBY命令

INCRBYDECRBY命令用于将key对应的值增加或减少指定的数值。

INCRBY key increment
DECRBY key decrement

例如:

SET counter 10
INCRBY counter 5
DECRBY counter 3

这将首先将counter的值增加5到15,然后将counter的值减少3到12。

三、应用场景

1、缓存

String类型常用于缓存功能,因为它可以快速地存取数据。例如,可以缓存用户的会话信息、商品信息等。

2、计数器

String类型也常用于计数器功能。例如,可以使用INCR命令实现对网页的访问次数进行计数。

3、共享会话

在分布式系统中,可以使用String类型来存储用户的会话信息,实现会话信息的共享。

四、总结

Redis的String类型是其最基础也是最灵活的数据类型之一,支持对字符串值的多种操作。通过掌握这些基础命令,可以有效地利用Redis进行数据存储和处理。在实际应用中,String类型可以用于缓存、计数器、共享会话等多种场景,极大地提升了数据处理的效率和灵活性。


版权声明:本博客内容为原创,转载请保留原文链接及作者信息。

参考文章

  • redis中String命令的基础操作-CSDN博客
  • Redis 入门实践

相关文章:

Redis中String命令的基础操作

文章目录 Redis中String命令的基础操作一、引言二、String类型的基础命令1、设置与获取值1.1、SET命令1.2、GET命令 2、字符串操作2.1、APPEND命令2.2、GETRANGE命令2.3、SETRANGE命令2.4、STRLEN命令 3、数值操作3.1、INCR命令3.2、DECR命令3.3、INCRBY和DECRBY命令 三、应用场…...

策略模式+模版模式+工厂模式

工厂模式: (1)避免类中出现过多的组合依赖 (2)同时减少代码中出现过多的if...else if...语句 (2)将调用者跟我们的实现类解耦 模版模式: (1)功能复用 &…...

云计算平台层(PaaS)指的是什么?常见的应用场景盘点

云计算平台层(PaaS)指的是什么?云计算平台层(PaaS),全称PlatformasaService(平台即服务),是云计算服务的一种重要模式。为用户提供了一个基于云端的开发和部署环境,允许用户开发、运…...

搜索引擎简介

搜索引擎架构 整个搜索引擎分为三个系统 爬虫系统 索引系统 线上搜素服务 爬虫系统 爬虫分为两个阶段: 第一阶段:根据目标网站的列表页,爬对应的文档 URL 第二阶段:根据文档 URL,下载文档内容 触发器&#xff1…...

每天认识几个maven依赖(aislib+A1TRMI+Andromda+Annogen)

十七、aislib 1、是什么? aislib用于与人工智能(AI)相关的任务。这可能包括支持机器学习、数据分析或其他 AI 功能的工具。用于集成或扩展 AI 功能到 Java 项目中。 2、有什么用? 机器学习: 提供各种机器学习算法和…...

每日算法1(快慢指针)

通过一道题来了解快慢指针 这是一道力扣的算法题,首先来读题,是删除链表的中间元素,先来分析一下题,链表一共有三种可能,第一种是空链表,第二种链表的个数是偶数,第三种是链表的个数是奇数&…...

基于RealSense D435相机简单实现手部姿态重定向

基于Intel RealSense D435 相机和 MediaPipe的手部姿态检测,进一步简单实现手部姿态与机器人末端的重定向。 假设已经按照【基于 RealSenseD435i相机实现手部姿态检测】配置好所需的库和环境,并且有一个可以控制的机器人接口。 一、手部姿态重定向介绍 …...

Linux下搭建iSCSI共享存储-Tgt

Linux下搭建iSCSI共享存储-Tgt 在Linux上使用tgt搭建iSCSI共享存储,可以实现多个客户端同时访问共享存储。 1. 安装iSCSI Target软件包 使用下面命令安装: # centos sudo yum install scsi-target-utils sudo systemctl status tgtd# ubuntu sudo ap…...

js中正则表达式中【exec】用法深度解读

exec() 是 JavaScript 正则表达式对象(RegExp)中的一个方法,用于匹配字符串中的特定模式,并返回匹配结果。它比 test() 和 match() 更强大,因为它不仅仅返回匹配成功与否,还返回匹配的具体内容及其相关信息…...

Dockerfile的详解与案例

《Dockerfile 详解与案例》 一、Dockerfile 简介 Dockerfile 是一个用来构建 Docker 镜像的文本文件,它包含了一系列指令,用于描述如何创建一个 Docker 镜像。通过 Dockerfile,你可以定义镜像的基础环境、安装软件包、设置环境变量等操作&a…...

[spring]用MyBatis XML操作数据库 其他查询操作 数据库连接池 mysql企业开发规范

文章目录 一. MyBatis XML配置文件1. 配置链接字符串和MyBatis2. 写持久层代码方法定义Interface方法实现xml测试 3. 增删改查增:删改查 二. 开发规范(mysql)三. 其他查询操作1. 多表查询2. #{} 和 ${}(面试题)使用区别 排序功能like查询 三. 数据库连接池 一. MyBatis XML配置…...

[产品管理-33]:实验室技术与商业化产品的距离,实验室技术在商业化过程中要越过多少道“坎”?

目录 一、实验室技术 1.1 实验室研究性技术 1.2 技术发展的S曲线 技术发展S曲线的主要阶段和特点 技术发展S曲线的意义和应用 二、实验室技术商业化的路径 2.1 实验室技术与商业化产品的距离 1、技术成熟度与稳定性 - 技术自身 2、市场需求与适应性 - 技术是满足需求 …...

【有啥问啥】 Self-Play技术:强化学习中的自我进化之道

Self-Play技术:强化学习中的自我进化之道 在人工智能的快速发展中,强化学习(Reinforcement Learning, RL)已成为推动智能体自主学习与优化的关键力量。Self-Play技术,作为强化学习领域的一项前沿创新,通过…...

LCR 008. 长度最小的子数组

文章目录 1.题目2.思路3.代码 1.题目 LCR 008. 长度最小的子数组 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl1, ..., numsr-1, numsr] ,并返回其长度**。**如果不存在符合条件…...

uniApp 解决uniapp三方地图获取位置接口的请求次数限制问题,分别提供 Android 和 iOS 的实现方法(原生插件获取)

以下是使用 UniApp 编写获取位置信息的原生插件步骤,这里分别提供 Android 和 iOS 的实现方法。 一、Android 端实现 创建原生插件模块 在 UniApp 项目目录下创建一个目录,比如 nativeplugins/android/locationPlugin。使用 Android Studio 创建一个 An…...

Zabbix Agent 监控 MySQL 进程状态

1. 使用 Zabbix Agent 监控 MySQL 进程状态 这是最简单的方式,通过 Zabbix Agent 监控 MySQL 进程是否在运行。具体步骤如下: 步骤1: 确认 MySQL 进程的名称 在你的 CentOS 服务器上,运行以下命令来确认 MySQL 进程的名称: ps aux | grep mysql通常,MySQL 服务的进程名…...

【模型】感知器

感知器是最早的人工神经网络之一,也是现代深度学习的基础之一。 1. 感知器(Perceptron) 1.1 定义与功能 感知器是一种线性二分类模型,旨在模拟生物神经元的基本功能。它通过对输入特征进行加权求和,并应用激活函数来…...

HtmlCss 基础总结(基础好了才是最能打的)五

Html&Css 基础学习回顾总结 Html&Css 基础总结(基础好了才是最能打的)一 Html&Css 基础总结(基础好了才是最能打的)二 Html&Css 基础总结(基础好了才是最能打的)三 Html&Css 基础总结…...

图神经网络实战——分层自注意力网络

图神经网络实战——分层自注意力网络 0. 前言1. 分层自注意力网络1.1 模型架构1.2 节点级注意力1.3 语义级注意力1.4 预测模块 2. 构建分层自注意力网络相关链接 0. 前言 在异构图数据集上,异构图注意力网络的测试准确率为 78.39%,比之同构版本有了较大…...

基于深度学习的数字识别系统的设计与实现(python、yolov、PyQt5)

💗博主介绍💗:✌在职Java研发工程师、专注于程序设计、源码分享、技术交流、专注于Java技术领域和毕业设计✌ 温馨提示:文末有 CSDN 平台官方提供的老师 Wechat / QQ 名片 :) Java精品实战案例《700套》 2025最新毕业设计选题推荐…...

eNSP-Cloud(实现本地电脑与eNSP内设备之间通信)

说明: 想象一下,你正在用eNSP搭建一个虚拟的网络世界,里面有虚拟的路由器、交换机、电脑(PC)等等。这些设备都在你的电脑里面“运行”,它们之间可以互相通信,就像一个封闭的小王国。 但是&#…...

云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?

大家好,欢迎来到《云原生核心技术》系列的第七篇! 在上一篇,我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在,我们就像一个拥有了一块崭新数字土地的农场主,是时…...

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...

Python:操作 Excel 折叠

💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...

Day131 | 灵神 | 回溯算法 | 子集型 子集

Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣(LeetCode) 思路: 笔者写过很多次这道题了,不想写题解了,大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...

【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)

服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...

1688商品列表API与其他数据源的对接思路

将1688商品列表API与其他数据源对接时,需结合业务场景设计数据流转链路,重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点: 一、核心对接场景与目标 商品数据同步 场景:将1688商品信息…...

linux 下常用变更-8

1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行,YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID: YW3…...

优选算法第十二讲:队列 + 宽搜 优先级队列

优选算法第十二讲:队列 宽搜 && 优先级队列 1.N叉树的层序遍历2.二叉树的锯齿型层序遍历3.二叉树最大宽度4.在每个树行中找最大值5.优先级队列 -- 最后一块石头的重量6.数据流中的第K大元素7.前K个高频单词8.数据流的中位数 1.N叉树的层序遍历 2.二叉树的锯…...

零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)

本期内容并不是很难,相信大家会学的很愉快,当然对于有后端基础的朋友来说,本期内容更加容易了解,当然没有基础的也别担心,本期内容会详细解释有关内容 本期用到的软件:yakit(因为经过之前好多期…...