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
其中start
和end
是子串的开始和结束下标,下标支持负数,表示从字符串的末尾开始计数。
例如:
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命令
INCRBY
和DECRBY
命令用于将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,下载文档内容 触发器࿱…...
每天认识几个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最新毕业设计选题推荐…...

wordpress后台更新后 前端没变化的解决方法
使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…...
React 第五十五节 Router 中 useAsyncError的使用详解
前言 useAsyncError 是 React Router v6.4 引入的一个钩子,用于处理异步操作(如数据加载)中的错误。下面我将详细解释其用途并提供代码示例。 一、useAsyncError 用途 处理异步错误:捕获在 loader 或 action 中发生的异步错误替…...

React第五十七节 Router中RouterProvider使用详解及注意事项
前言 在 React Router v6.4 中,RouterProvider 是一个核心组件,用于提供基于数据路由(data routers)的新型路由方案。 它替代了传统的 <BrowserRouter>,支持更强大的数据加载和操作功能(如 loader 和…...
前端倒计时误差!
提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...

el-switch文字内置
el-switch文字内置 效果 vue <div style"color:#ffffff;font-size:14px;float:left;margin-bottom:5px;margin-right:5px;">自动加载</div> <el-switch v-model"value" active-color"#3E99FB" inactive-color"#DCDFE6"…...

Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具
文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...

Psychopy音频的使用
Psychopy音频的使用 本文主要解决以下问题: 指定音频引擎与设备;播放音频文件 本文所使用的环境: Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...
今日科技热点速览
🔥 今日科技热点速览 🎮 任天堂Switch 2 正式发售 任天堂新一代游戏主机 Switch 2 今日正式上线发售,主打更强图形性能与沉浸式体验,支持多模态交互,受到全球玩家热捧 。 🤖 人工智能持续突破 DeepSeek-R1&…...
基于Java Swing的电子通讯录设计与实现:附系统托盘功能代码详解
JAVASQL电子通讯录带系统托盘 一、系统概述 本电子通讯录系统采用Java Swing开发桌面应用,结合SQLite数据库实现联系人管理功能,并集成系统托盘功能提升用户体验。系统支持联系人的增删改查、分组管理、搜索过滤等功能,同时可以最小化到系统…...

AirSim/Cosys-AirSim 游戏开发(四)外部固定位置监控相机
这个博客介绍了如何通过 settings.json 文件添加一个无人机外的 固定位置监控相机,因为在使用过程中发现 Airsim 对外部监控相机的描述模糊,而 Cosys-Airsim 在官方文档中没有提供外部监控相机设置,最后在源码示例中找到了,所以感…...