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"
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)