Redis值的五大数据类型——String类型

Redis的String类型是二进制安全的,可用于存储各种数据,如图片或序列化对象。字符串底层为动态字符数组,支持扩容和修改。本文介绍了String类型的特性,包括最大容量限制,并详细列举了set、get、mset、mget、setnx、setex、append、strlen等常用命令,以及对数字字符串进行原子递增和递减的相关操作。

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

String类型

Redis的String类型是二进制安全的,意味着String类型可以包含任何数据。比如图片或者序列化的对象。Redis的String类型的底层是动态字符数组,是可以扩容,可以修改的字符串,类似于Java的ArrayList,采用分配冗余空间的方式来减少内存的频繁分配。
在这里插入图片描述
如图所示,字符串实际分配的空间capacity大于实际的占用的空间len。要注意Redis的String类型最大占用512M的空间。

常用命令

set:设置一个字符串

127.0.0.1:6379> set name "jack"
OK

get:获取一个字符串

127.0.0.1:6379> get name
"jack"

mset:设置多个字符串

127.0.0.1:6379> mset username "admin" password "admin"
OK
127.0.0.1:6379> get username
"admin"
127.0.0.1:6379> get password
"admin"

mget:获取多个字符串

127.0.0.1:6379> mget username password
1) "admin"
2) "admin"

setnx:键不存在时,设置字符串,键存在时操作失败

127.0.0.1:6379> setnx age "20"
(integer) 1		# 键不存在,操作成功
127.0.0.1:6379> setnx age "30"
(integer) 0		# 键已存在,操作失败

setex:设置一个字符串,并设置过期时间

127.0.0.1:6379> setex code 60 "abcd" 		
OK				# 添加一个验证码的键值对,60秒过期

append:追加字符串

127.0.0.1:6379> append name "rose"
(integer) 8
127.0.0.1:6379> get name
"lucyrose"

strlen:获取字符串的长度

127.0.0.1:6379> get name
"lucyrose"
127.0.0.1:6379> strlen name
(integer) 8

下面的命令只能对数字字符串的操作,不是数字字符串时操作失败

incr:原子递增

127.0.0.1:6379> get age
"20"
127.0.0.1:6379> incr age
(integer) 21
127.0.0.1:6379> get age
"21"

decr:原子递减

127.0.0.1:6379> get age
"21"
127.0.0.1:6379> decr age
(integer) 20
127.0.0.1:6379> get age
"20"

incrby:原子递增指定步长

127.0.0.1:6379> get age
"20"
127.0.0.1:6379> incrby age 10
(integer) 30
127.0.0.1:6379> get age
"30"

decrby:原子递减指定步长

127.0.0.1:6379> get age
"30"
127.0.0.1:6379> decrby age 10
(integer) 20
127.0.0.1:6379> get age
"20"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值