• [置顶] Redis String类型数据常用的16条命令总结


    Redis String类型数据常用的16条命令总结


    描述:String 类型是最简单的类型,一个Key对应一个Value,String类型是二进制安全的。Redis的String可以包含任何数据,比如jpg图片或序列化对象。

            常用方法:
          1, set方法:
    set  <key>  <value>       设置key的值为value
    (1)对不存在的key使用set:

    redis 127.0.0.1:6379> set name 'zhangsan'
    OK
    redis 127.0.0.1:6379> get name
    "zhangsan"

    (2)对已存在的key使用set,更换key的值:

    redis 127.0.0.1:6379> set name 'lisi'
    OK
    redis 127.0.0.1:6379> get name
    "lisi"

    2,setnx 方法:

    setnx  <key>   <value>     当key不存在时,设置key的值为value,设置成功,返回1,设置失败,返回0.

    redis 127.0.0.1:6379> setnx name 'wangwu'
    (integer) 0
    redis 127.0.0.1:6379> get name
    "lisi"
    redis 127.0.0.1:6379> setnx name2 'wangwu'
    (integer) 1
    redis 127.0.0.1:6379> get name2
    "wangwu"

    3,setex 方法:
    setex  <key>  <seconds>  <value>    设置key的值为value,过期时间为seconds(单位为秒).如果key已经存在,
    则会覆盖其值。过期之后,返回的是为nil.

    redis 127.0.0.1:6379> setex name 3 'zhangsan'
    OK
    redis 127.0.0.1:6379> get name
    "zhangsan"
    redis 127.0.0.1:6379> get name
    (nil)
    redis 127.0.0.1:6379> setex name 30 'zhangsan'
    OK
    redis 127.0.0.1:6379> get name
    "zhangsan"
    redis 127.0.0.1:6379> setex name 30 'lisi'
    OK
    redis 127.0.0.1:6379> get name
    "lisi"

    4,setrange方法:
    setrange  <key>  <offset>  <value>   用 value 参数覆盖给定 key 所储存的字符串值,下标从0开始,偏移量从 offset 开始。如果key不存在,则当做空白字符串处理。此命令会确保字符串足够长以便将 value 设置在指定的偏移量上,如果给定 key 原来储存的字符串长度比偏移量小(比如字符串只有 5 个字符长,但你设置的 offset 是 10 ),那么原字符和偏移量之间的空白将用零字节(zerobytes, "x00" )来填充。注意你能使用的最大偏移量是 2^29-1(536870911) ,因为 Redis 字符串的大小被限制在 512 兆(megabytes)以内。如果你需要使用比这更大的空间,你可以使用多个 key 。

    redis 127.0.0.1:6379> set name 'zhangsan'
    OK
    redis 127.0.0.1:6379> get name
    "zhangsan"
    redis 127.0.0.1:6379> setrange name 5 '_si'
    (integer) 8
    redis 127.0.0.1:6379> get name
    "zhang_si"
    redis 127.0.0.1:6379> get name3
    (nil)
    redis 127.0.0.1:6379> setrange name3 4 'lisi'
    (integer) 8
    redis 127.0.0.1:6379> get name3
    "x00x00x00x00lisi"
    redis 127.0.0.1:6379>


    5,mset方法:
    mset  <key>  <value> [<key>   <value> ...]   同时设置多个key-value对,如果key已经存在,则会覆盖以前的值。

    redis 127.0.0.1:6379> get name
    "zhang_si"
    redis 127.0.0.1:6379> mset name 'zhangsan' name2 'lisi' name3 'wangwu'
    OK
    redis 127.0.0.1:6379> get name
    "zhangsan"
    redis 127.0.0.1:6379> get name2
    "lisi"
    redis 127.0.0.1:6379> get name3
    "wangwu"
    redis 127.0.0.1:6379>


    6,msetnx方法:
    msetnx  <key>  <value> [<key>   <value> ...]   类似与mset方法,同时设置多个key-value对,当且仅当所给定的key都不存在时。如果操作成功,返回1,失败返回0.

    redis 127.0.0.1:6379> set age 12
    OK
    redis 127.0.0.1:6379> get age
    "12"
    redis 127.0.0.1:6379> msetnx age 14 age1 34 age2 55
    (integer) 0
    redis 127.0.0.1:6379> get age1
    (nil)
    redis 127.0.0.1:6379> get age
    "12"
    redis 127.0.0.1:6379> msetnx key1 'hello' key2 'word'
    (integer) 1
    redis 127.0.0.1:6379> get key1
    "hello"
    redis 127.0.0.1:6379> get key2
    "word"
    redis 127.0.0.1:6379>


    7,append方法:
    append <key> <value> 将value追加到原来的key值之后,如果key本不存在,则默认创建一个key-value对。操作成功返回1,失败返回0.

    redis 127.0.0.1:6379> set name 'zhangshan'
    OK
    redis 127.0.0.1:6379> get name
    "zhangshan"
    redis 127.0.0.1:6379> append name ' is 12.'
    (integer) 16
    redis 127.0.0.1:6379> get name
    "zhangshan is 12."
    redis 127.0.0.1:6379> get addr
    (nil)
    redis 127.0.0.1:6379> append addr '32 env.'
    (integer) 7
    redis 127.0.0.1:6379> get addr
    "32 env."
    redis 127.0.0.1:6379>


    8 ,get 方法:
    get <key> 取出 key的值。
    9, mget 方法:
    mget <key> [<key>...] 取出多个key的值。如果给定的 key 里面,有某个 key 不存在,那么这个 key 返回特殊值 nil。

    redis 127.0.0.1:6379> mget name name1  name2 name3
    1) "zhangshan is 12."
    2) (nil)
    3) "lisi"
    4) "wangwu"
    redis 127.0.0.1:6379>


    10, getrange 方法:
    getrange <key> <start> <end> 获取key对应值的子字符串,从偏移量start到end之间的串(包含start和end),value最左边的一个字符的索引为0以此类推,最后一个字符的索引为字符串的总长度减一,反过来类似。这与Python中的切片操作及其类似。如,字符串"zhangsan"对应的正向下标如下图中的下标一所示,反向下标如下图中的下标二所示。

    下标一: 0 1 2 3 4 5 6 7
      z h a n g s a n
    下标二: 0 -7 -6 -5 -4 -3 -2 -1
    redis 127.0.0.1:6379> set name 'zhangsan'
    OK
    redis 127.0.0.1:6379> getrange name 0 4
    "zhang"
    redis 127.0.0.1:6379> getrange name 0 20
    "zhangsan"
    redis 127.0.0.1:6379> getrange name 0 -1
    "zhangsan"
    redis 127.0.0.1:6379>


    11,getset方法:
    getset <key> <value> 设定key的值为value,并返回key的旧值,当key的旧值不存在时,返回nil。

    redis 127.0.0.1:6379> get name
    "zhangsan"
    redis 127.0.0.1:6379> getset name 'lisi'
    "zhangsan"
    redis 127.0.0.1:6379> get name
    "lisi"
    redis 127.0.0.1:6379> get code
    (nil)
    redis 127.0.0.1:6379> getset code 'hello'
    (nil)
    redis 127.0.0.1:6379> get code
    "hello"
    redis 127.0.0.1:6379>


    12, strlen 方法:
    strlen <key> 返回key的长度,如果key的值不存在时,返回0.

    redis 127.0.0.1:6379> get name
    "lisi"
    redis 127.0.0.1:6379> strlen  name
    (integer) 4
    redis 127.0.0.1:6379> get key0
    (nil)
    redis 127.0.0.1:6379> strlen key0
    (integer) 0


    13,incr 方法:
    incr <key> 将key的值加1。如果key的值不存在,则默认设置key的值为0,调用一次,增加一次,如果key的值不是整数类型,则返回一个错误。

    redis 127.0.0.1:6379> get name
    "lisi"
    redis 127.0.0.1:6379> incr name
    (error) ERR value is not an integer or out of range
    redis 127.0.0.1:6379> set name 5
    OK
    redis 127.0.0.1:6379> incr name
    (integer) 6
    redis 127.0.0.1:6379> get name
    "6"
    redis 127.0.0.1:6379> get key0
    (nil)
    redis 127.0.0.1:6379> incr key0
    (integer) 1
    redis 127.0.0.1:6379> incr key0
    (integer) 2
    redis 127.0.0.1:6379> get key0
    "2"
    redis 127.0.0.1:6379>


    14, decr 方法:
    decr <key> 类似与incr方法,将key的值减1。如果key的值不存在,则默认设置key的值为0,调用一次,减一次,如果key的值不是整数类型,则返回一个错误。

    redis 127.0.0.1:6379> get name
    "6"
    redis 127.0.0.1:6379> decr name
    (integer) 5
    redis 127.0.0.1:6379> decr name
    (integer) 4
    redis 127.0.0.1:6379> decr key9
    (integer) -1
    redis 127.0.0.1:6379>


    15,incrby 方法:
    incrby<key> <increment> 类似与decr方法,将key的值增加增量increment。同理,错误的类型任然返回错误。如果key值不存在,则默认为0后进行操作。

    redis 127.0.0.1:6379> set count 20
    OK
    redis 127.0.0.1:6379> get count
    "20"
    redis 127.0.0.1:6379> incrby count 40
    (integer) 60
    redis 127.0.0.1:6379> get count
    "60"
    redis 127.0.0.1:6379> get count1
    (nil)
    redis 127.0.0.1:6379> incrby count1 30
    (integer) 30
    redis 127.0.0.1:6379> get count1
    "30"

    16,decrby 方法:
    decrby <key> <decrement> 类似与decr方法,将key的值减去增量decrement。同理,错误的类型任然返回错误。如果key值不存在,则默认为0后进行操作。

    redis 127.0.0.1:6379> set count 20
    OK
    redis 127.0.0.1:6379> decrby count 4
    (integer) 16
    redis 127.0.0.1:6379> get count2
    (nil)
    redis 127.0.0.1:6379> decrby count2 10
    (integer) -10
    redis 127.0.0.1:6379>


  • 相关阅读:
    html-fieldset线中嵌套字符
    在Windows平台上绿色安装postgresQL
    tomcat处理中文文件名的访问(乱码)
    CSS div水平垂直居中和div置于底部
    java-工具类-读取配置文件
    Win+Ctrl键设置
    eclipse-将同一个文件分屏显示
    spring-poi-excle往单元格写入图片
    spring-初始化完成后运行指定内容
    java-collections.sort异常Comparison method violates its general contract!
  • 原文地址:https://www.cnblogs.com/snake-hand/p/3206663.html
Copyright © 2020-2023  润新知