Redis(五)

news2025/6/21 13:51:14

文章目录

  • 一、Redis键值设计
    • (一)key结构设计
    • (二)拒绝BigKey
      • 什么是BigKey?
      • BigKey的危害
      • 如何发现BigKey
    • (一)恰当的数据类型
  • 二、批处理优化
  • 三、服务端优化
  • 四、集群最佳实践


一、Redis键值设计

(一)key结构设计

  • key的基本格式:[业务名称]:[数据名]:[id]
  • 长度不超过44字节
  • 不包含特殊字符

key是字符串类型,底层编码包含int,embstr和raw三种,embstr在小于44字节使用,采用连续内存空间,内存占用更小
在这里插入图片描述

(二)拒绝BigKey

什么是BigKey?

BigKey通常以Key的大小和Key中成员的数量来综合判定,例如:·Key本身的数据量过大:一个String类型的Key,它的值为5MB。

  • Key中的成员数过多:一个ZSET类型的Key,它的成员数量为10,000个。
  • Key中成员的数据量过大:一个Hash类型的Key,它的成员数量虽然只有1,000个但这些成员的Value(值)总大小为100 MB。

推荐值:

  • 单个key的value小于10KB
  • 对于集合类型的key,建议元素数量小于1000

BigKey的危害

  • 网络阻塞
    对BigKey执行读请求时,少量的QPS就可能导致带宽使用率被占满,导致Redis实例,乃至所在物理机变慢

  • 数据倾斜
    BigKey所在的Redis实例内存使用率远超其他实例,无法使数据分片的内存资源达到均衡

  • Redis阻塞
    对元素较多的hash、list、zset等做运算会耗时较旧,使主线程被阻塞

  • CPU压力
    对BigKey的数据序列化和反序列化会导致CPU的使用率飙升,影响Redis实例和本机其它应用

如何发现BigKey

  • redis-cli --bigkeys
    利用redis-cli提供的–bigkeys参数,可以遍历分析所有key,并返回Key的整体统计信息与每个数据的Top1的big key

  • scan扫描
    自己编程,利用scan扫描Redis中的所有key,利用strlen、hlen等命令判断key的长度(此处不建议使用MEMORY USAGE )

  • 第三方工具
    利用第三方工具,如Redis-Rdb-Tools 分析RDB快照文件,全面分析内存使用情况

  • 网络监控
    自定义工具,监控进出Redis的网络数据,超出预警值时主动告警

(一)恰当的数据类型

二、批处理优化

三、服务端优化

四、集群最佳实践

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

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

相关文章

区块链技术在供应链管理中的创新应用

区块链技术以其独特的不可篡改和透明性特点,正在逐步改变供应链管理的传统模式。本文将探讨区块链技术在供应链管理中的创新应用及其带来的效益。 区块链技术的出现为许多行业带来了创新的可能,其中之一就是供应链管理。通过区块链技术,企业可…

记录项目运行起来后在项目的控制台,直接展示抽中奖品的弹框

首先运行项目或者打开线上项目, 在控制台或者项目代码中找到调用出这个弹框的方法, 在控制台直接vm.这个方法() 来调用 可以看到弹框出来了

MyBatis基础之注解与SQL 语句构建器

文章目录 注解实现简单增删改查SQL 语句构建器SelectProvider举例 注解实现简单增删改查 在 MyBatis 的核心配置文件中&#xff0c;你需要配置的不是 mapper 映射文件&#xff0c;而是 Mapper 接口所在的包路径。 <!-- 在配置文件中 关联包下的 接口类--> <mappers&…

【STM32单片机】宠物定时喂食器设计

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用STM32F103C8T6单片机控制器&#xff0c;使用按键、IIC OLED液晶、蜂鸣器、继电器投喂控制等。 主要功能&#xff1a; 系统运行后&#xff0c;OLED液晶显示初始时间&#xff0c;默认工作在自动投…

核心概念:从晶体管到集成电路到摩尔定律

目录 晶体管 集成电路 摩尔定律 总结 这芯片和半导体是不是一回事儿呢&#xff1f;怎么我有时候听人说芯片行业&#xff0c;有时候又听人说半导体行业&#xff0c;好像他们说的都是一回事&#xff1f; 不知道你是不是也有这样的问题。其实啊&#xff0c;这问题很简单&…

arm实验

设置按键中断&#xff0c;按键1按下&#xff0c;LED亮&#xff0c;再次按下&#xff0c;灭 按键2按下&#xff0c;蜂鸣器叫&#xff0c;再次按下&#xff0c;停 按键3按下&#xff0c;风扇转&#xff0c;再次按下&#xff0c;停 头文件 #ifndef __CTRL_KEY_H__ #define __CT…

python 操作FT232H——(1)准备工作与IO输出方波信号

1.准备工作&#xff1a; python环境&#xff1a; 安装python 环境&#xff0c;我目前使用的是pycharm2023.2.1 community Edition 版本 需要注意设置python解释器的版本及关联本地库&#xff0c;这样就不需要在新的工程中安装库文件了&#xff0c;&#xff08;当然也有缺点&…

Activity页面不显示toolbar

页面显示如下&#xff0c;显示toolbar, 想实现不显示toolbar&#xff0c; 1、在manifest里设置 android:theme"style/AppThemeNoTitle"&#xff0c;可以隐藏&#xff0c;但是整个页面显示为透明的了&#xff0c;activity整体类型发生改变 2、或者设置这个&#xf…

如何逐步掌握STM32开发技巧?

第一步&#xff1a;建立开发环境 选择Keil MDK等开发环境&#xff0c;根据芯片型号安装相应库。 第二步&#xff1a;备齐开发板和资料 选择最小系统板&#xff0c;可自行搭建外围电路&#xff0c;更深入了解硬件。 第三步&#xff1a;了解STM32 观看视频教程&#xff0c;快速…

03 独立看门狗 hal库 stm32cubemx

1.设置配置参数 > 2.初始化 IWDG_HandleTypeDef hiwdg;/* IWDG init function */ void MX_IWDG_Init(void) //Tout((42^prer) rlr) /40 // IWDG_PRESCALER_8 (42^prer) 8/40 *5*2000 64/40 *4095 ---6s {/* USER CODE BEGIN IWDG_Init 0 *//* USER CODE END IWDG_…

python-arima模型statsmodels库实现-有数据集(续)-statsmodels-0.9.0版本

python-arima模型statsmodels库实现-有数据集&#xff08;续&#xff09; 这篇博客是上一篇python-arima模型statsmodels库实现的续集&#xff0c;上一篇采用的statsmodels版本应该要高一点&#xff0c;如果使用低版本的statsmodels代码会有bug&#xff0c;这一篇则是针对stat…

docker制作自定义版本的jdk镜像

1、下载jdk版本&#xff0c;这里以jdk1.8.0_381为例 Java Downloads | Oracle 2、创建Dockerfile文件 此操作在安装有docker环境的centos系统下操作&#xff0c;如果没有安装请参考此文章&#xff1a;http://t.csdnimg.cn/NCCRB vim Dockerfile From debian MAINTAINER "…

Arya小科普 | 硬件软件基础知识 Java语言的前世今生 James Gosling老爷子的小故事 Java下载 和 IDEA工具

前言 1.从硬件到软件的计算机基础知识&#xff1b; 2.Java之父的小故事&#xff1b; 3.Java语言的前世今生&#xff0c;及其特点&#xff1b; 4.Java下载 和 IDEA工具&#xff1b; 硬件和软件 键盘就是硬件&#xff0c; 操作系统就是软件。 硬件&#xff1a;设备和计算机打交…

核货宝:服装店收银系统必备的五大功能

收银系统对于服装店的经营至关重要&#xff0c;它不仅能简化收银流程&#xff0c;还能提供实时数据和综合报告&#xff0c;帮助店主更好地管理店铺。在选择服装店收银系统时&#xff0c;有五个必备功能需要考虑。本文将介绍这五大功能&#xff0c;并解释其在服装店中的重要性。…

我发现了计算机专业,能拉开很大差距的方式,计算机大一新生必看!

这个社会实在是太卷了&#xff0c;而程序员又是一个不断学习的行业。因此&#xff0c;如果你特别想和别人有一定差距&#xff0c;千万不能让自己信息闭塞。只要你多了解一些学习资源&#xff0c;学习更努力一些&#xff0c;就能离成功更近一步✨&#xff01; 下面&#xff0c;就…

Java开发-参数校验@NotEmpty、@NotBlank、@NotNull

大家好&#xff0c;我是小资。今天给大家说下参数校验。 标题中说的这三个注解所在的包路径为import javax.validation.constraints.*; 千万不要导错包哦&#xff0c;因为他们在好多包里都存在。开发只需引入Spring-web依赖就可以使用了。轻轻松松干掉多余的if-else。 下面我…

NiFi中缓存组件的运行机制及增删改缓存数据

要理解本文内容,需对NIFI有一定的了解,如果您是新手,想学习NIFI,或者想在数仓架构中引入NIFI,欢迎加我微信bigdata_work,我这有一整套使用NIFI的实时数仓落地方案。 在建设实时数仓的过程中,利用缓存机制来提升实时指标的实时性,是一种常用的方法。NIFI提供了专门的缓存…

Git相关知识(2)

目录 1.远程操作 1.基本认识 2.克隆远程仓库 3.向远端仓库推送 4.从远程仓库中拉取 5.忽略特殊文件 6.配置命令别名 2.标签管理 1.本地的标签 2.远端的标签 3.多人协作 1.远端同一个分支 2.远端不同的分支 4.企业级开发模型 1.交付软件流程 2.系统开发环境 1.…

振弦采集仪应用水坝安全监测的方案

振弦采集仪应用水坝安全监测的方案 随着工业化和城市化的快速发展&#xff0c;水资源的开发和利用越来越广泛。由于水坝在水利工程中起着至关重要的作用&#xff0c;因此对水坝进行安全监测变得越来越必要。为了实现对水坝的安全监测&#xff0c;振弦采集仪可以作为一种有效的…

Python+高光谱数据预处理-机器学习-深度学习-图像分类-参数回归

涵盖高光谱遥感数据处理的基础、python开发基础、机器学习和应用实践。重点解释高光谱数据处理所涉及的基本概念和理论&#xff0c;旨在帮助学员深入理解科学原理。结合Python编程工具&#xff0c;专注于解决高光谱数据读取、数据预处理、高光谱数据机器学习等技术难题&#xf…