设为首页 收藏本站
查看: 749|回复: 0

[经验分享] Redis数据类型之字符串String-12873930

[复制链接]

尚未签到

发表于 2018-11-4 07:05:47 | 显示全部楼层 |阅读模式
  String类型是Redis中最基本也最简单的一种数据类型
  首先演示一些常用的命令
  一、SET key value 和GET key
  SET key value 和 GET key  设置键值和获取值

  SET将键today的值设为tuesday;GET取出键today的值
  SET命令执行成功后返回OK;GET返回要取到的值
  当一个key已经有值时,使用SET会覆盖其原有值,并且不受类型限制

  today的原有值"tuesday"被"12"覆盖。Redis里没有整数类型,即使SET赋值一个整数,也会以字符串形式存储
  当使用GET操作一个不存在的键时,返回nil

  注意:当使用SET给定一个普通的值时,不需要加双引号,但当值有空格或其他特殊字符时,需要加上引号,否则会报语法错误

  二、GETRANGE key start end
  
  作用:获取存储在指定key中的字符串的子字符串,字符串的截取范围由start和end来决定【不同于其他脚本语言,这里的start和end都是闭区间】
  同其他脚本一样,Redis的索引也是从0开始
  GETRANGE的使用方法如下:

  GETRANGE test 0 3 :从索引0开始由左至右取到索引为3的字符
  GETRANGE test 0 -1 : -1代表从右至左的第一个字符,也就是字符串的末位字符,那么这条命令就是取到字符串的全部
  三、GETSET key value
  作用:设置指定key的值,并返回key旧的值

  当指定key之前并不存在时,使用GETSET会为key创建一个值,并且返回nil;当key存在时,会为其指定一个新值,并且将原有值返回
  四、GETBIT key value
  作用:对key所存储的字符串值,获取指定偏移量上的位
  GETBIT对于不存在的key或者不存在的offset,返回0

  当offset存在时,返回偏移量上的位

  五、MGET key1 key2 ... keyn
  作用:返回所有给定key的值,如果某个key不存在,返回nil

  key1和key2都存在,返回其值;keynotexist并不存在,获取其值时返回nil
  六、SETBIT key offset
  作用:对key所存储的字符串值,设置或清除指定偏移量上的位

  当没有使用SETBIT设置偏移量的位时,使用GETBIT将返回0
  七、SETEX key seconds value
  作用:为指定的key设置值和过期时间,如果key已存在,则新值会覆盖旧值

  "TTL key" 可以获取key的剩余存在时间,如果在执行GET时,key存在则返回其值;不存在,返回nil
  八、SETEX key value
  作用:当指定的key不存在时,才给其设置指定的值。设置成功返回1,失败返回0

  当key已存在,使用SETNX不会执行成功,返回0
  九、SETRANGE key offset value
  作用:用指定的字符串覆盖指定key的字符串值,覆盖的位置从偏移量offset开始

  十、STRLEN key
  作用:返回指定key的字符串值的长度,当key不存在时返回0

  十一、MSET key1 value1 key2 value2 ... keyn valuen
  作用:同时设置一个或多个k-v对

  十二、MSETNX key1 value1 key2 value2 ... keyn valuen
  作用:同时设置一个或多个k-v对,当且仅当key都不存在时
  当key都不存在时,使用MSETNX

  当有key存在时,使用MSETNX

  MSET操作是原子性操作,由于键rmdbs已存在,所以language并没有被设置,rmdbs的值也未被修改
  十三、PSETEX key milliseconds value
  作用:同SETEX命令相似,但SETEX的时间是以秒为单位,PSETEX以毫秒为单位

  十四、INCR key
  作用:将指定key的值递增加1。如果key不存在,则会被初始化为0;如果key的值的类型不是数字或有特殊字符,返回错误信息

  INCR执行成功后,返回递增后的值

  由于pageCount之前并不存在,则会被初始化为0,经过INCR操作之后,值递增为1

  如果INCR操作的key的值类型不对,则会报错
  十五、INCRBY key increment
  作用:给key所存储的值加上指定的增量值
  当key存在且是数字时,INCRBY会返回增加后的值

  当key不存在时,INCRBY增加的值即为key的值

  当key存在,但值不是数字值时

  十六、INCRBYFLOAT key increment
  作用:给key所存储的值加上浮点增量值
  当key和increment都不是指数符号时

  当key的值是整数值时

  忽略无意义的0

  当key和increment都是指数符号时,执行后格式会改为非指数符号

  十七、DECR key
  作用:同INCR key相反,将key的值减1,同样key不存在时会被初始化为0
  当对存在数值键key操作时

  当key不存在时,key被创建并初始化为0,再减1

  当key存在,但值不是数字值时

  十八、DECRBY key decrement
  作用:key 所储存的值减去给定的减量值
  当key存在时

  当key不存在时

  十九、APPEND key value
  作用:如果key已经存在并且是字符串值,APPEND将value追加到值的末尾,返回追加后的字符串的长度
  当key不存时

  当key存在时



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-630396-1-1.html 上篇帖子: Redis数据类型之列表List-12873930 下篇帖子: 小白的web优化之路 一、使用redis来缓存信息
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表