redis基本数据类型001String

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

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

应用场景


需要存储常规数据的场景

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

需要计数的场景

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

分布式锁

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

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

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

命令


  set       添加键值对

  mset          

  append  

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

 获取字符串长度  strlen

层级

set user:userName  xiao  

redis基本数据类型001String_第1张图片

 过期时间key

setex    <过期时间>     单位秒

 查询

   get    查询对应键值

   mget        

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

修改

setrange     <起始位置>   

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

替换

getset  

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

数值增减 

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

          指定递增        incrby    <步长>

          递减数字        decr  

          指定递减        decrby    <步长>

分布式锁

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

  msetnx      

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

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

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

你可能感兴趣的:(redis,redis,缓存,java)