Redis——BigKey问题

news2024/12/23 10:45:11

目录

MoreKey案例

测试数据

如何向redis数据库中一次性的插入100W条数据

如何将 100W条数据一次性写入redis数据库中

遍历百万、千万级别数据能否使用keys *?

生产上如何限制keys *、flushdb、flushall等危险命令?

不使用keys *使用什么遍历?

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

BigKey案例

多大算Big?

如何发现BigKey?

--Bigkeys命令

memory usage

 如何删除BigKey?

BigKey生产调优

MoreKey案例

测试数据

如何向redis数据库中一次性的插入100W条数据

生成100W条redis批量设置kv的语句(key=kn,value=vn)写入到/tmp目录下的redisTest.txt文件中

for((i=1;i<=100*10000;i++)); do echo "set k$i v$i" >> /tmp/redisTest.txt ;done;

如何将 100W条数据一次性写入redis数据库中

利用redis提供的管道命令 -pipe插入100W条数据

cat /tmp/redisTest.txt | redis-cli -h 本地主机 -p 端口号 -a 密码 --pipe

遍历百万、千万级别数据能否使用keys *?

key * 这个指令有致命的弊端,在实际环境中最好不要使用

keys*这个指令相当于一次性吐出所有key,由于redis是单线程的,所有的操作都是原子性的,keys算法属于遍历算法,时间复杂度是O(n),在实际生产环境中如果执行该指令,可能会导致redis服务卡顿,更严重的可能会导致redis缓存雪崩或者数据库宕机宕机

生产上如何限制keys *、flushdb、flushall等危险命令?

通过修改redis.conf配置文件

 (ps:记得重启redis)

(pps:如果aof及rdb文件中包含了禁用掉的命令,redis会启动失败,需要删除对应aof及rdb文件)

不使用keys *使用什么遍历?

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

 语法:

SCAN cursor [MATCH pattern] [COUNT count]

-cursor:游标

-pattern:匹配的模式

-count:指定从数据集中返回多少元素,默认为10

BigKey案例

大key问题本质上是key对应的value大

多大算Big?

--String是value,最大512M但是超过10kb就是BigKey

--list、set、hash、zset个数超过5000就算是BigKey

如何发现BigKey?

--Bigkeys命令

redis-cli -h 本地主机名 -p 端口号 -a 密码  --bigkeys

给出每种数据结构Top 1 bigkey,同时给出每种数据类型的键值个数+平均大小,但不能查询到大于10kb的所有key

memory usage

 memory usage key

 如何删除BigKey?

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

BigKey生产调优

redis.conf优化配置

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

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

相关文章

Spring学习小结_2

文章目录 篇112 Bean的生命周期Bean实例属性填充循环引用Aware接口Spring IoC 整体流程总结 13 Spring整合MyBatis剖析 篇1 Spring学习小结_1 https://blog.csdn.net/m0_58730471/article/details/130075657?spm1001.2014.3001.5501 12 Bean的生命周期 Spring Bean的生命周期…

当下火爆出圈的 ChatGPT ,你了解多少?

ChatGPT 是什么&#xff1f;ChatGPT 有什么特点&#xff1f;ChatGPT 可以做什么&#xff1f;ChatGPT 初体验 当下 AI 聊天程序 ChatGPT 可谓如火如荼&#xff0c;因它给出的答案通常更为合理且更有人情味&#xff0c;全网讨论度非常高。 ChatGPT 是什么&#xff1f; ChatGPT 是…

仪表板展示 | X-lab开放实验室GitHub开源项目洞察大屏

背景介绍 X-lab开放实验室是一个开源软件产业开放式创新的共同体&#xff0c;由来自国内外著名高校、创业公司、部分互联网与IT企业的专家学者与工程师所构成&#xff0c;目前已在包括开源治理标准制定、开源社区行为度量与分析、开源社区流程自动化、开源全域数据治理与洞察等…

CSS - 实现容器溢出后隐藏滚动条并且能正常滚动,盒子高度超出后不显示滚动条但是能正常滚动(附带详细示例,完美解决方案)

前言 网上很多都会使用 JS 来实现&#xff0c;其实纯 CSS 就能完成。 本文实现了 当外层容器盒子溢出时&#xff0c;去掉滚动条的显示&#xff08;但能正常滚动&#xff09;&#xff0c;适用于 Vue、React 等全部前端项目&#xff0c; 您可以直接复制示例源码&#xff0c;运行…

Android性能优化—ViewPagers + Fragment缓存优化

大家看标题&#xff0c;可能会有点儿懵&#xff0c;什么是ViewPagers&#xff0c;因为在很久之前&#xff0c;我们使用的都是ViewPager&#xff0c;但是现在更多的是在用ViewPager2&#xff0c;因此用ViewPagers&#xff08;ViewPager、ViewPager2&#xff09;来代替两者&#…

第10届蓝桥杯省赛真题剖析-2019年3月24日Scratch编程初中级组

[导读]&#xff1a;超平老师的《Scratch蓝桥杯真题解析100讲》已经全部完成&#xff0c;后续会不定期解读蓝桥杯真题&#xff0c;这是Scratch蓝桥杯真题解析第126讲。 第10届蓝桥杯省赛&#xff0c;这是2019年3月24日举办的省赛Scratch考试真题&#xff0c;比赛是在线下举办的…

分组双轴图:揭示数据中的关联性和趋势变化

简介 分组双轴图是一种数据可视化图表&#xff0c;指有多个&#xff08;≥2&#xff09;Y轴的数据图表&#xff0c;多为分组柱状图折线图的结合&#xff0c;图表显示更为直观&#xff0c;可以很好地展示不同指标之间的关系&#xff0c;帮助用户更好地理解数据&#xff0c;做出…

深度学习 - 44.MMOE 与 Gate 之多目标学习

目录 一.引言 二.摘要 Abstract 三.介绍 Introduction 四.相关工作 RELATED WORK 1.DNN 中的多任务学习 2.SubNet 集成与 Expert 混合 3.多任务学习应用 五.建模方法 MODELING APPROACHES 1.Shared-bottom Multi-task Model 2.Mixture-of-Experts 3.Multi-gate Mixt…

美团B端“加速度”

配图来自Canva可画 一提起本地生活服务&#xff0c;相信绝大多数人并不会感到陌生&#xff0c;人们经常使用的餐饮外卖&#xff0c;便是本地生活服务的重要组成部分之一。而在消费者线上消费习惯逐渐养成、本地生活服务需求日渐增长等多方因素的共同影响下&#xff0c;本地生活…

BUUCTF pwn——picoctf_2018_rop chain

checksec && 运行 ida main函数调用vuln函数 名为vuln的函数存在溢出 名为flag的函数&#xff0c;通过校验可直接getflag 具体校验过程看图&#xff0c;只有win1和win2均为真&#xff0c;并且a1的值等于0xDEADBAAD才能getflag 变量win2的真假性通过win_function2函…

三个练手的软件测试实战项目(附全套视频跟源码)偷偷卷死他们

项目一&#xff1a;12306抢票项目 项目测试目的 学会Selenium定位web元素的方法 熟练浏览器调试工具使用 项目主体步骤 1&#xff09; 人工走一遍流程&#xff0c;对自动化的流程心中有数 2&#xff09; 按步骤拆分&#xff0c;然后对每一个小步骤编写自动化脚本 3&#xff…

FreeRTOS(三)——应用开发(一)

文章目录 0x01 FreeRTOS文件夹FreeRTOSConfig.h文件内容上面定义的宏决定FreeRTOS.h文件中的定义0x02 创建任务创建静态任务过程configSUPPORT_STATIC_ALLOCATION创建动态任务过程configSUPPORT_DYNAMIC_ALLOCATION 0x03 FreeRTOS启动流程启动流程概述 0x04 任务管理任务调度器…

python基于轻量级YOLOv5的生猪检测+状态识别分析系统

在我之前的一篇文章中有过生猪检测盒状态识别相关的项目实践&#xff0c;如下&#xff1a; 《Python基于yolov4实现生猪检测及状态识》 感兴趣的话可以自行移步阅读&#xff0c;这里主要是基于同样的技术思想&#xff0c;将原始体积较大的yolov4模型做无缝替换&#xff0c;使…

关于python异常的总结

Python异常是在程序执行时发生的错误&#xff0c;可能会导致程序终止运行。 在Python中&#xff0c;异常处理是一种机制&#xff0c;它允许开发人员在程序发生异常时捕获、处理和报告这些异常&#xff0c;以便程序可以继续运行或在出现异常时进行优雅的退出。 在Python中&…

大数据之入门开发流程介绍

目录&#xff1a; 1、大数据的开发大致流程2、技术导图 1、大数据的开发大致流程 1.1 数据收集 大数据处理的第一步是数据的收集。现在的中大型项目通常采用微服务架构进行分布式部署&#xff0c;所以数据的采集需要在多台服务器上进行&#xff0c;且采集过程不能影响正常业务的…

Domino的线程ID和操作系统的进程ID对应关系

大家好&#xff0c;才是真的好。 很多时候&#xff0c;在Domino中运行的任务出现一些错误提示&#xff0c;如果能够准确定位到和提示信息相关任务时&#xff0c;对我们排错有着巨大的帮助&#xff0c;也能节省很多时间。 例如&#xff0c;我们可能在Domino实时控制台上看到以…

RedHat8配置本地YUM源

目录&#xff1a; RedHat8配置本地YUM源1、创建规则文件2、创建挂载点3、挂载ISO镜像(1).将iso镜像连接到虚拟机再进行挂载a.将ISO镜像连接虚拟机b.挂载镜像到挂载点c.使用df -h查看当前系统设备挂载情况 (2)将iso镜像上传至服务器再进行挂载a.将ISO镜像通过ftp工具上传b.挂载镜…

Spring Boot——优雅的参数校验

&#x1f388; 概述 当我们想提供可靠的 API 接口&#xff0c;对参数的校验&#xff0c;以保证最终数据入库的正确性&#xff0c;是 必不可少 的活。比如下图就是 我们一个项目里 新增一个菜单校验 参数的函数&#xff0c;写了一大堆的 if else 进行校验&#xff0c;或者基础校…

C#简单向:textbox添加提示内容

项目场景&#xff1a; 向C#窗体项目的textbox内添加提示内容&#xff0c;如下图所示效果&#xff1a; 具体实现&#xff1a; 首先&#xff1a; 1.到所要操作的文件(/xx.cs/xx.Designer.cs),这里我是到Form3.cs/Form3.Designer.cs文件 2.找到你所要操作的textBox&#xff0c…

数据结构与算法(一):基础数据结构(算法概念、数组、链表、栈、队列)

算法概念、数组、链表、栈、队列 判断一个数是否是2的N次方&#xff1f; N & (N-1) 0 (N > 0)算题&#xff1a; 力扣 https://leetcode.cn/POJ http://poj.org/ 算法 算法概念 算法代表&#xff1a; 高效率和低存储 内存占用小、CPU占用小、运算速度快 算法的高…