zoukankan      html  css  js  c++  java
  • Redis数据类型之字符串String

    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存在时

  • 相关阅读:
    Hibernate save, saveOrUpdate, persist, merge, update 区别
    Eclipse下maven使用嵌入式(Embedded)Neo4j创建Hello World项目
    Neo4j批量插入(Batch Insertion)
    嵌入式(Embedded)Neo4j数据库访问方法
    Neo4j 查询已经创建的索引与约束
    Neo4j 两种索引Legacy Index与Schema Index区别
    spring data jpa hibernate jpa 三者之间的关系
    maven web project打包为war包,目录结构的变化
    创建一个maven web project
    Linux下部署solrCloud
  • 原文地址:https://www.cnblogs.com/zhaodahai/p/6825405.html
Copyright © 2011-2022 走看看