likes
comments
collection
share

带你玩转Reids的String数据类型

作者站长头像
站长
· 阅读数 41

👉大家好,我是:旺仔不是程序员

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

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

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

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

1. String 数据类型简介

  1. 它是二进制安3的,任何形式的字符串都可以储存
  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 不是数字,将返回一个错误 :::

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

转载自:https://juejin.cn/post/7130631784932311048
评论
请登录