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   <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

posted @   drlsk  阅读(8)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示