• 带你玩转Redis 的String 数据类型


    🎨 个人介绍

    👉大家好,我是:知识的搬运工旺仔

    👉认真分享技术,记录学习过程的点滴,如果我的分享能为你带来帮助,请支持我奥🍻

    👉你的支持,是我每天更新的动力。

    👉赞点:👍 留言:✍ 收藏:⭐

    👉个人格言:想法一步一步的落实,才是你我前进最佳选择。

    1. String 数据类型简介

    1. 它是二进制安全的,任何形式的字符串都可以储存
    2. 包括二进制数据,序列化后的数据,JSON化的对象,甚至是一张经Base64编码后的图片
    3. String 类型的键最大能储存512MB的数据

    2 设置键值对

    SET key value

    :::success
    Set 命令:设置键值对

    1. key已经存在,就会给覆盖
    2. 对于某个带有生命周期的key,设置key就会清除生命周期
      :::

    MSET key value [key value]

    :::success
    MSET 命令:设置多个键值对

    1. key已经存在,就会给覆盖
    2. 它是一个原子性的操作(就是说,要不全部成功,错一个,全部失败)
      :::

    SETNX key value

    :::success
    SETNX命令:设置不存在的键值对

    1. 如果key不存在,就设置值
    2. 如果key存在,就什么也不做
      :::

    MSETNX key value [key value…]

    :::success
    MSETNX命令:设置多个不存在的键值对

    1. 如果所有key不存在,就设置值
    2. 它是一个原子性的操作(如果有一个key存在,所有的设置都会失败)
      :::

    3. 获取键值对

    GET key

    :::success
    GET key 命令:获取键值对的值

    1. GET 命令只处理字符串的值,获取值不是字符串,就会报错
    2. key不存在时,返回nil
      :::

    MGET key [key…]

    :::success
    MGET 命令:获取多个键值对的值

    1. 存在不存在的key,返回nil
      :::

    GETRANGE key start end

    :::success
    GETRANGE 命令:获取键的子字符串值

    1. 从索引 start 开始 到 end结束的字符串
    2. 取负值,-1 代表从最后一个字符开始,-2 代表最后第二个字符开始
      :::

    4. 键值对的偏移量

    SETBIT key offset value

    :::success
    SETBIT 命令:设置键的移量量

    1. 对key 所存储的字符串值,设置或清除指定偏移量上的位
    2. 就是说,已经存在的String类型上的key对应的值,改变值位2进制位,通过改变2进制位上的0和1,进而对key中的值,作出改变
    3. 方向是从左往右
    4. 注意这里的value 因为是二进制,所以只能是0和1
    5. key不存在的时候,自动生成一个新的字符串值,这个字符串是动态的,可扩展的
      :::

    GETBIT key offset

    :::success
    GETBIT 命令:获取键的偏移量的值

    1. 对key 中的值,进行二进制变化,然后获取相对应偏移量上的二进制的值
    2. 超过最大长度或key不存在,返回0
      :::

    5. 设置键的生存时间

    SETEX key seconds value

    :::success
    SETEX 命令:为键设置生存时间

    1. 设置key 的生存时间为多少秒
    2. 如果key 已经存在,则SETEX命令将覆写旧值
      :::

    PSETEX key milliseconds value

    :::success
    PSETEX 命令:为键设置生存时间(毫秒)

    1. 设置生存时间,以毫秒为单位
      :::

    6. 键值对的值操作

    SETRANGE key offset value

    :::success
    SETRANGE 命令:替换键的值

    1. 使用SETRNG 命令从指定的位置(offset) 开始,将key的值替换为新的字符串
    2. SETRANG 会在这是的偏移量上进行填充,如果原来字符的最后一个字符和设置的偏移量中间间隔,那么这些间隔,将以零字节(“\x00”)填充
    3. offset 的最大偏移量是2^29-1(536870911)
      :::

    GETSET key value

    :::success
    GETSET 命令:为建设置新值

    1. 使用GETSET 命令设置新值,返回旧值
    2. key存在,value不是字符串类型,将会返回错误
      :::

    APPEND key value

    :::success
    APPEND 命令:为键追加值

    1. key 存在、并且是字符串类型,将value 值追加到key 旧值的末尾
    2. key 不存在,则将key 设置值为value
      :::

    7. 键值对的计算

    BITCOUNT key [start] [end]

    :::success
    BITCOUNT 命令:计算比特位数量

    1. BITCOUNT 计算在给定的字符串中被设置为1的比特位数量
    2. 不设置start 和 end,表示计算整个字符串的1的比特位数量
    3. 如果设置 ,表示计算start 和 end 区间的字符串的1的比特位数量
      :::

    BITOP operation destkey key [key…]

    :::success
    BITOP 命令:对键进行位元运算

    1. BITOP 对一个或多个二进制位的字符串key进行位运算,并将运算结果保存到destkey 中
    2. operation 表示位元操作符,分类有
      1. AND:表示逻辑并
      2. OR:表示逻辑或
      3. NOT:表示逻辑非
      4. XOR:表示逻辑异或
    3. NOT 只能接收一个key ,别的位元运算符,可以是一个或是多个
      :::

    STRLEN key

    :::success
    STRLEN 命令:统计键的值的字符串长度

    1. key 存在且是字符串,统计字符串的长度
    2. key 不存在,返回0
    3. key 不是字符串,返回错误
      :::

    8. 键值对的值的增量

    DECR key

    :::success
    DECR 命令:让键的值 -1

    1. 将key中存储的数字值 -1
    2. key 不存在,先初始化value 为 0 ,然后 -1
    3. key 不是数字,将返回一个错误
      :::

    DECRBY key decrement

    :::success
    DECR 命令:键的值减去减量值

    1. 将key 的值减去 decrement
    2. key 不存在,先初始化为0,然后 -1
    3. key 不是数字,将返回一个错误
      :::

    INCR key

    :::success
    INCR 命令:让键的值 +1

    1. 将key中存储的数字值 +1
    2. key 不存在,先初始化value 为 0 ,然后 +1
    3. key 不是数字,将返回一个错误
      :::

    INCRBY key increment

    :::success
    INCRBY 命令:让键的值加上一个增量值

    1. 将key 的值加上 increment
    2. key 不存在,先初始化为0,然后 +1
    3. key 不是数字,将返回一个错误
      :::

    INCRBYFLOAT key increment

    :::success
    INCRBYFLOAT 命令:让键的值加上浮点数增量值

    1. key 的值 加上浮点数增量值 increment
    2. key 不存在,先初始化为0,然后 + increment
    3. key 不是数字,将返回一个错误
      :::

    🎈看完了不妨给我点个赞吧,👉你的支持,是我每天更新的动力…

  • 相关阅读:
    【设计模式】Java设计模式 - 装饰者模式
    9月20日作业
    WPF布局控件之Grid布局
    【机器学习概念笔记】:空间概念
    Go 接口
    将excel表中的英文自动翻译成中文
    服务器搭建(TCP套接字)-select版(服务端)
    C#Regex正则表达式(Regular Expression)
    Python 虚拟环境迁移
    细说react源码中的合成事件
  • 原文地址:https://blog.csdn.net/weixin_46213083/article/details/126294889