007、字符串_命令

news2024/9/23 11:24:32

字符串类型是Redis最基础的数据结构。首先键都是字符串类型,而且 其他几种数据结构都是在字符串类型基础上构建的,所以字符串类型能为其 他四种数据结构的学习奠定基础。
在这里插入图片描述

设置值

set key value [ex seconds] [px milliseconds] [nx|xx]
下面操作设置键为hello,值为world的键值对,返回结果为OK代表设置 成功:

127.0.0.1:6379> set hello world 
OK 

set命令有几个选项:
·ex seconds:为键设置秒级过期时间。
·px milliseconds:为键设置毫秒级过期时间。
·nx:键必须不存在,才可以设置成功,用于添加。
·xx:与nx相反,键必须存在,才可以设置成功,用于更新。

除了set选项,Redis还提供了setex和setnx(它们的作用和ex和nx选项是一样的。):

setex key seconds value 
setnx key value

当前键hello不存在:

127.0.0.1:6379> exists hello 
(integer) 0 

设置键为hello,值为world的键值对:

127.0.0.1:6379> set hello world 
OK 

因为键hello已存在,所以setnx失败,返回结果为0:

127.0.0.1:6379> setnx hello redis 
(integer) 0 

因为键hello已存在,所以set xx成功,返回结果为OK:

127.0.0.1:6379> set hello jedis xx 
OK

获取值

get key
下面操作获取键hello的值:

127.0.0.1:6379> get hello 
"world" 

如果要获取的键不存在,则返回nil(空):

127.0.0.1:6379> get not_exist_key 
(nil)

批量设置值

mset key value [key value …]
下面操作通过mset命令一次性设置4个键值对:

127.0.0.1:6379> mset a 1 b 2 c 3 d 4 
OK

批量获取值
mget key [key …]
下面操作批量获取了键a、b、c、d的值:

127.0.0.1:6379> mget a b c d 
1) "1" 
2) "2" 
3) "3" 
4) "4" 

如果有些键不存在,那么它的值为nil(空),结果是按照传入键的顺序返回:

127.0.0.1:6379> mget a b c f 
1) "1" 
2) "2" 
3) "3" 
4) (nil) 

批量操作命令可以有效提高开发效率,假如没有mget这样的命令,要执 行n次get命令需要按照图片方式来执行,具体耗时如下: n次get时间 = n次网络时间 + n次命令时间
在这里插入图片描述

使用mget命令后,要执行n次get命令操作只需要按照图2-9的方式来完 成,
具体耗时如下:n次get时间 = 1次网络时间 + n次命令时间
在这里插入图片描述

1000次get和1次get对比表

计数

incr key
incr命令用于对值做自增操作,返回结果分为三种情况:
·值不是整数,返回错误。
·值是整数,返回自增后的结果。
·键不存在,按照值为0自增,返回结果为1。
例如对一个不存在的键执行incr操作后,返回结果是1:

127.0.0.1:6379> exists key 
(integer) 0 
127.0.0.1:6379> incr key 
(integer) 1 

再次对键执行incr命令,返回结果是2:

127.0.0.1:6379> incr key 
(integer) 2 

如果值不是整数,那么会返回错误:

127.0.0.1:6379> set hello world 
OK 
127.0.0.1:6379> incr hello 
(error) ERR value is not an integer or out of range 

除了incr命令,Redis提供了decr(自减)、incrby(自增指定数字)、 decrby(自减指定数字)、incrbyfloat(自增浮点数):
decr key
incrby key increment
decrby key decrement
incrbyfloat key increment
很多存储系统和编程语言内部使用CAS机制实现计数功能,会有一定的 CPU开销,但在Redis中完全不存在这个问题,因为Redis是单线程架构,任 何命令到了Redis服务端都要顺序执行。

追加值

append key value append
可以向字符串尾部追加值,例如:

127.0.0.1:6379> get key 
"redis" 
127.0.0.1:6379> append key world 
(integer) 10 
127.0.0.1:6379> get key 
"redisworld"

字符串长度

strlen key
例如,当前值为redisworld,所以返回值为10:

127.0.0.1:6379> get key "redisworld" 
127.0.0.1:6379> strlen key (integer) 
10 

下面操作返回结果为6,因为每个中文占用3个字节:

127.0.0.1:6379> set hello "世界" 
OK 
127.0.0.1:6379> strlen hello (integer) 
6 

设置并返回原值

getset key value
getset和set一样会设置值,但是不同的是,它同时会返回键原来的值, 例如:

127.0.0.1:6379> getset hello world 
(nil) 
127.0.0.1:6379> getset hello redis 
"world" 

设置指定位置的字符

setrange key offeset value
下面操作将值由pest变为了best:

127.0.0.1:6379> set redis pest 
OK 
127.0.0.1:6379> setrange redis 0 b 
(integer) 4 
127.0.0.1:6379> get redis 
"best" 

获取部分字符串

getrange key start end start和end分别是开始和结束的偏移量,偏移量从0开始计算,例如下面 操作获取了值best的前两个字符。

127.0.0.1:6379> getrange redis 0 1 
"be"

字符串类型命令时间复杂度

在这里插入图片描述

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

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

相关文章

使用二维数组和字典去重,VBA对应转换Excel工作表行、列数据

使用二维数组和字典去重,VBA对应转换Excel工作表行、列数据(VX公众号:Excel潘谆白说VBA) 文章目录 前言一、效果如图:二、操作思路:三、代码如下:1.创建二维数组并赋值2.字典去重3.新工作表创建及赋值前言 工作或学习中,是否遇到过这样的事,手上的Excel工作表设计不…

104-1389-006马达单价1041389006可议价

104-1389-006 产品 M 马达 系列 02 2000 系列 排量 149 244.3 CM3/R [14.91 IN3/R] 安装类型 AH 标准,4 螺栓;先导直径为 82.6 [3.25] 13.59 直径为 [0.535] 直径为 106.4 [4.19] 的孔螺栓圆周 输出轴 16 直径为 32.00 [1…

【面试】PWM(脉冲宽度调制)相关问题 ——长期更新

1、PWM调节原理 答:通过改变信号的高电平和低电平的持续时间比例来控制输出信号的平均功率或电压。 2、PWM占空比定义 答:在一个脉冲周期内,高电平的时间占整个周期时间的比例。 3、PWM波形的周期和调节精度由谁决定 答:当计数…

2024年【山东省安全员C证】考试及山东省安全员C证报名考试

题库来源:安全生产模拟考试一点通公众号小程序 2024年【山东省安全员C证】考试及山东省安全员C证报名考试,包含山东省安全员C证考试答案和解析及山东省安全员C证报名考试练习。安全生产模拟考试一点通结合国家山东省安全员C证考试最新大纲及山东省安全员…

【LeetCode刷题】滑动窗口解决问题:水果成篮、找到字符串中所有字母异位词

【LeetCode刷题】Day 9 题目1:904. 水果成篮思路分析:思路1:暴力枚举哈希表思路2:窗口滑动哈希表 题目2:438. 找到字符串中所有字母异位词思路分析:思路1:暴力枚举哈希表思路2:滑动窗…

12.可视化实现

时间过的很快,不知不觉已到第十二章。经过前面教程的讲解和实践,数据接入服务的功能已初步完成。 此章节将通过可视化的实现,对设备接入进行监控,实时监听设备的接入情况及设备的在线时长。 并且可以通过订阅按钮、取消订阅按钮、查看数据按钮,对上报数据进行实时的跟踪…

掌控安全CTF-2024年5月擂台赛-WP(部分)

MISC ez_Misc 题目给了一个加密的压缩包和一个文本文档,首先我们先来看文本的内容,如下: 很容易看出,0宽隐写,用PuzzleSolver梭哈一下,发现了:Thi3 is n0t 2 hint 又在文本中发现一个特征&…

【设计模式】JAVA Design Patterns——Combinator(功能模式)

🔍目的 功能模式代表了一种以组合功能为中心的图书馆组织风格。 简单地说,有一些类型 T,一些用于构造类型 T 的“原始”值的函数,以及一些可以以各种方式组合类型 T 的值以构建更复杂的类型 T 值的“组合器” 🔍解释 真…

vue中封装组件实例

本篇是一篇组件封装。因为要经常使用,特此封装并且记录下来,以供参考。 封装组件:封装组件是指将一段具有特定功能的Vue代码(包括模板、脚本和样式)封装成一个可复用的组件。这个组件可以作为一个独立的单元&#xff…

国内信创数据库生态

国内信创数据库生态 国内信创数据库主要包括但不限于以下几种: 数据库类型与厂商: 达梦 (武汉达梦) 官网 https://www.dameng.com/DM8.html 人大金仓 (北京) 官网 https://www.kingbase.com.cn/tyxsjk/i…

VS2022编译CMake的工程

开源项目大都是用Make文件组织项目代码编译。对熟悉Window体系,一直用VS套件工作的人,还是有不小的隔阂。 好在有大神们帮助我们解决此类问题,使用CMake工具,可以自动转换工程类型。 1、解压缩代码,找到CMakeList.tx…

OrangePi AIpro初体验之图片视频检测案例真实测评

OrangePi AIpro简介 OrangePi AIpro官网 Orange Pi AI Pro 开发板是香橙派联合华为精心打造的高性能AI 开发板,其搭载了昇腾AI 处理器,可提供8TOPS INT8 的计算能力,内存提供了8GB 和16GB两种版本。可以实现图像、视频等多种数据分析与推理…

漫谈企业信息化安全 - 零信任架构

一、引言 《万物简史》的作者比尔布来森说,当他小的时候学科学的时候,好像这些科学家们都是有一种本领,把科学总是以一种让人看不懂的方式说得神乎其神,好像有藏着什么不可告人的秘密。因此,想要写一本让大家都能看得…

IT项目管理 第四、六、七章复习记录

网络图是项目活动之间逻辑关系或顺序的示意图,有两种主要格式: 箭头图(AOA)前导图/优先图(PDM) 箭头图 活动用箭头表示。节点或圆圈是活动的起点和终点。只能显示从完成到开始依赖。 前导图 活动由方框…

UE_地编教程_创建地形洞材质

个人学习笔记,不喜勿喷。侵权立删! 使用地形洞材质来遮罩地形上特定位置的可视性和碰撞。如要在山脉侧面创建进入洞穴的入口,此操作将非常有用。可使用地形材质和地形洞材质的相同材质,但注意:对比不使用不透明蒙版的…

icloud照片怎么恢复到相册?2个方法,轻松解决烦恼

在现代生活中,照片承载着我们的回忆和珍贵的时刻,而iCloud提供了便捷的云存储服务,让用户可以方便地备份和同步手机上的照片、视频等文件。 然而,有时候我们可能会不小心删除了在iCloud上的照片,或者想要将iCloud照片…

数据挖掘案例-航空公司客户价值分析

文章目录 1. 案例背景2. 分析方法与过程2.1 分析流程步骤2.2 分析过程1. 数据探索分析2. 描述性统计分析3. 分布分析1.客户基本信息分布分析2. 客户乘机信息分布分析3. 客户积分信息分布分析 4. 相关性分析 3. 数据预处理3.1 数据清洗3.2 属性约束3. 3 数据转换 4. 模型构建4. …

AI大模型探索之路-实战篇8:多轮对话与Function Calling技术应用

系列篇章💥 AI大模型探索之路-实战篇4:深入DB-GPT数据应用开发框架调研 AI大模型探索之路-实战篇5:探索Open Interpreter开放代码解释器调研 AI大模型探索之路-实战篇6:掌握Function Calling的详细流程 AI大模型探索之路-实战篇7…

一次编辑00

题目链接 一次编辑 题目描述 注意点 只能进行一次(或者零次)编辑 解答思路 首先判断两个字符串的长度,如果长度相差大于1,说明一次编辑无法通过一次编辑变换而来通过两个指针idx1和idx2指向first和second,初始idx1和idx2指向的都是同一个…

Android 系统日志(Log) JNI实现流程源码分析

1、JNI概述 Java Native Interface (JNI) 是一种编程框架,使得Java代码能够与用其他编程语言(如C和C)编写的本地代码进行交互。JNI允许Java代码调用本地代码的函数,也允许本地代码调用Java代码的函数。下面是对JNI机制的详细概述…