美文网首页
Redis的基本类型之一:String

Redis的基本类型之一:String

作者: 程序员小杰 | 来源:发表于2020-07-10 23:37 被阅读0次

    常用的 redis 字符串命令:

    1、set key value

    设置指定 key 的值

    127.0.0.1:6379> set k1 gongj
    

    2、get key

    获取指定 key 的值

    127.0.0.1:6379> get k1
    "gongj"
    

    3、getrange key start end

    返回 key 中字符串值的子字符。其中,-1表示最后一个字符串,-2表示倒数第二个字符串

    127.0.0.1:6379> get k1
    "gongjtt"
    127.0.0.1:6379> getrange k1 0 3
    "gong"
    127.0.0.1:6379> getrange k1 1 -1
    "ongjtt"
    

    4、append key value

    如果 key 已经存在并且是一个字符串, append 命令将指定的 value 追加到该 key 原来值(value)的末尾

    127.0.0.1:6379> append k1 tt
    (integer) 7
    127.0.0.1:6379> get k1
    "gongjtt"
    127.0.0.1:6379> append k2 yuanj
    (integer) 5
    127.0.0.1:6379> get k2
    "yuanj"
    

    5、decr key

    将 key 中储存的数字值减一,如果value不是数字,会报错。如果key不存在,则会给一个默认值为0,在默认值的基础上减一。

    #k3不存在
    127.0.0.1:6379> decr k3
    (integer) -1
    

    6、decrby key decrement

    key 所储存的值减去给定的减量值(decrement)

    127.0.0.1:6379> decrby k4 5
    (integer) -5
    

    7、getset key value

    将给定 key 的值设为 value ,并返回 key 的旧值

    127.0.0.1:6379> getset k2 100
    "yuanj"
    127.0.0.1:6379> get k2
    "100"
    

    8、incr key

    将 key 中储存的数字值增一

    127.0.0.1:6379> incr k2
    (integer) 101
    127.0.0.1:6379> incr k2
    (integer) 102
    

    9、incrby key increment

    将 key 所储存的值加上给定的增量值(increment)

    127.0.0.1:6379> incrby k2 10
    (integer) 112
    127.0.0.1:6379> incrby k2 10
    (integer) 122
    

    10、incrbyfloat key increment

    将 key 所储存的值加上给定的浮点增量值(increment)

    127.0.0.1:6379> incrbyfloat k2 1.22
    "123.22"
    

    11、mget key1 [key2..]

    获取一个或多个给定 key 的值。

    127.0.0.1:6379> mget k1 k2 k3
    1) "gongjtt"
    2) "123.22"
    3) "-1"
    

    12、mset key value [key value ...]

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

    127.0.0.1:6379> mset k4 ggg k5 yyyy
    OK
    127.0.0.1:6379> keys *
    1) "k4"
    2) "k1"
    3) "k2"
    4) "k3"
    5) "k5"
    127.0.0.1:6379> 
    

    14、ttl key

    查看key的过期时间,-1代表不会过期。-2代表已经过期

    127.0.0.1:6379> ttl k1
    (integer) -1
    

    13、setex key seconds value

    将值 value 关联到 key ,并将 key 的过期时间设为 seconds (以秒为单位)

    127.0.0.1:6379> setex k6 10 gongjyuanj
    OK
    127.0.0.1:6379> ttl k6
    (integer) 7
    127.0.0.1:6379> ttl k6
    (integer) -2
    127.0.0.1:6379> get k6
    (nil)
    

    14、psetex key millisecond value

    与setex类似,只不过这里的时间单位是毫秒

    127.0.0.1:6379> psetex k7 10000 sssssssss
    OK
    127.0.0.1:6379> ttl k7
    (integer) 6
    127.0.0.1:6379> ttl k7
    (integer) 1
    127.0.0.1:6379> get k7
    (nil)
    

    15、SETNX key value

    只有在 key 不存在时设置 key 的值
    set会覆盖之前的值

    127.0.0.1:6379> get k1
    "gongjtt"
    127.0.0.1:6379> set k1 dddd
    OK
    127.0.0.1:6379> get k1
    "dddd"
    127.0.0.1:6379> setnx k1 yyy
    (integer) 0
    127.0.0.1:6379> get k1
    "dddd"
    127.0.0.1:6379> setnx k8 bbbbsa
    (integer) 1   #1设置成功
    127.0.0.1:6379> get k8
    "bbbbsa"
    

    16、msetnx key value [key value]

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

    127.0.0.1:6379> msetnx k8 eeeeeeeeee k9 oooooooooo
    (integer) 0  # 0 代表失败
    127.0.0.1:6379> get k8
    "bbbbsa"
    127.0.0.1:6379> get k9
    (nil)
    ##################失败,由于k8已经存在
    127.0.0.1:6379> msetnx k9 3333333333 k10 111111111111
    (integer) 1  #1代表成功
    127.0.0.1:6379> get k9
    "3333333333"
    127.0.0.1:6379> get k10
    "111111111111"
    

    17、setrange key offset value

    用 value 参数覆写给定 key 所储存的字符串值,从偏移量 offset 开始。当给定的offset大于字符长度,多余的会补0

    127.0.0.1:6379> get k1
    "dddd"
    127.0.0.1:6379> setrange k1 0 go
    (integer) 4  #4为长度
    127.0.0.1:6379> get k1
    "godd"
    127.0.0.1:6379> setrange k1 5 yuanj
    (integer) 10
    127.0.0.1:6379> get k1
    "godd\x00yuanj"
    

    18、strlen key

    返回 key 所储存的字符串值的长度。

    127.0.0.1:6379> set k12 **@@e%%%$$
    OK
    127.0.0.1:6379> strlen k12
    (integer) 10
    

    BIT命令

    在 Redis 中,字符串都是以二进制的方式来存储的。例如 set k13 a,a 对应的 ASCII 码是 97,97 转为二进制是 01100001,BIT 相关的命令就是对二级制进行操作的。

    第八位 第七位 第六位 第五位 第四位 第三位 第二位 第一位
    0 1 1 0 0 0 0 1
    0 64 32 0 0 0 0 1

    左移就是*2。

    getbit key offset

    对 key 所储存的字符串值,获取指定偏移量上的位(bit)。

    127.0.0.1:6379> set k13 a
    OK
    127.0.0.1:6379> get k13
    "a"
    127.0.0.1:6379> getbit k13 0
    (integer) 0
    127.0.0.1:6379> getbit k13 1
    (integer) 1
    127.0.0.1:6379> getbit k13 2
    (integer) 1
    127.0.0.1:6379> getbit k13 3
    (integer) 0
    127.0.0.1:6379> getbit k13 4
    (integer) 0
    127.0.0.1:6379> getbit k13 5
    (integer) 0
    127.0.0.1:6379> getbit k13 6
    (integer) 0
    127.0.0.1:6379> getbit k13 7
    (integer) 1
    

    setbit key offset value

    对 key 所储存的字符串值,设置或清除指定偏移量上的位(bit)

    127.0.0.1:6379> setbit k13 7 0
    (integer) 1
    127.0.0.1:6379> setbit k13 6 1
    (integer) 0
    127.0.0.1:6379> get k13
    "b"
    

    将第七位设置为0,第六位设置为1。也就变为了01100010

    bitcount

    127.0.0.1:6379> bitcount k13
    (integer) 3
    127.0.0.1:6379> set k13 adb
    OK
    127.0.0.1:6379> bitcount k13 0 3
    (integer) 9
    127.0.0.1:6379> 
    

    0 3是指adb三个字符串。
    以上所以只是均来自于大佬江南一点雨
    个人博客:http://www.javaboy.org/

    image.png

    相关文章

      网友评论

          本文标题:Redis的基本类型之一:String

          本文链接:https://www.haomeiwen.com/subject/gkfvcktx.html