Redis数据类型之字符串String-12873930
String类型是Redis中最基本也最简单的一种数据类型首先演示一些常用的命令
一、SET key value 和GET key
SET key value 和 GET key设置键值和获取值
http://images2015.cnblogs.com/blog/893198/201704/893198-20170411094702860-881508506.png
SET将键today的值设为tuesday;GET取出键today的值
SET命令执行成功后返回OK;GET返回要取到的值
当一个key已经有值时,使用SET会覆盖其原有值,并且不受类型限制
http://images2015.cnblogs.com/blog/893198/201704/893198-20170411095208954-205981712.png
today的原有值"tuesday"被"12"覆盖。Redis里没有整数类型,即使SET赋值一个整数,也会以字符串形式存储
当使用GET操作一个不存在的键时,返回nil
http://images2015.cnblogs.com/blog/893198/201704/893198-20170411095705188-877300451.png
注意:当使用SET给定一个普通的值时,不需要加双引号,但当值有空格或其他特殊字符时,需要加上引号,否则会报语法错误
http://images2015.cnblogs.com/blog/893198/201704/893198-20170411100436547-599022390.png
二、GETRANGE key start end
作用:获取存储在指定key中的字符串的子字符串,字符串的截取范围由start和end来决定【不同于其他脚本语言,这里的start和end都是闭区间】
同其他脚本一样,Redis的索引也是从0开始
GETRANGE的使用方法如下:
http://images2015.cnblogs.com/blog/893198/201704/893198-20170411100714251-1714049272.png
GETRANGE test 0 3 :从索引0开始由左至右取到索引为3的字符
GETRANGE test 0 -1 : -1代表从右至左的第一个字符,也就是字符串的末位字符,那么这条命令就是取到字符串的全部
三、GETSET key value
作用:设置指定key的值,并返回key旧的值
http://images2015.cnblogs.com/blog/893198/201704/893198-20170411101600782-484838439.png
当指定key之前并不存在时,使用GETSET会为key创建一个值,并且返回nil;当key存在时,会为其指定一个新值,并且将原有值返回
四、GETBIT key value
作用:对key所存储的字符串值,获取指定偏移量上的位
GETBIT对于不存在的key或者不存在的offset,返回0
http://images2015.cnblogs.com/blog/893198/201704/893198-20170411102830907-1288786144.png
当offset存在时,返回偏移量上的位
http://images2015.cnblogs.com/blog/893198/201704/893198-20170411102940610-1376509754.png
五、MGET key1 key2 ... keyn
作用:返回所有给定key的值,如果某个key不存在,返回nil
http://images2015.cnblogs.com/blog/893198/201704/893198-20170411103234329-375275856.png
key1和key2都存在,返回其值;keynotexist并不存在,获取其值时返回nil
六、SETBIT key offset
作用:对key所存储的字符串值,设置或清除指定偏移量上的位
http://images2015.cnblogs.com/blog/893198/201704/893198-20170411103643876-1381238339.png
当没有使用SETBIT设置偏移量的位时,使用GETBIT将返回0
七、SETEX key seconds value
作用:为指定的key设置值和过期时间,如果key已存在,则新值会覆盖旧值
http://images2015.cnblogs.com/blog/893198/201704/893198-20170411104128422-2033127143.png
"TTL key" 可以获取key的剩余存在时间,如果在执行GET时,key存在则返回其值;不存在,返回nil
八、SETEX key value
作用:当指定的key不存在时,才给其设置指定的值。设置成功返回1,失败返回0
http://images2015.cnblogs.com/blog/893198/201704/893198-20170411104624594-1006410662.png
当key已存在,使用SETNX不会执行成功,返回0
九、SETRANGE key offset value
作用:用指定的字符串覆盖指定key的字符串值,覆盖的位置从偏移量offset开始
http://images2015.cnblogs.com/blog/893198/201704/893198-20170411105007922-150491133.png
十、STRLEN key
作用:返回指定key的字符串值的长度,当key不存在时返回0
http://images2015.cnblogs.com/blog/893198/201704/893198-20170411105309657-2090202031.png
十一、MSET key1 value1 key2 value2 ... keyn valuen
作用:同时设置一个或多个k-v对
http://images2015.cnblogs.com/blog/893198/201704/893198-20170411105556485-1208431012.png
十二、MSETNX key1 value1 key2 value2 ... keyn valuen
作用:同时设置一个或多个k-v对,当且仅当key都不存在时
当key都不存在时,使用MSETNX
http://images2015.cnblogs.com/blog/893198/201704/893198-20170411105916329-1680166654.png
当有key存在时,使用MSETNX
http://images2015.cnblogs.com/blog/893198/201704/893198-20170411110047204-1390832793.png
MSET操作是原子性操作,由于键rmdbs已存在,所以language并没有被设置,rmdbs的值也未被修改
十三、PSETEX key milliseconds value
作用:同SETEX命令相似,但SETEX的时间是以秒为单位,PSETEX以毫秒为单位
http://images2015.cnblogs.com/blog/893198/201704/893198-20170411110730266-2092590833.png
十四、INCR key
作用:将指定key的值递增加1。如果key不存在,则会被初始化为0;如果key的值的类型不是数字或有特殊字符,返回错误信息
http://images2015.cnblogs.com/blog/893198/201704/893198-20170411111034063-345542844.png
INCR执行成功后,返回递增后的值
http://images2015.cnblogs.com/blog/893198/201704/893198-20170411111145704-619481775.png
由于pageCount之前并不存在,则会被初始化为0,经过INCR操作之后,值递增为1
http://images2015.cnblogs.com/blog/893198/201704/893198-20170411111343141-1588099925.png
如果INCR操作的key的值类型不对,则会报错
十五、INCRBY key increment
作用:给key所存储的值加上指定的增量值
当key存在且是数字时,INCRBY会返回增加后的值
http://images2015.cnblogs.com/blog/893198/201704/893198-20170411111813422-1863851678.png
当key不存在时,INCRBY增加的值即为key的值
http://images2015.cnblogs.com/blog/893198/201704/893198-20170411112635922-1880643659.png
当key存在,但值不是数字值时
http://images2015.cnblogs.com/blog/893198/201704/893198-20170411112755422-668191688.png
十六、INCRBYFLOAT key increment
作用:给key所存储的值加上浮点增量值
当key和increment都不是指数符号时
http://images2015.cnblogs.com/blog/893198/201704/893198-20170411113202704-1417533232.png
当key的值是整数值时
http://images2015.cnblogs.com/blog/893198/201704/893198-20170411113316469-11002724.png
忽略无意义的0
http://images2015.cnblogs.com/blog/893198/201704/893198-20170411113431735-999387925.png
当key和increment都是指数符号时,执行后格式会改为非指数符号
http://images2015.cnblogs.com/blog/893198/201704/893198-20170411113557313-215646216.png
十七、DECR key
作用:同INCR key相反,将key的值减1,同样key不存在时会被初始化为0
当对存在数值键key操作时
http://images2015.cnblogs.com/blog/893198/201704/893198-20170411113922407-194966885.png
当key不存在时,key被创建并初始化为0,再减1
http://images2015.cnblogs.com/blog/893198/201704/893198-20170411113951282-626375753.png
当key存在,但值不是数字值时
http://images2015.cnblogs.com/blog/893198/201704/893198-20170411114034454-1091375349.png
十八、DECRBY key decrement
作用:key 所储存的值减去给定的减量值
当key存在时
http://images2015.cnblogs.com/blog/893198/201704/893198-20170411114301141-339102924.png
当key不存在时
http://images2015.cnblogs.com/blog/893198/201704/893198-20170411114322376-1890085744.png
十九、APPEND key value
作用:如果key已经存在并且是字符串值,APPEND将value追加到值的末尾,返回追加后的字符串的长度
当key不存时
http://images2015.cnblogs.com/blog/893198/201704/893198-20170411114527360-1807776655.png
当key存在时
http://images2015.cnblogs.com/blog/893198/201704/893198-20170411114657672-130320813.png
页:
[1]