带你玩转Reids的String数据类型
👉大家好,我是:旺仔不是程序员
👉认真分享技术,记录学习过程的点滴,如果我的分享能为你带来帮助,请支持我奥🍻
👉你的支持,是我每天更新的动力。
👉赞点:👍 留言:✍ 收藏:⭐
👉个人格言:想法一步一步的落实,才是你我前进最佳选择。
1. String 数据类型简介
- 它是二进制安3的,任何形式的字符串都可以储存
- 包括二进制数据,序列化后的数据,JSON化的对象,甚至是一张经Base64编码后的图片
- String 类型的键最大能储存512MB的数据
2 设置键值对
SET key value
:::success Set 命令:设置键值对
- key已经存在,就会给覆盖
- 对于某个带有生命周期的key,设置key就会清除生命周期 :::
MSET key value [key value]
:::success MSET 命令:设置多个键值对
- key已经存在,就会给覆盖
- 它是一个原子性的操作(就是说,要不全部成功,错一个,全部失败) :::
SETNX key value
:::success SETNX命令:设置不存在的键值对
- 如果key不存在,就设置值
- 如果key存在,就什么也不做 :::
MSETNX key value [key value...]
:::success MSETNX命令:设置多个不存在的键值对
- 如果所有key不存在,就设置值
- 它是一个原子性的操作(如果有一个key存在,所有的设置都会失败) :::
3. 获取键值对
GET key
:::success GET key 命令:获取键值对的值
- GET 命令只处理字符串的值,获取值不是字符串,就会报错
- key不存在时,返回nil :::
MGET key [key...]
:::success MGET 命令:获取多个键值对的值
- 存在不存在的key,返回nil :::
GETRANGE key start end
:::success GETRANGE 命令:获取键的子字符串值
- 从索引 start 开始 到 end结束的字符串
- 取负值,-1 代表从最后一个字符开始,-2 代表最后第二个字符开始 :::
4. 键值对的偏移量
SETBIT key offset value
:::success SETBIT 命令:设置键的移量量
- 对key 所存储的字符串值,设置或清除指定偏移量上的位
- 就是说,已经存在的String类型上的key对应的值,改变值位2进制位,通过改变2进制位上的0和1,进而对key中的值,作出改变
- 方向是从左往右
- 注意这里的value 因为是二进制,所以只能是0和1
- key不存在的时候,自动生成一个新的字符串值,这个字符串是动态的,可扩展的 :::
GETBIT key offset
:::success GETBIT 命令:获取键的偏移量的值
- 对key 中的值,进行二进制变化,然后获取相对应偏移量上的二进制的值
- 超过最大长度或key不存在,返回0 :::
5. 设置键的生存时间
SETEX key seconds value
:::success SETEX 命令:为键设置生存时间
- 设置key 的生存时间为多少秒
- 如果key 已经存在,则SETEX命令将覆写旧值 :::
PSETEX key milliseconds value
:::success PSETEX 命令:为键设置生存时间(毫秒)
- 设置生存时间,以毫秒为单位 :::
6. 键值对的值操作
SETRANGE key offset value
:::success SETRANGE 命令:替换键的值
- 使用SETRNG 命令从指定的位置(offset) 开始,将key的值替换为新的字符串
- SETRANG 会在这是的偏移量上进行填充,如果原来字符的最后一个字符和设置的偏移量中间间隔,那么这些间隔,将以零字节("\x00")填充
- offset 的最大偏移量是2^29-1(536870911) :::
GETSET key value
:::success GETSET 命令:为建设置新值
- 使用GETSET 命令设置新值,返回旧值
- key存在,value不是字符串类型,将会返回错误 :::
APPEND key value
:::success APPEND 命令:为键追加值
- key 存在、并且是字符串类型,将value 值追加到key 旧值的末尾
- key 不存在,则将key 设置值为value :::
7. 键值对的计算
BITCOUNT key [start] [end]
:::success BITCOUNT 命令:计算比特位数量
- BITCOUNT 计算在给定的字符串中被设置为1的比特位数量
- 不设置start 和 end,表示计算整个字符串的1的比特位数量
- 如果设置 ,表示计算start 和 end 区间的字符串的1的比特位数量 :::
BITOP operation destkey key [key...]
:::success BITOP 命令:对键进行位元运算
-
BITOP 对一个或多个二进制位的字符串key进行位运算,并将运算结果保存到destkey 中
-
operation 表示位元操作符,分类有
- AND:表示逻辑并
- OR:表示逻辑或
- NOT:表示逻辑非
- XOR:表示逻辑异或
-
NOT 只能接收一个key ,别的位元运算符,可以是一个或是多个 :::
STRLEN key
:::success STRLEN 命令:统计键的值的字符串长度
- key 存在且是字符串,统计字符串的长度
- key 不存在,返回0
- key 不是字符串,返回错误 :::
8. 键值对的值的增量
DECR key
:::success DECR 命令:让键的值 -1
- 将key中存储的数字值 -1
- key 不存在,先初始化value 为 0 ,然后 -1
- key 不是数字,将返回一个错误 :::
DECRBY key decrement
:::success DECR 命令:键的值减去减量值
- 将key 的值减去 decrement
- key 不存在,先初始化为0,然后 -1
- key 不是数字,将返回一个错误 :::
INCR key
:::success INCR 命令:让键的值 +1
- 将key中存储的数字值 +1
- key 不存在,先初始化value 为 0 ,然后 +1
- key 不是数字,将返回一个错误 :::
INCRBY key increment
:::success INCRBY 命令:让键的值加上一个增量值
- 将key 的值加上 increment
- key 不存在,先初始化为0,然后 +1
- key 不是数字,将返回一个错误 :::
INCRBYFLOAT key increment
:::success INCRBYFLOAT 命令:让键的值加上浮点数增量值
- key 的值 加上浮点数增量值 increment
- key 不存在,先初始化为0,然后 + increment
- key 不是数字,将返回一个错误 :::
🎈看完了不妨给我点个赞吧,👉你的支持,是我每天更新的动力...
转载自:https://juejin.cn/post/7130631784932311048