《程序猿之Redis缓存实战 · 字符串类型》

ops/2024/10/22 17:34:02/

📢 大家好,我是 【战神刘玉栋】,有10多年的研发经验,致力于前后端技术栈的知识沉淀和传播。 💗

🌻 CSDN入驻不久,希望大家多多支持,后续会继续提升文章质量,绝不滥竽充数,欢迎多多交流。👍

文章目录

    • 字符串(String)

字符串(String)

String 是 Redis 中最简单同时也是最常用的一个数据结构。它是一种二进制安全的数据结构,可以用来存储任何类型的数据比如字符串、整数、浮点数、图片、序列化后的对象。

  • String是Redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value。
  • String类型是二进制安全的。意味着Redis的string可以包含任何数据。比如jpg图片或者序列化的对象。
  • String类型是Redis最基本的数据类型,一个Redis中字符串value最多可以是512M。

【应用场景】

1、需要存储常规数据的场景

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

● 相关命令 : SET、GET。

2、需要计数的场景

● 举例 :用户单位时间的请求数(简单限流可以用到)、页面单位时间的访问数。

● 相关命令 :SET、GET、INCR、DECR 。

3、分布式锁

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

Tips:存在一些缺陷,通常不建议这样实现分布式锁。

【Value 存储对象】

如果value是一个Java对象,例如一个User对象,则可以将对象序列化为JSON字符串后存储。

常用指令

SET key value:设置指定的key值
GET key:获取指定key的值
EXISTS key:判断指定 key 是否存在
DEL key:删除指定的 keyMSET key value [ key value … ]:同时设置一个或者多个键值对
MGET key1 [ key2 ]:获取所有(一个或多个)给定key的值INCR key:将 key 中储存的数字值增一
DECR key:将 key 中储存的数字值减一EXPIRE key seconds:给指定 key 设置过期时间
SETNX key seconds value:设置值并设置过期时间
TTL key:查看剩余过期时间

【数据结构】

String的数据结构为简单动态字符串(Simple Dynamic String,缩写SDS)。是可以修改的字符串,内部结构实现上类似于Java的ArrayList,采用预分配冗余空间的方式来减少内存的频繁分配。

如图中所示,内部为当前字符串实际分配的空间capacity一般要高于实际字符串长度len。当字符串长度小于1M时,扩容都是加倍现有的空间,如果超过1M,扩容时一次只会多扩1M的空间。需要注意的是字符串最大长度为512M。


http://www.ppmy.cn/ops/118938.html

相关文章

c语言200例 067

大家好,欢迎来到无限大的频道 今天给大家带来的是c语言200例 题目要求: 设计一个共用体类型,使其成员包含多种数据类型,根据不同的数据类型,输出不同的结果 要设计一个共用体(union)类型&…

二叉搜索树详解

大家好呀,今天我们一起学习二叉搜索树,二叉搜索树是一种基本的二叉树结构,在原有二叉树的基础上引入了新的特性,它要求每个节点的左子树只包含小于父节点的值,右子树只包含大于父节点的值。这种结构使得二叉搜索树在查…

基于单片机的指纹打卡系统

目录 一、主要功能 二、硬件资源 三、程序编程 四、实现现象 一、主要功能 基于STC89C52RC,采用两个按键替代指纹,一个按键按下,LCD12864显示比对成功,则 采用ULN2003驱动步进电机转动,表示开门,另一个…

数据对接 模板设计模式的使用

与上游系统常有数据对接的需求,对接的接口在入参 返回值 数据处理逻辑上常有一定的规律性,使用模板方法 可以减少样本代码 提高代码效率 这里给出一个示例 同步上游系统的账号 组织(业务方请求接口) 抽象类 import cn.hutool.c…

深入浅出MongoDB(三)

深入浅出MongoDB(三) 文章目录 深入浅出MongoDB(三)复制副本集设置分片分片实例备份与恢复监控ObjectId 复制 复制时将数据同步在多个服务器的过程,提供了数据的冗余备份,在多个服务器上存储数据副本&#…

【STM32开发笔记】移植AI框架TensorFlow到STM32单片机【上篇】

【STM32开发笔记】移植AI框架TensorFlow到STM32单片机【上篇】 一、TFLM是什么?二、TFLM开源项目2.1 下载TFLM源代码2.2 TFLM基准测试说明2.3 TFLM基准测试命令 三、TFLM初步体验3.1 PC上运行Keyword基准测试3.2 PC上运行Person detection基准测试3.3 No module nam…

企微软件:重塑企业沟通与管理的新生态

在数字化转型的浪潮中,企业沟通与管理方式正经历着前所未有的变革。企微软件,作为这一变革中的佼佼者,以其强大的功能、灵活的部署和卓越的用户体验,正逐步成为企业提升运营效率、优化内部沟通、促进团队协作的重要工具。本文将深…

【Wireshark笔记】通过Wireshark检测和分析TCP重传

通过Wireshark检测和分析TCP重传 在网络通信中,TCP重传(TCP Retransmission)是一种非常重要的现象,特别是在分析网络性能和故障排查时。重传数据包会影响网络性能,导致延迟增加,甚至引发网络拥塞等问题。为…