【Redis优化——如何优雅的设计key,优化BigKey,Pipeline批处理Key】
Redis优化——如何优雅的设计key,优化BigKey,Pipeline批处理Key
- 一、Key的设计
- 1. 命名规范
- 2. 长度限制在44字节以内
- 二、BigKey优化
- 1. 查找bigkey
- 2. 删除BigKey
- 3. 优化BigKey
- 三、Pipeline批处理Key
- 1. 单节点的Pipeline
- 2. 集群下的Pipeline
一、Key的设计
1. 命名规范
业务名+数据名+id
例如存储用户登录信息:login:user:id
2. 长度限制在44字节以内
如果使用的时Redis6.0版本以上,Key的编码规则有三个,int, enbstr, raw 44字节内的Key会用int或身体乳mb编码,内存占用小
二、BigKey优化
1. 查找bigkey
- 可以使用scan 0 扫描所有的Key,然后使用strlen查出大Key,这里不要使用keys *命令,会阻塞主线程
- 可以是使用Redis的第三方工具进行检测
2. 删除BigKey
- 使用unlink key 命令删除,不要使用Del key 这也会阻塞
3. 优化BigKey
- 对于大的JSON对象可以使用Hash数据结构存储,因为Hash的底层用到了ZipList,节约内存
- 对于大的Hash呢,比如一个Hash表有100万条数据,key从0-100万,此时我们可以打散Hash,就是让每100个key存储到一个hash表,让key/100,value%100,类似于分片了
三、Pipeline批处理Key
原理:建立一次网络连接,执行多条Redis命令
1. 单节点的Pipeline
@Testvoid testPipleLine(){Jedis jedis = new Jedis("host", 6379);jedis.auth("xxx");Pipeline pipeline = jedis.pipelined();for (int i = 0; i < 1000; i++) {pipeline.set("nb:key" + i, "value" + i);if (i % 100 == 0){ // 每次放入100行命令pipeline.sync();}}}
2. 集群下的Pipeline
- 集群部署Redis,插入Key,每一个Key又有一个 slot插槽,这个插槽分布在所有Redis节点中,所以如果批量插入的key的插槽不在同一个节点,那么还是会有多次网络请求,最坏又变成了每次连接执行一条命令
- 解决方案采用并行slot方式

//使用springredistemplate封装好的工具类@Testvoid testslotPipeline(){Map<String, String> map = new HashMap<>();map.put("name", "111");map.put("age", "222");map.put("gemder", "333");redisTemplate.opsForValue().multiSet(map);}
相关文章:
【Redis优化——如何优雅的设计key,优化BigKey,Pipeline批处理Key】
Redis优化——如何优雅的设计key,优化BigKey,Pipeline批处理Key 一、Key的设计1. 命名规范2. 长度限制在44字节以内 二、BigKey优化1. 查找bigkey2. 删除BigKey3. 优化BigKey 三、Pipeline批处理Key1. 单节点的Pipeline2. 集群下的Pipeline 一、Key的设计…...
数据结构与算法分析:你真的理解图算法吗——深度优先搜索(代码详解+万字长文)
一、前言 图是计算机科学中用来表示复杂结构信息的一种基本结构。本章我们会讨论一些通用的围表示法,以及一些频繁使用的图算法。本质上来说,一个图包含一个元素集合(也就是顶点),以及元素两两之间的关系(也就是边),由于应用范围所限,本章我们仅仅讨论简单图,简单围并不会如(a…...
LinkedList 分析
LinkedList 简介 LinkedList 是一个基于双向链表实现的集合类,经常被拿来和 ArrayList 做比较。关于 LinkedList 和ArrayList的详细对比,我们 Java 集合常见面试题总结(上)有详细介绍到。 双向链表 不过,我们在项目中一般是不会使用到 Link…...
【C/C++】模拟实现strlen
学习目标: 使用代码模拟实现strlen。 逻辑: strlen 需要输入一个字符串数组类型的变量,并且返回一个整型类型的数据。strlen 需要计算字符串数组有多少个元素。 代码1:使用计数器 #define _CRT_SECURE_NO_WARNINGS 1 #include&…...
mybatis从浅入深一步步演变分析
mybatis从浅入深一步步演变分析 版本一:不使用代理(非spring) package com.yimeng.domain;public class User {private int id;private String username;private String password;public int getId() {return id;}public void setId(int id…...
Java阶段三02
第3章-第2节 一、知识点 面向接口编程、什么是spring、什么是IOC、IOC的使用、依赖注入 二、目标 了解什么是spring 理解IOC的思想和使用 了解IOC的bean的生命周期 理解什么是依赖注入 三、内容分析 重点 了解什么是spring 理解IOC的思想 掌握IOC的使用 难点 理解IO…...
【Linux】掌握库的艺术:我的动静态库封装之旅
🌈个人主页:Yui_ 🌈Linux专栏:Linux 🌈C语言笔记专栏:C语言笔记 🌈数据结构专栏:数据结构 🌈C专栏:C 文章目录 1.什么是库1.2 认识动静态库1.2.1 动态库1.2.2…...
UE5动画控制 基础
素材 mixamo先去选择一个character 点击下载 就这个下载下来 然后选几个animation, 记得勾选 把动作下载了 without skin就是只要动作 然后把他们放在一个文件夹里先 UE里导入 找一个文件夹,直接拖拽进来那个character的fbx,默认配置就…...
流畅!HTMLCSS打造网格方块加载动画
效果演示 这个动画的效果是五个方块在网格中上下移动,模拟了一个连续的加载过程。每个方块的动画都是独立的,但是它们的时间间隔和路径被设计为相互协调,以创建出流畅的动画效果。 HTML <div class"loadingspinner"><…...
linux命令之top(Linux Command Top)
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 本人主要分享计算机核心技…...
数据结构-希尔排序(ShellSort)笔记
看动画理解 【数据结构】八大排序(超详解附动图源码)_数据结构排序-CSDN博客 一 基本思想 先选定一个整数gap,把待排序文件中所有记录分成gap个组,所有距离为gap的记录分在同一组内,并对每一组内的元素进行排序。 然后将gap逐渐减小重复上…...
Junit + Mockito保姆级集成测试实践
一、做好单测,慢即是快 对于单元测试的看法,业界同仁理解多有不同,尤其是在业务变化快速的互联网行业,通常的问题主要有,必须要做吗?做到多少合适?现在没做不也挺好的吗?甚至一些大…...
软件项目管理要点
一.项目管理 1.盈亏平衡分析 销售额固定成本可变成本税费利润 当利润为0的时候就是盈亏平衡点。 2.范围管理 范围定义的输入包括:项目章程、项目范围管理计划、组织过程资产、批准的变更申请。 3.时间管理 项目时间管理中的过程包括活动定义、活动排序、活动的资…...
ESP8266 连接 MQTT 服务器EMQX 连接MQTTX
目录 1.先用有一台自己的云服务器 2. 使用FinalShell连接阿里云云服务器ECS 3.安装宝塔 4.在云服务器打开8888端口 5.使用外网面板地址打开宝塔面板 6.安装Docker 7.下载emqx 8.打开emqxWeb 界面 9.下载MQTTX 10.EMQX加一个客户端 11.开始通信 12.加入单片机ESP8266 …...
Python中如何处理异常情况?
1、Python中如何处理异常情况? 在Python中,处理异常情况通常使用try/except语句。try语句块包含可能会引发异常的代码,而except语句块包含处理异常的代码。如果try块中的代码引发了异常,控制流将立即转到相应的except块。 以下是…...
openpnp - 在openpnp中单独测试相机
文章目录 openpnp - 在openpnp中单独测试相机概述笔记END openpnp - 在openpnp中单独测试相机 概述 底部相机的位置不合适, 重新做了零件,准备先确定一下相机和吸嘴的距离是多少才合适。 如果在设备上直接实验,那么拆装调整相机挺麻烦的。 准备直接在电…...
Spark窗口函数
1、 Spark中的窗口函数 窗口就是单纯在行后面加一个列 可以套多个窗口函数,但彼此之间不能相互引用,是独立的 窗口函数会产生shuffle over就是用来划分窗口的 (1) 分组聚合里面的函数,基…...
Idea、VS Code 如何安装Fitten Code插件使用
博主主页:【南鸢1.0】 本文专栏:JAVA 目录 编辑 简介 所用工具 1、Idea如何安装插件 1.idea下载插件 2.需要从外部下载然后在安装, 2、VS Code如何安装插件 总结 简介 Fitten Code是由非十大模型驱动的AI编程助手,它可以自动生成代…...
elasticsearch7.x在k8s中的部署
一、说明 二、思路 三、部署 1、建nfs服务器 2、建持久卷 3、部署elasticsearch 四、附件 ?pv.yaml内容 elasticsearch.yaml内容 一、说明 本文章内容主要的参考来源是https://www.cnblogs.com/javashop-docs/p/12410845.html,但参考文献中的elasticsearc…...
校园社团信息管理平台:Spring Boot技术实战指南
3系统分析 3.1可行性分析 通过对本校园社团信息管理系统实行的目的初步调查和分析,提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。 3.1.1技术可行性 本校园社团信息管理系统采用SSM框架,JAVA作…...
C# WinForm 系统参数设置功能完整实现
在工业上位机、客户端工具开发中,系统参数配置是必备基础功能。本文用一套完整可运行的代码,带你实现 WinForm INI 配置文件的参数设置:自动生成配置、读取加载、界面编辑、保存生效,全程逻辑清晰、注释详细,可直接落…...
蒙特卡洛方法与科学计算十大经典算法解析
1. 蒙特卡洛方法:从赌场到科学计算的跨界革命 1946年,三位天才科学家在洛斯阿拉莫斯实验室的咖啡时间里,可能不会想到他们正在创造一种将彻底改变科学计算的方法。蒙特卡洛方法的名字来源于摩纳哥著名的赌城,这暗示了其核心思想—…...
第25课:让 Qt 从 GPIO 子系统一路进阶到平台驱动与设备树控制
本节路线图 为什么这一课要把三种GP → 先从GPIO子系统开始: → 再进一步:平台驱动让LE 小猫提醒 这节有分区、烧录或删除类操作,先确认盘符和路径,再按回车。 猫头鹰提示 编译前先对齐目标架构和工具链名字,别让主机程序和板卡程序搞混。 上一课我们已经把 Qt 和字符驱动…...
Rancher国内网络卡脖子?手把手教你配置私有镜像仓库(避坑RKE2 registries.yaml)
Rancher国内网络优化实战:私有镜像仓库配置全指南 引言 对于国内Kubernetes从业者来说,Rancher无疑是一款强大的集群管理工具。但在实际部署过程中,许多团队都遇到过因网络问题导致镜像拉取失败的困扰。想象一下,当你正准备部署一…...
Kubernetes集群的监控与告警方案
Kubernetes集群的监控与告警方案 引言:监控与告警的重要性 哥们,别整那些花里胡哨的!作为一个前端开发兼摇滚鼓手,我最烦的就是系统出问题还不知道。在云原生时代,Kubernetes集群的监控与告警是确保系统稳定运行的关…...
基于碳排放交易与需求响应的综合优化调度策略:微网虚拟电厂日前调度模型研究
MATLAB代码:计及碳排放交易及多种需求响应的微网/虚拟电厂日前优化调度 关键词:碳排放交易 需求响应 空调负荷 电动汽车 微网/虚拟电厂优化调度 参考文档:《计及电动汽车和需求响应的多类电力市场下虚拟电厂竞标模型》参考其电动汽车模型以及…...
魔兽争霸3 Windows 11兼容性终极解决方案:让你的经典游戏重获新生
魔兽争霸3 Windows 11兼容性终极解决方案:让你的经典游戏重获新生 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 还在为魔兽争霸3在Windo…...
2025届学术党必备的六大AI科研网站推荐榜单
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 为能切实有效地把文本的AIGC检测概率给降低下来,得从业经历连贯性以及统计规律这…...
打卡信奥刷题(3066)用C++实现信奥题 P6877 [JOI 2020 Final] 只不过是长的领带 / Just Long Neckties
P6877 [JOI 2020 Final] 只不过是长的领带 / Just Long Neckties 题目描述 JOI 公司发明了一种领带,一共有 N1N1N1 条领带,编号为 111 到 N1N1N1,第 iii 条领带的长度为 AiA_iAi。 JOI 公司开了一个派对,派对中有 NNN 名员工…...
BiliTools:2026年最强大的免费哔哩哔哩资源管理工具终极指南
BiliTools:2026年最强大的免费哔哩哔哩资源管理工具终极指南 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …...
