[001-07-001].第1节:Redis中的BigKey使用分析

news2024/9/25 1:14:48

我的后端学习大纲

我的Redis学习大纲


1、MorKey分析:

1.1.数据准备:

a.大批量往Redis中插入100W数据:

  • 1.Linux Bash下面执行如下命令,是将100万条命令写入到temp目录下的一个临时文件中:
    在这里插入图片描述
  • 2.通过redis提供的管道–prpe命令插入100W大批量数据
    在这里插入图片描述
  • 3.查看Redis中key的数量:
    在这里插入图片描述

100W的数据量直接进行存储过慢,所以采用了这种读取临时文件内容进行存储的形式


1.2.某快递巨头真实生产案例:

a.新闻内容:

在这里插入图片描述

b. key*:你试试100wh花费多少秒遍历查询:

在这里插入图片描述

  • 1.key*:这个命令有致命的弊端,在生产环境中,最好不要使用
  • 2.禁用原因:
    在这里插入图片描述

c. 生产上限制key*/flushdb/flushall等危险命令以防止误删误用:

  • 1.通过配置设置禁用这些命令,redis.conf配置文件中在SEURITY这一项中
  • 2.配置如下:
    在这里插入图片描述

1.3.不适用key*避免卡顿,那应该用什么?

a.scan命令:

使用 Scan命令用于迭代数据库中的数据库键

  • 1.英文地址介绍
  • 2.中文地址介绍
    在这里插入图片描述

b.语法:

在这里插入图片描述
在这里插入图片描述

c.特点:

在这里插入图片描述

d.使用:

在这里插入图片描述


2、BigKey分析:

2.1.多大的算BigKey

参考 《阿里云Redis开发规范》

在这里插入图片描述


2.2.String和二级结构:

1.BigKey一般不是说的key很大,而是value过大

  • 1.string 是value,最大512MB但是 >= 10KB 就是bigkey
  • 2.list、hash、set和zset,value个数超过5000就是bigkey

2.3.BigKey危害:

  • 1.内存不均,集群迁移困难
  • 2.超时删除,大key导致阻塞
  • 3.网络流量阻塞

2.4.BigKey如何产生

  • 1.社交类:明星的粉丝列表逐步递增:
  • 2.汇总统计:某个报表,经年累月的积累

2.5.BigKey如何发现

a.命令:redis-cli --bigkeys

1.好处:

  • 给出每种数据结构Top 1 bigkey,同时给出每种数据类型的键值个数+平均大小

2.不足

  • 想查询大于10kb的所有key,--bigkeys参数就无能为力了,需要用到memory usage来计算每个键值的字节数
redis-cli --bigkeys
redis-cli -h 127.0.0.1 -p 6379 -a 111111 --bigkeys

   
//每隔 100 条 scan 指令就会休眠 0.1s,ops 就不会剧烈抬升,但是扫描的时间会变长
redis-cli -h 127.0.0.1 -p 7001 –-bigkeys -i 0.1

在这里插入图片描述


b.命令:memory usage

1.计算每个键值的字节数

在这里插入图片描述
在这里插入图片描述


2.6.删除bigkey

a.String

  • 1.一般用del,过于庞大使用unlink

b.hash

  • 1.使用hscan每次获取少量field-value,再使用hdel删除每个field
  • 2.语法
    在这里插入图片描述
  • 3.阿里手册:
    在这里插入图片描述

c.list:

  • 1.使用 ltrim 渐进式逐步删除,直到全部删除
  • 2.命令:
    在这里插入图片描述
    在这里插入图片描述
  • 3.阿里手册:
    在这里插入图片描述

d.set

  • 1.使用sscan 每次获取部分元素,再使用 srem 命令删除每个元素
  • 2.命令:
    在这里插入图片描述
  • 3.阿里手册:
    在这里插入图片描述

e.zset

  • 1.使用zscan每次获取部分元素,再使用ZREMRANGEBYRANK 命令删除每个元素
  • 2.命令:
    在这里插入图片描述
  • 3.阿里手册:
    在这里插入图片描述

3.BigKey生产调优:

3.1.阻塞和非阻塞删除命令:

在这里插入图片描述

3.2.优化配置:

在这里插入图片描述

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

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

相关文章

期权时间价值是什么?期权时间价值的影响分析

今天带你了解期权时间价值是什么?期权时间价值的影响分析。期权会随时间的流逝价值递减。这个特点有利月义务仓(卖出开仓),不利于权利仓(买入开仓)。远期合约消耗慢,近期合约消耗快。实值合约消耗慢,虚值合约消耗快。 期权管理时…

企业精英引领未来,大数据讲座照亮中职学子职业航道

为深化校企合作模式,加速产教融合步伐,搭建起职业教育与职场世界的无缝对接桥梁,唯众企业携手武汉市第二职业教育中心(简称“武汉二职”),共同举办了一场别开生面的专题讲座。此次活动不仅促进了企业与学生…

MOS管烧毁的原因

MOS管作为电子设备中常用的功率开关器件,因其高效能、低导通损耗和快速开关速度,广泛应用于各类电源、电机控制和电力电子系统中。然而,在实际应用中,MOS管烧毁的现象时有发生,通常伴随着电路故障或设计问题。 1. 过…

Circuitjs 的选项设置

选项设置位于 “菜单–选项” 下, 包含显示, 定位, 编辑, 颜色等方面的设置项. 显示电流 勾选后, 导线及元件中会有小点在不断移动, 以模拟电流的移动. 小点移动的速度还反应了电流的大小. 移动快说明电流大, 移动慢说明电流小. 另: 小点移动的速度还受右侧栏 “电流速度” …

Nginx location 和 proxy_pass 配置详解

概述 Nginx 配置中 location 和 proxy_pass 指令的不同组合方式及其对请求转发路径的影响。 配置效果 1. location 和 proxy_pass 都带斜杠 / location /api/ {proxy_pass http://127.0.0.1:8080/; }访问地址:www.hw.com/api/upload转发地址:http://…

模型案例:| 网球识别模型

导读 2023年以ChatGPT为代表的大语言模型横空出世,它的出现标志着自然语言处理领域取得了重大突破。它在文本生成、对话系统和语言理解等方面展现出了强大的能力,为人工智能技术的发展开辟了新的可能性。同时,人工智能技术正在进入各种应用领…

minio实现大文件断点续传

最近工作中遇到一个需求,用户需要上传大文件几百M,为了更好的用户体验,需要支持断点续传,秒传,上传进度条等功能。需求如下: 方案有两种: 第一种:前端直接将整个大文件丢到后端&…

嵌入式初学-C语言-数据结构--四

栈 1. 基本概念 栈是一种逻辑结构,是特殊的线性表。特殊在: 只能在固定的一端操作 只要满足上述条件,那么这种特殊的线性表就会呈现一种“后进先出”的逻辑,这种逻辑就被称为栈。栈 在生活中到处可见,比如堆叠的盘子…

蓝牙串口模块JDY-31(基于STM32F103C8T6HAL库)

1.蓝牙模块简介 1.1 蓝牙模块简介 蓝牙串口模块用于单片机和手机之间的通信, JDY-31有6针脚和4针脚版本,6针脚插中间4根即可。 JDY-31是一个从机,HC-05是主从机一体的。HC-05使用的时候需要进行配对,JDY-31使用的时候不需要配对…

千万补贴计划,“健康中国行,陪诊惠民工程——陪诊志愿服务”全面开展

为了全面落实党的二十大报告关于“提高全社会文明程度,完善志愿服务制度和工作体系”和对志愿服务的一系列指示:“志愿服务是社会文明进步的重要标志,是广大志愿者奉献爱心的重要渠道”,“要为志愿服务搭建更多平台,更…

快速掌握AI算法基础:对于AI行业的“共同语言”入门指南

对于非相关专业的AI产品或者想要转型AI产品的同学,算法知识晦涩难懂,如何用很短的时间快速入门,让你在AI领域更加游刃有余。 一、机器学习、深度学习、强化学习的定义 1、机器学习(Machine Learning, ML) 机器学习是…

99%的Java程序员不知道的Java Instrument

Java Instrumentation API 是一个强大的工具,它允许开发人员在运行时修改字节码,而无需重新编译或修改源代码。这对于性能监控、日志记录、安全审计等场景非常有用。本文将深入探讨Java Instrumentation的基础知识,并通过具体的代码示例来展示…

【全网最全】2024年数学建模国赛C题超详细保奖思路+可视化图表+成品论文+matlab/python代码等(后续会更新

您的点赞收藏是我继续更新的最大动力! 一定要点击如下的卡片,那是获取资料的入口! 基于优化模型的农作物的种植策略 摘要 随着农业生产向集约化和智能化方向发展,优化种植策略以最大化经济收益成为当前农业研究中的重要问题。本…

828华为云征文|部署个人博客管理系统 Ghost

828华为云征文|部署个人博客管理系统 Ghost 一、Flexus云服务器X实例介绍1.1 云服务器介绍1.2 应用场景1.3 对比普通ECS 二、Flexus云服务器X实例配置2.1 重置密码2.2 服务器连接2.3 安全组配置 三、部署 Ghost3.1 Ghost 介绍3.2 Docker 环境搭建3.3 Ghost 部署3.4 …

记一次mysql锁等待超时问题

背景 如图所示,一个简单的删除语句,抛出了Lock wait timeout exceeded; try restarting transaction异常,查询这条记录,并尝试修改这条记录,发现修改操作都被hang住了 原因 待补充 解决方法 在mysql里&#xff0c…

营养三餐轻松搭配:健康生活从早餐开始

在如今的快节奏生活中,健康饮食与快捷管用的减调计划,已成为了许多人关注的焦点。合理的三餐搭配不仅能帮助我们控制形体,还能提升生活质量。今天,就让我们一起来学习一套科学的三餐减调套餐,让你在享受美食的同时&…

tuya open-sdk 1.0.0 发布

我们很高兴地宣布本次更新,带来了多项改进和新功能,旨在提升开发体验和效率。以下是具体更新内容: 代码标准化:实现了代码库的格式统一,引入了 clang-format 和 pre-commit 工具进行自动化代码格式调整,确保…

Docker 配置国内镜像源

由于 GFW 的原因,在下载镜像的时候,经常会出现下载失败的情况,此时就可以使用国内的镜像源。 什么是镜像源:简单来说就是某个组织(学校、公司、甚至是个人)先通过某种手段将国外的镜像下载下来,…

AI时代来临,AI基础数据服务行业未来发展有哪些变化

AI基础数据服务是针对人工智能(AI)领域提供的一项服务,它包括数据采集、数据清洗、信息抽取和数据标注等服务。AI基础数据服务旨在为AI算法的训练和优化提供必要的数据支持,为AI算法的性能提供保障。 标贝科技提供专业的数据采集、…

前端自查【知识点】(高概率)2024最新版

HTML 如何理解 HTML 语义化 ? 仅通过标签便能判断内容的类型,特别是区分标题、段落、图片和表格 增加代码可读性(让人更容易读懂)对SEO更加友好 (让搜索引擎更容易读懂) HTML有哪些内联元素和块状元素 ? 内联元素…