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

    单值单value

    常用

     set/get/del/append/strlen

    Incr/decr/incrby/decrby,一定要是数字才能进行加减

    getrange

    O(N) N是字符串长度,复杂度由最终返回长度决定,但由于通过一个字符串创建子字符串是很容易的,它可以被认为是O(1)。

    例子

    redis> SET mykey "This is a string"
    OK
    redis> GETRANGE mykey 0 3
    "This"
    redis> GETRANGE mykey -3 -1
    "ing"
    redis> GETRANGE mykey 0 -1
    "This is a string"
    redis> GETRANGE mykey 10 100
    "string"
    redis> 

    setrange

    覆盖key对应的string的一部分,从指定的offset处开始,覆盖value的长度。

    如果offset比当前key对应string还要长,那这个string后面就补0以达到offset。不存在的keys被认为是空字符串,所以这个命令可以确保key有一个足够大的字符串,能在offset处设置value。

    返回值

    该命令修改后的字符串长度

    例子

    基本使用方法:

    redis> SET key1 "Hello World"
    OK
    redis> SETRANGE key1 6 "Redis"
    (integer) 11
    redis> GET key1
    "Hello Redis"
    redis> 

    补0的例子:

    redis> SETRANGE key2 6 "Redis"
    (integer) 11
    redis> GET key2
    "x00x00x00x00x00x00Redis"
    redis> 

    SETEX key seconds value

    时间复杂度:O(1)

    设置key对应字符串value,并且设置key在给定的seconds时间之后超时过期。这个命令等效于执行下面的命令:

    例子

    redis> SETEX mykey 10 "Hello"
    OK
    redis> TTL mykey
    (integer) 10
    redis> GET mykey
    "Hello"
    redis> 

    SETNX key value

    时间复杂度:O(1)

    key设置值为value,如果key不存在,这种情况下等同SET命令。 当key存在时,什么也不做。SETNX是”SET if Not eXists”的简写。

    返回值

    • 1 如果key被设置了
    • 0 如果key没有被设置

    例子

    redis> SETNX mykey "Hello"
    (integer) 1
    redis> SETNX mykey "World"
    (integer) 0
    redis> GET mykey
    "Hello"
    redis> 

     mset/mget/msetnx

    mset:同时设置一个或多个 key-value 对。

    mget:获取所有(一个或多个)给定 key 的值。

    msetnx:同时设置一个或多个 key-value 对,当且仅当所有给定 key 都不存在。

     getset(先get再set)

    getset:将给定 key 的值设为 value ,并返回 key 的旧值(old value)。
    简单一句话,先get然后立即set

  • 相关阅读:
    静态包含与动态包含
    REST风格下如何放行静态资源
    java迭代器
    es6之扩展运算符 三个点(...)
    关于Echarts配置项的工作记录
    vscode中vue代码格式化的相关配置
    v-loading
    git中Please enter a commit message to explain why this merge is necessary.
    slot
    slot的使用方法
  • 原文地址:https://www.cnblogs.com/chengmr/p/13293871.html
Copyright © 2011-2022 走看看