Resdis中关于字符串类型的基础命令

本文主要详解key-value中vaule为字符串类型的情况,value属于其他的数据类型不适应;有几个命令是通用命令

目录

1.set和get

2.keys 

3.exists

4.del 

5.expire

6.ttl

7.type

8.object encoding key

9.加减操作

10.字符串操作

11.命令小结

1.set和get

背景:redis存储数据是以键值对的形式,所以这两个命令就是最基础核心的两个,分别是存储键值对和取出键值对

主要学习下面几个命令:

set、get、mset、mget、setnx、setex、psetex

(1)set  语法:set key value,key和value默认为字符串,加或者不加单双引号都可以

存储了key为key1,value为value1的键值对,下面我们多存储几个,方便后的get命令。

(2)get  语法:get key,如果存在key,返回对应value值,否则返回nil

无论value在存储的时候以什么形式,返回的都是字符串形式,而且redis的命令是不区分大小写的

注意事项:get命令只能支持字符串类型的value,如果是其他类型,需要使用其他命令 

(3)进阶set

语法:setkey value [expiration EX seconds|PX milliseconds] [NX|XX]

含义:[]是可选项、里面的内容是二选一,下面介绍几种搭配

  • set key value  ex seconds

含义:设置key-value并且设置存活时间,单位秒s

  • set key value px milliseconds

含义:设置key-value并且设置存活时间,单位豪秒ms

  •  set key value nx

含义:如果key不存在,则创建;如果key存在,则不设置,返回nil(和默认值一样)

  •  set key value xx

含义:如果key存在,才设置,类似更新key的value;如果key不存在,则不会设置成功,返回nil

  • set key value ex seconds nx

含义:设置存活时间并且当key不存在时才会创建成功

(4)setnx

语法:setnx key value

含义:key不存在才能设置成功

(5)setex

语法:setex key seconds value

含义:设置key-value并且指定过期时间,单位秒s

(6)psetex

语法:psetex key milliseconds value 

含义:设置key-value并且指定过期时间,单位毫秒ms

 

(7)mset

语法:mset key1 value1 key2 value2

含义:同时设置多个key-value

时间复杂度:O(N),N为key的数量

(8)mget

语法:mget key1 key2 key3

含义:同时获取多个key的value

时间复杂度:O(N),N为key的数量

2.keys 

这是redis的一个全局命令。key固定是字符串,但是value可以是很多种数据类型,所以说全局命令就是可以随便搭配一个数据结构来使用。

语法:keys  通配符key,用来查询匹配的key值,也就是用来查询key的,不是查询value

这里的通配符有五种

先查看所有的key

(1)?

含义:任意匹配一个字符。也就是这个符号可以替换成任意符号

(2)*

含义:可以匹配0个或者多个任意字符

(3)[abcde]

含义:只能匹配[]中的字符,比如这里的abcde字符,其他字符不能匹配

(4)[^e]

含义:排除e字符,匹配除了e字符外的所有字符

(5)[a-b]

含义:可以匹配区间[a,b]的所有字符,其他字符不行

这些命令就类似mysql中的模糊查询,和select *一样,都需要谨慎使用,特别是keys *。

3.exists

语法:exists key1 key2 ……

含义:判断key值是否存在,可以同时判断多个。如果存在,返回存在的个数,否则返回0

(1)一次判断一个

(2)判断多个

  • 一般推荐一次查询多个,分开查询会消耗更多的网络资源,成本和时间也更加多。
  • 时间复杂度:O(m),m为查询的个数
4.del 

语法:del key1 key2 ……

含义:是delete的缩写,删除一个或者多个key,返回成功删除的个数

(1)一次删除一个

(2)一次删除多个

(3)这个操作在redis中不是应该很危险的操作

(4)时间复杂度:O(m),m为删除key的个数

5.expire

语法:expire key encods

含义:给指定的key设置过期时间,key存活时间超过就会自动被删除,默认单位是秒

(1)设置时间

(2)到达过期时间后

如果key过期后就会被删除

6.ttl

语法:ttl key

含义:查看key剩余的时间;如果key不存在,返回-2,key没有关联时间,发挥-1,其他则是返回剩余时间

(1)返回剩余时间

(2)不存在的key

(3)key没被设置过期时间

7.type

语法:type key

含义:返回key对应value的数据类型

(1)返回String

8.object encoding key

语法:object encoding key

含义:查看key对应的value的实际编码方式

(1)用法

9.加减操作

下面介绍的n为整数,时间复杂度都为1

(1)incr

含义:设置key对应的value+1,这里的value必须是整数

返回值:+1结果后的值

(2)incrby

含义:设置key对应的value+n

(3)decr

含义:设置key对应的value-1

(4)decrby

含义:设置key对应的value-n

(5)decrbyfloat

含义:设置key对应的value+n,n可以是任意数,包括浮点数和整数

10.字符串操作

(6)append

含义:在value后面拼接字符串,返回值为拼接好的字符串长度,单位字节

语法:append key value

(7)getrange

含义:截取范围区间的字符串,,范围为前闭后闭。返回也可以为负数,表示倒数第几个

语法:getrange key start end

(8)setrange

含义:修改区间范围内的字符串,从起始点开始修改,修改的内容为value,返回修改后的字符串长度

语法:setrange key offset value

(9)strlen

含义:求字符串长度,单位字节

语法:strlen key

11.命令小结

 

(1)通用命令小结

命令含义时间复杂度
keys *查看所有的keyO(m)
exists key1 key2 …返回key存在的个数O(m)
del key1 key2 …删除keyO(m)
expire key encods给对应key设置过期时间O(1)
ttl key获取key剩余过期时间O(1)
type key获取key对应value的数据类型O(1)
object encoding key查看key对应value的实际编码方式O(1)

(2)字符串类型命令小结

下面的命令操作的value都是为字符串类型,否则会报错

命令含义时间复杂度
set key value [key2 value]设置单个key-value
O(1)
get key获取key对应的value
O(1)
mset key value [key2 value]同时设置多个key-value
O(m)
mget同时获取多个key的value
O(m)
setnx设置key-value,key不存在才能设置成功
O(1)
setex设置kv并设置过期时间,单位秒/s
O(1)
psetex设置kv并设置过期时间,单位豪秒/ms
O(1)
incr key指定kye的value+1
O(1)
incrby key n指定kye的value+n
O(1)
decr key指定kye的value-1
O(1)
decrby key n指定kye的value-n
O(1)
incrbyfloat key n指定kye的value+n,n为有理数
O(1)
append key vlaue指定key的值追加value
O(1)
getrange key start end获取指定key的值的范围值
O(1)
setrange key offset value修改指定key的值的范围值
O(1)
strlen key获取指定key的长度
O(1) 

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

代码小娥

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

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

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

打赏作者

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

抵扣说明:

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

余额充值