redis学习——String数据类型

本文详细介绍了Redis中的String数据类型,包括基础命令如SET、GET、GETSET、INCR、DECR等,以及相关操作如设置存活时间、原子性操作、追加值、获取长度等。同时,讨论了String类型的实战应用,如缓存、计数器和session共享。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Redis五种数据结构如下:

在这里插入图片描述
对redis来说,所有的key(键)都是字符串。

String数据类型

一、概述

字符串类型是Redis中最为基础的数据存储类型,它在Redis中是二进制安全的,这便意味着该类型可以接受任何格式的数据,如JPEG图像数据或Json对象描述信息等。在Redis中字符串类型的Value最多可以容纳的数据长度是512M

二、相关命令

1、赋值命令

命令原型SET key value

时间复杂度:O(1)

命令描述:设定该Key持有指定的字符串Value,如果该Key已经存在,则覆盖其原有值。

返回值:总是返回"OK"。

2、取值命令

命令原型GET key

时间复杂度:O(1)

命令描述:获取指定Key的Value。如果与该Key关联的Value不是string类型,Redis将返回错误信息,因为GET命令只能用于获取string Value。

返回值:与该Key相关的Value,如果该Key不存在,返回nil。

3、GETSET命令

命令原型GETSET key value

时间复杂度:O(1)

命令描述:原子性的设置该Key为指定的Value,同时返回该Key的原有值。和GET命令一样,该命令也只能处理string Value,否则Redis将给出相关的错误信息。

返回值返回该Key的原有值,如果该Key之前并不存在,则返回nil。

4、递增数字

命令原型INCR key

时间复杂度:O(1)

命令描述:将指定Key的Value原子性的递增1。如果该Key不存在,其初始值为0,在incr之后其值为1。如果Value的值不能转换为整型值,如Hello,该操作将执行失败并返回相应的错误信息。注意:该操作的取值范围是64位有符号整型。

返回值:递增后的Value值。

5、递减数字

命令原型DECR key

时间复杂度:O(1)

命令描述:将指定Key的Value原子性的递减1。如果该Key不存在,其初始值为0,在decr之后其值为-1。如果Value的值不能转换为整型值,如Hello,该操作将执行失败并返回相应的错误信息。注意:该操作的取值范围是64位有符号整型。

返回值:递增后的Value值。

6、增加指定的整数

命令原型INCRBY key increment

时间复杂度:O(1)

命令描述:将指定Key的Value原子性的增加increment。如果该Key不存在,其初始值为0,在incrby之后其值为increment。如果Value的值不能转换为整型值,如Hello,该操作将执行失败并返回相应的错误信息。注意:该操作的取值范围是64位有符号整型。

返回值:增加后的value值。

7、减少指定的整数

命令原型DECRBY key decrement

时间复杂度:O(1)

命令描述:将指定Key的Value原子性的减少decrement。如果该Key不存在,其初始值为0,在decrby之后其值为-decrement。如果Value的值不能转换为整型值,如Hello,该操作将执行失败并返回相应的错误信息。注意:该操作的取值范围是64位有符号整型。

返回值:减少后的value值。

8、SETEX命令

命令原型SETEX key seconds value

时间复杂度:O(1)

命令描述:原子性完成两个操作,一是设置该Key的值为指定字符串,同时设置该Key在Redis服务器中的存活时间(秒数)。该命令主要应用于Redis被当做Cache服务器使用时。

返回值

9、SETNX命令

命令原型SETNX key value

时间复杂度:O(1)

命令描述:如果指定的Key不存在,则设定该Key持有指定字符串Value,此时其效果等价于SET命令。相反,如果该Key已经存在,该命令将不做任何操作并返回。

返回值:1表示设置成功,否则0。

10、向尾部追加值

命令原型APPEND key value

时间复杂度:O(1)

命令描述:如果该Key已经存在,APPEND命令将参数Value的数据追加到已存在Value的末尾。如果该Key不存在,APPEND命令将会创建一个新的Key/Value。

返回值:追加后Value的长度。

11、获取字符串长度

命令原型STRLEN

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

胡小冰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值