使用教程(二):字符串数据类型

使用教程(二):字符串数据类型
1。总结:

在Redis的字符串类型是最基本的数据存储类型。它是二进制安全的使用,这意味着这种类型可以接受任何格式的数据,如JPEG图像数据或JSON对象的描述信息。在Redis,该字符串类型的值的最大长度可以512m。

两。相关命令列表:
命令的原型
时间复杂度
命令描述
返回值
appendkeyvalue
o(1)
如果键已经存在,附加命令将参数值的数据对现有价值的结束。如果该键不存在,附加命令将创建一个新的键/值。
附加值的长度。
decrkey
o(1)
指定的键的值原子数减少了1。如果该键不存在,它的初始值为0,和值为1月后。如果值无法转换为整数,如你好,失败并返回相应的错误信息的操作。注:此操作的值的范围是一个64位有符号整数。
降后值。
incrkey
o(1)
指定的键的值的原子是按1递增。如果该键不存在,它的初始值为0,值为1后增加价值。如果不能转换为整数,如你好,失败并返回相应的错误信息的操作。注意:对这个操作的值的范围是一个64位有符号整数。
增值后的价值。
decrbykey减量
o(1)
指定的键的值原子减少减量。如果键不存在,它的初始值为0,和值是减量后decrby。如果该值不能转换为整数,如你好,失败并返回相应的错误信息的操作。注:此操作的值的范围是一个64位有符号整数。
减少还原后的值。
incrbykey增量
o(1)
指定的键的值的原子增加增量。如果键不存在,它的初始值为0,和值增量后incrby。如果值无法转换为整数,如你好,失败并返回相应的错误信息的操作。注意:对这个操作的值的范围是一个64位有符号整数。
增加价值。
getkey
o(1)
获得指定键的值。如果该键所关联的值不是一个字符串类型,Redis将返回错误消息,因为获得命令只能用于获取字符串值。
与键关联的值,如果键不存在,返回为0。
setkey价值
o(1)
设置键以保存指定的字符串值,如果键已经存在,则覆盖其原始值。
总是返回OK。
getsetkey价值
o(1)
原子数集的关键为指定的值并返回原始值的关键。像得到命令,命令只能处理字符串的值,或使用将给相关的错误信息。
返回密钥的原始值,如果密钥不存在,返回到0。
strlenkey
o(1)
返回指定的键的字符长度值,如果值不是一个字符串类型,redis会失败,并给出了相关的错误信息。
返回指定键的值字符的长度,如果键不存在,则返回0。
setexkey秒值
o(1)
原子性完成两个操作,一是设置键的值为指定的字符串和设置关键的生存时间(秒)在redis服务器。该命令主要用于当Redis作为缓存服务器。
setnxkey价值
o(1)
如果指定的键不存在,则设置该键保存指定的字符串值,此时其效果相当于set命令。反之,如果键已经存在,则命令将不执行任何操作并返回。
1表示设置成功,否则为0。
setrangekey偏移值
o(1)
替换指定的关键部分的字符串值。从偏移,对第三值参数的顺序替换字符串的长度,如果长度值的原始字符串的偏移值大于其关键,Redis将在后面填充值(偏移strlen(价值))的0x00的数量,增加新的价值后,如果键不存在,它将长度的初始值为0,然后填充偏移0x00添加新值后的字符串的值的最大长度是512M,偏移量的最大值536870911。最后,应该指出的是,如果命令使原来的关键值的长度增加时,它执行时,它将导致Redis分配足够的内存来容纳所有的字符串置换后,会带来一定的性能损失。
修改的字符串值长度。
getrangekey开始结束
o(1)
如果截取字符串的长度很短,我们可以看到该命令的时间复杂度为O(1),否则是O(n),其中n代表截断的子串的长度。在子字符串被截断,命令还包括启动(0为第一个字符)在闭区间结束字符。如果结束值超过值字符长度,则命令将从开始时截取所有字符数据。
子串
setbitkey偏移值
o(1)
在指定的偏移量设定点的值只能是1或0,和命令返回原位值的偏移后的设置。如果指定的键不存在,该命令将创建一个新的值和设定的位值在参数指定的偏移。如果偏移大于价值的字符长度,Redis会延长值和设置的位值在参数指定的偏移量,和位值在中间添加0。解释的最后一件事是,偏移值必须大于0。
指定偏移位上的位的原始值。
getbitkey偏移
o(1)
返回指定偏移量上的位值,0或1。如果偏移量超过字符串值的长度,则该命令将返回0,因此空字符串总是返回0。
指定偏移量上的位值。
关键mgetkey {…}
O(n)
n指示键的数量。返回指定键的所有值,如果某个键不存在或其值不是String类型,则键的值将返回为0。
返回一组指定键的值列表。
msetkey值{关键价值…}
O(n)
n表示指定密钥的数量。这个命令完成所有关键/价值在原子完成参数设置,其具体行为可以看成是对SET命令执行多次迭代。
命令不会失败,并随时返回OK。
msetnxkey值{关键价值…}
O(n)
n表示指定密钥的数量。这个命令完成所有关键/价值在原子完成参数设置,其具体行为可以看作是对setnx命令执行的多个迭代。然而,现在需要明确的是,如果任何关键在于这批键操作将回滚,即所有的修改将不工作
1表示所有键已成功设置,0表示没有键已被修改。
三。An example of the command:

1。设置 / / /所有的追加:

复制代码代码如下所示:

redis客户端工具>对Redis的CLI #执行。

Redis 127.0.0.1:6379 >存在MyKey #确定是否存在的关键,就返回1,否则返回0。

(整数)0

Redis 127.0.0.1:6379 >附加MyKey的你好#键不存在,所以附加命令返回值的当前长度。

(整数)5

Redis 127.0.0.1:6379 >附加MyKey的世界#键已经存在,所以额外的回报长度值。

(整数)11

Redis 127.0.0.1:6379 >得到钥匙#通过get命令获得的关键,判断结果追加。

你好,世界

Redis 127.0.0.1:6379 >设置MyKey的这是一个测试#通过设置命令设置为重点的新的价值,并覆盖原有的价值。

好啊

Redis 127.0.0.1:6379 >得到MyKey

这是一个测试

Redis 127.0.0.1:6379> strlen MyKey # character length to obtain the specified Key, equivalent to the strlen C library function.

(整数)14
2。增加/减少 / / decrby incrby:

复制代码代码如下所示:

Redis 127.0.0.1:6379 >设置20 # MyKey设定关键值是20

好啊

Redis 127.0.0.1:6379 >增加MyKey的关键# 1增量值

(整数)21

Redis 127.0.0.1:6379 >月MyKey #关键值减少1

(整数)20

Redis 127.0.0.1:6379 >德尔MyKey #删除现有的关键。

(整数)1

Redis 127.0.0.1:6379 >月MyKey #执行下降操作对空值,它的值设置为0,降低后的1的价值

(整数)- 1

Redis 127.0.0.1:6379 >德尔MyKey

(整数)1

Redis 127.0.0.1:6379 >增加MyKey #对空值进行增量操作,将其值设置为0,增加值1

(整数)1

Redis 127.0.0.1:6379 >设置MyKey你好#值无法转换为普通整数字符串键设置。

好啊

Redis 127.0.0.1:6379 >增加MyKey #进行增量操作再次在关键,Redis会报告错误。

(错误)错误值不是整数或超出范围。

Redis 127.0.0.1:6379 >集MyKey 10

好啊

Redis 127.0.0.1:6379 > decrby MyKey 5

(整数)5

Redis 127.0.0.1:6379 > incrby MyKey 10

(整数)15
三.GETSET:

复制代码代码如下所示:

Redis 127.0.0.1:6379 >增加mycounter #将计数器1原子增量值

(整数)1

#获得同时计数器的原始值,并将其设置为新值,同时完成两个原子操作。

Redis 127.0.0.1:6379 >捷先mycounter 0

1

Redis 127.0.0.1:6379 >得到mycounter #视图的结果集。

0
4。该:

复制代码代码如下所示:

Redis 127.0.0.1:6379 >该MyKey 10你好#设置指定的密钥到期时间是10秒。

好啊

#检查使用TTL命令指定关键的剩余生存时间(秒),0个已过期,1表示永不过期。

Redis 127.0.0.1:6379 > TTL MyKey

(整数)4

Redis 127.0.0.1:6379 >得到钥匙#在关键的生存期,我们仍然可以得到价值。

你好

Redis 127.0.0.1:6379 > TTL MyKey # TTL命令返回的值表明该密钥已过期。

(整数)0

Redis 127.0.0.1:6379 >得到MyKey #收购过期密钥将返回零。

(无)
5。SETNX:

复制代码代码如下所示:

Redis 127.0.0.1:6379 >德尔MyKey #删除此键进行以下测试。

(整数)1

Redis 127.0.0.1:6379 > setnx MyKey的你好#键不存在,所以成功执行。

(整数)1

Redis 127.0.0.1:6379 > setnx MyKey的世界#键已经存在,所以这并不会产生任何影响

(整数)0

Redis 127.0.0.1:6379 >得到钥匙#从结果中可以看出,返回值设置为第一时间的价值。

你好
6。setrange / getrange:

复制代码代码如下所示:

Redis 127.0.0.1:6379 >设置MyKey的Hello World#设置初始值。

好啊

Redis 127.0.0.1:6379 > setrange MyKey 6 DD #开始取代2字节第六字节(DD只有2字节)

(整数)11

Redis 127.0.0.1:6379 >得到MyKey #视图重置价值。

你好ddrld

Redis 127.0.0.1:6379 > setrange MyKey 20 DD #偏移超过了关键的原始值的长度,并命令将补充0年底。

(整数)22

Redis 127.0.0.1:6379 >得到MyKey #观0置换后。

你好ddrld 设备设备设备设备设备设备设备设备 x00dd

Redis 127.0.0.1:6379 >德尔MyKey #删除键。

(整数)1

Redis 127.0.0.1:6379 > setrange MyKey 2 DD #替换空值。

(整数)4

Redis 127.0.0.1:6379 >得到MyKey #观代替空值后的结果。

设备 x00dd

把redis 127.0.0.1:6379 >设置MyKey的0123456789 #新价值。

好啊

Redis 127.0.0.1:6379 > getrange MyKey的12 #拦截的关键值,从第一个字节,第二字节结束。

12

Redis 127.0.0.1:6379 > getrange MyKey的120 # 20已经超过价值的总长度,所以所有字节后面的第一个字节将被拦截。

123456789
7。setbit /中的getbit:

复制代码代码如下所示:

Redis 127.0.0.1:6379 >德尔MyKey

(整数)1

Redis 127.0.0.1:6379 > setbit MyKey的71 #集第七位从0开始计算,值1,回到0点的原始值

(整数)0

Redis 127.0.0.1:6379 >得到MyKey #获取结果集,二进制0000000 1十六进制值为0x01

X01

Redis 127.0.0.1:6379 > setbit MyKey的61 #集第六位从0开始计算,值1,回到0点的原始值

(整数)0

Redis 127.0.0.1:6379 >得到MyKey #获取结果集,二进制000000 11十六进制值0x03

x03

Redis 127.0.0.1:6379 >中的getbit MyKey 6偏置点#返回指定的值。

(整数)1

Redis 127.0.0.1:6379 >中的getbit MyKey的10 #偏移已经超越价值的长度,因此返回0。

(整数)0
8。MSET / / msetnx MGET:

复制代码代码如下所示:

Redis 127.0.0.1:6379 > MSET key1你好key2世界#批量设置key1和key2两把钥匙。

好啊

Redis 127.0.0.1:6379 > mget KEY1 KEY2 KEY1和KEY2 #批量获取两个关键值。

1)你好

2)世界

#批设置KEY3和密钥两把钥匙,因为不存在,所以成功执行,返回1。

Redis 127.0.0.1:6379 > msetnx KEY3 史蒂芬刘密钥

(整数)1

Redis 127.0.0.1:6379 > mget KEY3密钥

1)史蒂芬

2)刘

#批设置KEY3和key5两把钥匙,但KEY3已经存在,所以命令失败,返回0。

Redis 127.0.0.1:6379 > msetnx KEY3 你好key5 世界

(整数)0

#批量获取KEY3和key5,因为没有设置key5,返回nil。

Redis 127.0.0.1:6379 > mget KEY3 key5

1)史蒂芬

2)(无)
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部