redis基本数据类型001String

news2025/1/24 14:34:26

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/632275.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Singer混沌映射与莱维飞行改进灰狼算法

目录 一、灰狼算法 二、改进策略 2.1 混沌初始化种群 2.2 非线性收敛因子 三、引入莱维飞行 四、运行结果 从改进运行结果来看&#xff0c;效果非常好&#xff0c;在、、等极易陷入局部最优的测试函数上都取到了最优值&#xff0c;收敛速度也得到极大提升。 一、灰狼算法…

数学模型:Python实现整数规划

上篇文章&#xff1a;线性规划 文章摘要&#xff1a;整数规划的Python实现。 参考书籍&#xff1a;数学建模算法与应用(第3版)司守奎 孙玺菁。 PS&#xff1a;只涉及了具体实现并不涉及底层理论。学习底层理论以及底层理论实现&#xff1a;可以参考1.最优化模型与算法——基于P…

谷粒商城学习笔记(三):简介-项目微服务划分图

目录 一、微服务划分图二、前后端分离三、网关四、业务微服务群五、第三方服务六、服务治理七、状态监控八、数据层 一、微服务划分图 二、前后端分离 这个项目是基于前后端分离的开发&#xff0c;需要创建一些前端项目&#xff0c;admin-vue是面向工作人员的后台管理系统&…

论文笔记--SimCSE: Simple Contrastive Learning of Sentence Embeddings

论文笔记--SimCSE: Simple Contrastive Learning of Sentence Embeddings 1. 文章简介2. 文章概括3 文章重点技术3.1 对比学习 Contrastive Learning3.2 Unsupervised SimCSE3.3 Supervised SimCSE3.4 Anisotropy3.5 Alignment and Uniformity 4. 文章亮点5. 原文传送门6. Refe…

Spring中Aop实现日志功能

文章目录 前言1.环境搭建2.设计日志记录表3.aop需要引入aspectj依赖4.日志实体类设计5.自定义日志BusiLog注解6.定义日志切面6.1 此处只使用了环绕通知6.2 Aspect中有5种通知 7.业务中使用注解8.测试8.1 测试查询8.2 测试删除 前言 上篇分享了jdk动态代理以及cglib代理&#x…

SQL注入总结

Sql注入定义&#xff1a; 就是通过把sql命令插入到web表单提交或输入域名或页面请求的查询字符串&#xff0c;最终达到欺骗服务器执行的sql命令的目的。 sql注入分类&#xff1a; 基于联合查询 基于错误回显 基于盲注&#xff0c;分时间盲注和布尔型的盲注 基于user-agen…

NIN(Network In Network)

目录 论文信息摘要批注 主要工作1. MLPCONV结构1.1为什么11卷积层可以代替MLP层1.2 批注2. Global Average Pooling(GAP)3、NIN网络结构NIN论文解读及个人理解NIN网络的代码实现&#xff08;pytorch&#xff09; 参考文献 论文信息 论文名称&#xff1a;Network In Network 论…

SQL注入—报错注入

0x00 背景 SQL注入长期位于OWASP TOP10 榜首&#xff0c;对Web 安全有着很大的影响&#xff0c;黑客们往往在注入过程中根据错误回显进行判断&#xff0c;但是现在非常多的Web程序没有正常的错误回显&#xff0c;这样就需要我们利用报错注入的方式来进行SQL注入了。这篇文章会讲…

SpringBoot集成WebSocket的两种方式

本站在2014年4月时曾全面的学习HTML5的技术&#xff0c;特写过HTML5的WebSocket示例&#xff0c;当时使用的Servlet3.0规范中的API&#xff0c;需要Tomcat7的支持&#xff08;貌似在Tomcat6的后期维护版本也增加了WebSocket的支持&#xff09;&#xff0c;早在当初该示例还是本…

SVN注册下载安装以及使用一气呵成

本博客根据SVNbucket官方视频学习制作的,这里记录本人操作的记录 视频链接: https://www.bilibili.com/video/BV1k4411m7mP?vd_sourcea4c65e14d1ff11ea858cadc164fbb59e 一 .SVN的介绍 1.SVN是什么 查阅资料可以知道 ,这是一个开放源代码的版本控制系统,管理着随时间改变的…

docsify项目部署(华为云+宝塔+centos+docker+nginx)踩坑指南

docsify部署&#xff08;华为云宝塔centosdockernginx&#xff09; &#x1f5e1;1、安装docker 首先在服务器中安装docker sudo yum install -y yum-utils由于之前我的python默认版本升级到了python3&#xff0c;但yum执行使用的是python2&#xff0c;就遇到报错 File &quo…

Hbase架构

HBase 系统遵循 Master/Salve 架构&#xff0c;由三种不同类型的组件组成&#xff1a; client 提供了访问hbase的接口提供cache缓存提高访问hbase的效率 , 比如region的信息 Zookeeper保证任何时候&#xff0c;集群中只有一个 Master&#xff1b;存储所有 Region 的寻址入口&…

基于深度学习的高精度工人阶梯检测识别系统(PyTorch+Pyside6+YOLOv5模型)

摘要&#xff1a;基于深度学习的高精度工人阶梯检测识别系统可用于日常生活中或野外来检测与定位工人阶梯目标&#xff0c;利用深度学习算法可实现图片、视频、摄像头等方式的工人阶梯目标检测识别&#xff0c;另外支持结果可视化与图片或视频检测结果的导出。本系统采用YOLOv5…

Verilog基础:标识符的层次名引用

相关文章 Verilog基础&#xff1a;表达式位宽的确定&#xff08;位宽拓展&#xff09; Verilog基础&#xff1a;表达式符号的确定 Verilog基础&#xff1a;数据类型 Verilog基础&#xff1a;位宽拓展和有符号数运算的联系 Verilog基础&#xff1a;case、casex、ca…

Java8 Stream详解及创建流方法使用示例(二)

本章介绍Stream 创建流的操作&#xff1a;创建流指的是将一个集合或其他数据源转换为 Stream 流对象的过程。通常情况下&#xff0c;我们可以使用 Stream 类的静态方法来创建流对象&#xff0c;如 Stream.of()、Collections.stream() 等。这些方法将返回一个 Stream 流对象&…

【模块三:职业成长】35|模块导读:回过头来看,你觉得架构师到底是做什么的?

你好&#xff0c;我是郭东白。我们今天就正式进入模块三的学习了。 我们在开篇词里面介绍了&#xff0c;模块三的目的是向你介绍架构师的能力维度&#xff0c;以及获取这些能力的方法。既然是总结架构师成长的课程&#xff0c;那么“什么是架构师”就是一个绕不过去的话题。 …

操作系统-内存管理-虚拟内存管理

目录 一、虚拟内存定义和特征 二、请求分页管理 页表机制 缺页中断机构 地址变换机构 三、页面置换算法 3.1最佳置换算法(OPT) 3.2先进先出置换算法(FIFO) 3.3最近最久未使用置换算法(LRU) 3.4时钟置换算法(CLOCK) 3.4.1简单时钟置换算法 3.4.2改进型时钟置换算法 四、…

数据库—mysql、数据库编程(API)

1. Linux平台准备 &#xff08;1&#xff09;安装SDK开发包的命令 sudo apt-get install libmysqlclient-dev &#xff08;2&#xff09;编译时需要链接的库:-lmysqlclient 2. mysql 的初始化和清理 #include <mysql/mysql.h> MYSQL mysql1; //创建句柄 mysql_init(&…

springboot+java高校图书馆图书借阅挂失崔还系统

功本次设计任务是要设计一个图书借阅系统&#xff0c;通过这个系统能够满足图书借阅系统的管理及用户的图书借阅功能。系统的主要功能包括&#xff1a;主页&#xff0c;个人中心&#xff0c;用户管理&#xff0c;借阅证件管理&#xff0c;挂失信息管理&#xff0c;图书信息管理…

华为OD机试真题 JavaScript 实现【快速寻找某字符】【牛客练习题】

一、题目描述 给定一个一个目标值 target和一个 元素升序的无重复数字字符串 &#xff0c;写一个函数搜索 字符串 中的 target&#xff0c;如果目标值存在返回下标&#xff08;下标从 0 开始&#xff09;&#xff0c;否则返回 -1。 二、输入描述 第一行输入一个目标值target…