redis基本数据类型001String

Redis的String类型是二进制安全的,适合存储各种数据,如图片、序列化对象等。它可以用于缓存、计数、实现分布式锁等场景。String与Hash各有优势,前者内存效率高,后者适合频繁修改或查询部分字段。常用命令包括set、get、append、setnx等。
摘要由CSDN通过智能技术生成

String类型是二进制安全的。意味着Redis的string可以包含任何数据。比如jpg图片或者序列化的对象

一个Redis中字符串value最多可以是512M

应用场景


需要存储常规数据的场景

    缓存 session、token、图片地址、序列化后的对象(相比较于 Hash 存储更节省内存)。

需要计数的场景

  • 举例:用户单位时间的请求数(简单限流可以用到)、页面单位时间的访问数。
  • 比如抖音无限点赞某个视频或者商品,点一下加一次
  • 是否喜欢的文章

分布式锁

     利用 SETNX key value 命令可以实现一个最简易的分布式锁

String 还是 Hash 存储对象数据更好呢?

  • String 存储的是序列化后的对象数据,存放的是整个对象。Hash 是对对象的每个字段单独存储,可以获取部分字段的信息,也可以修改或者添加部分字段,节省网络流量。如果对象中某些字段需要经常变动或者经常需要单独查询对象中的个别字段信息,Hash 就非常适合
  • String 存储相对来说更加节省内存,缓存相同数量的对象数据,String 消耗的内存约是 Hash 的一半。并且,存储具有多层嵌套的对象时也方便很多。如果系统对性能和资源消耗非常敏感的话,String 就非常适合

命令


  set   <key>  <value>  添加键值对

  mset  <key1>  <value1>  <key2>  <value2>  

  append <key>  <value>

          将给定的value追加到原来值得末尾,如果该key不存在,则重新创建一个

 获取字符串长度  strlen <key>

层级

set user:userName  xiao  

 过期时间key

setex  <key>  <过期时间>   <value>  单位秒

 查询

   get   <key> 查询对应键值

   mget  <key1>   <key2>   <key3>

   getrange  <key>  <起始位置>  <结束位置>  算头尾

修改

setrange  <key>   <起始位置>   <value>

  用 <value>  覆写<key> 所储存的字符串值,从<起始位置>开始。

替换

getset <key>  <value>

  以新换旧,设置了新值同时获得就值。

数值增减 

         递增数字        Incr   +1   只能对数字值操作,如果为空,新增值为1

          指定递增        incrby  <key>  <步长>

          递减数字        decr  <key>

          指定递减        decrby  <key>  <步长>

分布式锁

  setnx  <key>  <value>     只有在 key 不存在时设置 key 的值

  msetnx <key1>  <value1>  <key2>  <value2>

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

  set key value [EX seconds][PX milliseconds][NX|XX]

  •     ex 多小秒之后过期
  •     px 毫秒过期
  •     nx 不存在才创建
  •     xx 存在时覆盖
  •     set lock pay ex 10 NX

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值