(Redis):string介绍及应用

2023-11-02

目录

数据存储类型介绍

string

redis 数据存储格式

string 类型

string 类型数据的基本操作

单数据操作与多数据操作的选择

string 类型数据的扩展操作

string 作为数值操作

string 类型数据操作的注意事项

数据存储类型介绍

  • 作为缓存使用

原始业务功能设计

  • 秒杀
  • 618活动
  • 双11活动
  • 排队购票

运营平台监控到的突发高频访问数据

  • 突发时政要闻,被强势关注围观

高频、复杂的统计数据

  • 在线人数
  • 投票排行榜

附加功能

  • 系统功能优化或升级
  • 单服务器升级集群
  • Session 管理
  • Token 管理

string

redis 数据存储格式

  • redis 自身是一个 Map,其中所有的数据都是采用 key : value 的形式存储
  • 数据类型指的是存储的数据的类型,也就是 value 部分的类型,key 部分永远都是字符串

string 类型

  • 存储的数据:单个数据,最简单的数据存储类型,也是最常用的数据存储类型
  • 存储数据的格式:一个存储空间保存一个数据
  • 存储内容:通常使用字符串,如果字符串以整数的形式展示,可以作为数字操作使用

string 类型数据的基本操作

添加/修改数据
set key value
获取数据
get key
删除数据
del key
添加/修改多个数据
mset key1 value1 key2 value2 …
获取多个数据
mget key1 key2 …
获取数据字符个数(字符串长度)
strlen key
追加信息到原始信息后部(如果原始信息存在就追加,否则新建)
append key value

单数据操作与多数据操作的选择

string 类型数据的扩展操作

业务场景1

  • 大型企业级应用中,分表操作是基本操作,使用多张表存储同类型数据,但是对应的主键 id 必须保证统一性,不能重复。Oracle 数据库具有 sequence 设定,可以解决该问题,但是 MySQL数据库并不具有类似的机制,那么如何解决?

  • 解决方案
    • 设置数值数据增加指定范围的值
incr key
incrby key increment
incrbyfloat key increment
  • 设置数值数据减少指定范围的值
decr key
decrby key increment

string 作为数值操作

  • string在redis内部存储默认就是一个字符串,当遇到增减类操作incr,decr时会转成数值型进行计算
  • redis所有的操作都是原子性的采用单线程处理所有业务,命令是一个一个执行的,因此无需考虑并发带来的数据影响。
  • 注意:按数值进行操作的数据,如果原始数据不能转成数值,或超越了redis 数值上限范围,将报错。
  • 【注】
    • redis用于控制数据库表主键id,为数据库表主键提供生成策略,保障数据库表的主键唯一性
    • 此方案适用于所有数据库,且支持数据库集群
业务场景2
  • “最强女生”启动海选投票,只能通过微信投票,每个微信号每 4 小时只能投1票。电商商家开启热门商品推荐,热门商品不能一直处于热门期,每种商品热门期维持3天,3天后自动取消热门。新闻网站会出现热点新闻,热点新闻最大的特征是时效性,如何自动控制热点新闻的时效性。

  • 解决方案
    • 设置数据具有指定的生命周期
setex key seconds value
psetex key milliseconds value
  • redis 控制数据的生命周期,通过数据是否失效控制业务行为,适用于所有具有时效性限定控制的操作

string 类型数据操作的注意事项

业务场景3

  • 主页高频访问信息显示控制,例如新浪微博大V主页显示粉丝数与微博数量

  • 解决方案
    • 在redis中为大V用户设定用户信息,以用户主键和属性值作为key,后台设定定时刷新策略即可

  • 在redis中以json格式存储大V用户信息,定时刷新(也可以使用hash类型)

  • redis应用于各种结构型和非结构型高热度数据访问加速

key 的设置约定

  • 数据库中的热点数据key命名惯例

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

(Redis):string介绍及应用 的相关文章

随机推荐

  • OmniRing智能戒指:手指上的智能健康管理

    随着电子元件的小型化 智能戒指已经获得了极大的普及 这些技术先进的戒指将时尚与功能相结合 为用户提供触手可及的各种功能 智能戒指可用于各种目的 包括健身跟踪 移动通知 非接触式支付 甚至控制智能家居设备 尽管体积小 但这些设备通常配备传感器
  • LRU(最近最少使用页面置换算法)淘汰算法

    什么是LRU算法 LRU是Least Recently Used的缩写 即最近最少使用页面置换算法 是为虚拟页式存储管理服务的 关于操作系统的内存管理 如何节省利用容量不大的内存为最多的进程提供资源 一直是研究的重要方向 而内存的虚拟存储管
  • verilog实现串口通信发送到数码管

    verilog实现串口通信 实现PC与FPGA的串口通信 按键数码管显示 时钟频率50MHZ 波特率115200 可以修改调整 串口输入数据 发送到数码管上进行显示 在vivado建立工程并综合 顶层模块代码如下 timescale 1ns
  • nginx配置vue项目添加访问前缀

    文章目录 前言 实现需求 Nginx配置访问前端 正确配置 注意点 alias的含义 举个栗子 静态文件及js等404错误 前言 最近 在搞一个SASS系统 将原有的单服务 每次卖出一套啥软件就需要部署一套环境 使得运维人员有些捉襟见肘 产
  • Android开源项目:捕鱼达人游戏源代码

    Android开源项目 捕鱼达人游戏源代码 这是一个Android上的开源项目 捕鱼达人游戏源代码 github上的地址链接是 https github com zhangphil Android BuYuDaRenGame git 内容和
  • 详解YAML语法及占位符语法

    一 设计一个YAML数据结构 首先我们提出这样一个需求 1 一个家庭有爸爸 妈妈 孩子 2 这个家庭有一个名字 family name 叫做 happy family 3 爸爸有名字 name 和年龄 age 两个属性 4 妈妈有两个别名
  • Windows中的时间(SYSTEMTIME和FILETIME)

    上一篇中介绍了C运行库中的时间处理函数 这一篇介绍Windows SDk中提供的时间函数 两种时间系统之间没有本质区别 事实上CRT时间是用Windows时间实现的 当然这是说的VC实现 同样提供本地时间和UTC时间之间的转换 不过CRT中
  • TP5 FIND_IN_SET和数组组合成查询条件

    直接上代码 我的是TP5 0 22版本 map exp Db raw FIND IN SET 字段所包含的值 字段 map status 1
  • vscode使用editorconfig插件以及.editorconfig配置文件说明(统一代码风格工具——editorConfig)

    文档 EditorConfig for VS Code EditorConfig官网 微软说明 editorconfig vscode github 简介 EditorConfig和Prettier一样 都是用来配置格式化你的代码的 这个格
  • Linux环境下安装的Oracle,客户端连接数据库缓慢

    在linux环境下安装的Oracle 客户端每次连接数据库时 都需要进行DNS查询 根据IP查询主机名 但由于DNS服务器不可达 故存在等待超时 导致连接数据库过慢 解决方案 注释掉server上 etc resolv conf中所有行
  • ftp下载文件失败get: Access failed: 550 Failed to open file. (t1.log)

    get Access failed 550 Failed to open file t1 log 原因是被SELinux安全访问控制策略限制了 科普 SELinux Security Enhanced Linux 是美国国家安全局 NAS
  • 虚拟化技术之 VMware Workstation教程(一)

    目录 第一章 虚拟化技术 1 1虚拟化技术简介 1 2主流的虚拟化厂商及产品 第二章 虚拟机的安装 2 1安装VMwareWorkstation 12 2 2物理机所需硬件 2 3在虚拟机中安装Windows 7操作系统 第三章 虚拟机的网
  • 什么是严格模式和混杂模式?如何区分?

    一 什么是严格模式和混杂模式 严格模式 标准模式 浏览器按照W3C标准解析代码 混杂模式 怪异模式 兼容模式 浏览器按照自己的方式解析代码 DOCTYPE的作用 lt DOCTYPE gt 声明叫做文件类型定义 DTD 声明的作用为了告诉浏
  • 【Go】锁相关

    文章目录 Mutex锁 mutex源码分析 Lock UnLock mutex两种运行模式 mutex normal 正常模式 自旋 mutex starvation 饥饿模式 锁的底层实现类型 RWMutex RWMutex 实现 其他共
  • Chat GPT是什么,初学者怎么使用Chat GPT,需要注意些什么

    目录 Chat GPT是什么 初学者怎么使用Chat GPT 使用Chat GPT需要注意什么 一些简单的prompt示例 Chat GPT是什么 Chat GPT是由OpenAI开发的一种大型语言模型 它基于GPT Generative
  • 超好用的图床-生成图片在线链接

    超好用的图床 最近一直在写博客 但是经常会遇到上传图片的问题 得生成图片的在线链接 也试过各种图床 推荐两个我自己觉得用起来比较舒服方便的图床网站吧 文章目录 超好用的图床 1 路过图床 2 大名鼎鼎的 SM MS 后话 1 路过图床 这个
  • 这次总结的有点多(python)

    关键字不定长参数 可以接收多个未定义参数的关键字赋值 关键字不定长参数的格式 def 函数名 kwargs 函数体 TypeError a is an invalid keyword argument for print def func
  • java中代码和注释缩进_java编码规范_缩进和注释

    1 缩进排版 Indentation 4个空格常被作为缩进排版的一个单位 缩进的确切解释并未详细指定 空格vs 制表符 一个制表符等于n个空格 视具体的编辑器而定 Eclipse默认一个制表符为4个字符 3 1行长度 Line Length
  • ldconfig用法

    1 ldconfig简介 参考 http man linuxde net ldconfiglinux中ldconfig的使用介绍 chenzixun0的博客 CSDN博客 主要是在默认搜寻目录 lib和 usr lib以及动态库配置文件 e
  • (Redis):string介绍及应用

    目录 数据存储类型介绍 string redis 数据存储格式 string 类型 string 类型数据的基本操作 单数据操作与多数据操作的选择 string 类型数据的扩展操作 string 作为数值操作 string 类型数据操作的注