美文网首页
String 数据类型及常用的命令

String 数据类型及常用的命令

作者: flyjar | 来源:发表于2022-07-23 07:38 被阅读0次
    简介string类型是Redis最基本的数据类型

    string 数据结构是简单的key-value类型,value其不仅是string,也可以是数字,是包含很多种类型的特殊
    类型,
    string类型是二进制安全的。意思是redis的string可以包含任何数据。 比如序列化的对象进行存储,比如
    一张图片进行二进制存储,比如一个简单的字符串,数值等等。

    String命令

    赋值语法:

    • SET KEY_NAME VALUE: (说明:多次设置name会覆盖) (Redis SET 命令用于设置给定 key 的值。如果 key 已经存储值, SET 就覆写旧值,且无视类型)
    • SETNX key1 value: (not exist) 如果key1不存在,则设值 并返回1。如果key1存在,则不设值并返回0; (解决分布式锁 方案之一,只有在 key 不存在时设置 key 的值。Setnx(SET if Not eXists) 命令在指定的 key 不存在时,为 key 设置指定的值)
    • SETEX key1 10 lx : (expired) 设置key1的值为lx,过期时间为10秒,10秒后key1清除(key也清除)
    • SETRANGE key range value: 替换字符串 setrange key1 10 "test"

    取值语法:

    • GET KEY_NAME :Redis GET命令用于获取指定 key 的值。如果 key 不存在,返回 nil 。如果key 储存的值 不是字符串类型,返回一个错误。

    • GETRANGE key start end :用于获取存储在指定 key 中字符串的子字符串。字符串的截取范围由 start 和 end 两个偏移量决定(包括 start 和 end 在内)

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

    • GETSET KEY_NAME VALUE :Getset 命令用于设置指定 key 的值,并返回 key 的旧值,当 key 不存在时,返回 nil

    • STRLEN key :返回 key 所储存的字符串值的长度
      删值语法:

    • DEL KEY_Name :删除指定的KEY,如果存在,返回值数字类型。
      批量语法

    • 批量写:MSET k1 v1 k2 v2 ... 一次性写入多个值

    • 批量读:MGET k1 k2 k3

    • GETSET name value :一次性设值和读取(返回旧值,写上新值)
      自增/自减:

    • INCR KEY_Name :Incr 命令将 key 中储存的数字值增1。如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCR 操作

    • INCRBY KEY_Name 增量值: Incrby 命令将 key 中储存的数字加上指定的增量值

    • DECR KEY_NAME 或 DECYBY KEY_NAME 减值 :DECR 命令将 key 中储存的数字减1 (注意这些 key 对应的必须是数字类型字符串,否则会出错)

    • 字符串拼接:APPEND KEY_NAME VALUE :Append 命令用于为指定的 key 追加至未尾,如果不存在,为其赋值

    • 字符串长度 :STRLEN key

    应用场景
    • 1、String通常用于保存单个字符串或JSON字符串数据
    • 2、因String是二进制安全的,所以你完全可以把一个图片文件的内容作为字符串来存储
    • 3、计数器(常规key-value缓存应用。常规计数: 微博数, 粉丝数)

    INCR等指令本身就具有原子操作的特性,所以我们完全可以利用redis的INCR、INCRBY、DECR、 DECRBY等指令来实现原子计数的效果。假如,在某种场景下有3个客户端同时读取了mynum的值
    (值为2),然后对其同时进行了加1的操作,那么,最后mynum的值一定是5。 不少网站都利用
    redis的这个特性来实现业务上的统计计数需求

    相关文章

      网友评论

          本文标题:String 数据类型及常用的命令

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