本文介绍redis的string类型的命令使用方式,string类型是二进制安全的,可以存放任何数据类型,图片、对象等等都是可以的。下面将罗列与string类型相关的语法操作:
1、如何添加一个string
命令:set 添加一个string对象
语法:set [key] [value]
范例:set name wangzp
阐述:添加了一个名为name的string对象,值为'wangzp';如果之前已经存在name对象,那么将覆盖原来的对象。
2、如何获取一个string
命令:get 获取一个string对象的值
语法:get [key]
范例:get name
阐述:获取name对象的值,返回为'wangzp';如果不存在该对象,那么返回空(nil)
3、setnx与set的区别
两者语法形式一致,
前者使用时只有当key不存在时,才会执行set操作;
后者不管是否已经存在该key,如果存在那么覆盖掉。
所以在实际使用时,应该根据key的应用场合,来确定使用set还是setnx,如果对key存在保护,那么建议使用setnx,以便于错误的覆盖了之前的值。
4、批量添加string
命令:mset 一次性添加多个string对象
语法:mset [key1 value1] [key2 value2] ... [keyn valuen]
范例:mset name wangzp age 23 address shanghai
阐述:一次性添加name、age、address三个string对象。
5、批量获取string
命令:mget 一次性获取多个string对象值
语法:mget [key1] [key2] ... [keyn]
范例:mget name age address
阐述:一次性获取name、age、address三个string对象的值
6、mset与msetnx的区别
两者的语法形式一致,类比于set、setnx的区别,但是需要注意的是当使用msetnx时,只要其中一个string对象 key是存在的,那么就设置失败
例如:name是存在的
msetnx name wangzp age 23
执行上述命令,会返回0,表示执行失败
7、重新设置string
命令:getset 重新设置string对象(如果key存在,那么返回旧值,设置新值;)
语法:getset key value
范例1:getset name wangzp // 假设name之前存在值为wangzpold
阐述:返回wangzpold,并设置name为wangzp
范例2:getset name newwangzp // 假设name之前不存在
阐述:返回nil,并设置name为newwangzp
综述:根据范例1、2你会发现,实际上getset相当于执行了get 、 set操作。
8、删除string
命令:del 删除string对象
语法:del key
范例:del name
阐述: 删除name对象
9、string相关辅助命令
除上述基本的增删改查外的操作,还有一些辅助性质的命令:
1、string值的截取、添加操作
命令语法: setrange [key] [起始索引位置] [替换的字符串] // 返回新字符串的长度
范例1:setrange name 2 ok // 假设之前name=wangzp
阐述:返回6(waokzp);从指定的起始位置开始替换。
命令语法:getrange [key] [起始索引位置] [终止索引位置]
范例2:getrange name 0 3 // 假设之前name=wangzp
阐述:返回wang,起始位置与终止位置是闭区间,包括边界位置
命令语法:append [key] [value]
范例3:append name -23 // 假设之前name=wangzp
阐述:返回9(返回新字符串长度),该语法命令是在string对象末尾添加字符串。
2、string值的自增、自减操作
命令语法:incr [key] // 自增+1
范例1:incr age // 假设age=23
阐述:返回24,也就是age+1的数值;key对象的value必须是数值类型。
命令语法:incrby [key] [步长] // 指定步长执行自增
范例2:incrby age 5 // age=23
阐述:返回28,也就是age + 5,如果步长为负数,那么表示自减操作
命令语法:decr [key] // 自减-1
范例3:decr age // age=23
阐述:返回22,即age-1
命令语法:decrby [key] [步长]
范例4:decrby age 5 // age=23
阐述:返回18,即age-5,如果此时步长为负值,那么相当于是自增操作
3、获取string对象长度
命令语法:strlen [key]
转载于:https://blog.51cto.com/793404905/1547689