redis使用Big key的问题

文章目录

  • BigKey带来的问题
  • 业务场景
  • 具体现象
  • 解决思路

BigKey带来的问题

  1. 客户端执行命令的时延变大:对大Key进行的慢操作会导致后续的命令被阻塞,从而导致一系列慢查询。

  2. 引发操作阻塞:Redis内存达到maxmemory参数定义的上限引发操作阻塞或重要的Key被逐出,甚至引发内存溢出(Out Of Memory)。

  3. 容易造成集群分片不均的情况:集群架构下,由于集群采用的是分片设计理念,每个具体的Key只能分布到某一个具体的分片节点上,某个数据分片的内存使用率远超其他数据分片,无法使数据分片的内存资源达到均衡。

  4. 导致实例流控:对大Key高频率的读会使得实例出方向带宽被占满,产生大量命令超时或者慢查询,导致流控,致使自身服务变慢,同时易波及相关的服务。

  5. 导致主备倒换:对大Key执行危险的DEL操作可能会易造成主库较长时间的阻塞,进而可能引发同步中断或主备倒换。

业务场景

比如互联网系统中需要保存用户最新 1万 个粉丝的业务,比如一个用户个人信息缓存,包括基本资料、关系图谱计数、发 feed 统计等。微博的 feed 内容缓存也很容易出现,一般用户微博在 140 字以内,但很多用户也会发表 1千 字甚至更长的微博内容,这些长微博也就成了大 key

问题实质:

  • String本身比较大
  • set,hash内个数比较大

具体现象

系统会往Redis里存一个大Key(value值大小有400MB多),Redis是集群版,8GB 8节点的,实际存储时只会将这个key放到一个节点中,这样这一个节点成为了整个系统的瓶颈。而且扩容也无法解决该问题。如图是存储逻辑图
在这里插入图片描述

解决思路

主要解决思路就是:平均流量。就是将原来打到一个节点上的流量分摊到所有节点上,提升Redis的性能。

按业务逻辑拆分

比如我们Redis存储的数据是全国的数据集合,那么按照省行政区进行拆分,这样一个Key就能分成34个key。进一步细化还可按照市来拆分,这样会有300多个key,分布到Redis集群上更加均匀
在这里插入图片描述
小key可以加后缀:省id,查询时先判定是哪一个省,再拼接key查。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2016年苏州大学837复试机试C/C++

2016年苏州大学复试机试 第一题 题目 公鸡5元一只,母鸡3元一只,幼鸡1元3只。若100元钱买了100只鸡,问其中公鸡、母鸡、幼鸡各多少只? 博主注:此题经典百元买百鸡问题,出自:公元5世纪末&#…

mysql 允许其他ip访问

1.改表法。 可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 “mysql” 数据库里的 “user” 表里的 “host” 项,从"localhost"改称"%" //执行以下…

基础知识总结

概念概述 计算机网络是通过传输介质、通信设施和网络通信协议,把分散在不同地点的计算机设备互连起来,实现资源共享和数据传输的系统。而网络编程就是编写程序使联网的两个或多个设备(比如计算机)之间进行数据传输。Java语言对网…

JRT人大金仓测试

之前基于IRIS导出的Sql脚本用JRT的导表脚本执行Sql语句在PostGreSql数据库把IRIS导出的库还原。并且试了模板设计器的打开和保存及打印功能。本次测试IRIS导出的Sql在人大金仓上还原数据库,并且测试模板设计器功能和打印。 首先碰到的一个坑是人大金仓把空串存成NU…

P1228 地毯填补问题(葬送的芙蓉王【bushi】)

地毯填补问题 题目描述 相传在一个古老的阿拉伯国家里,有一座宫殿。宫殿里有个四四方方的格子迷宫,国王选择驸马的方法非常特殊,也非常简单:公主就站在其中一个方格子上,只要谁能用地毯将除公主站立的地方外的所有地…

Vue Router 动态路由

聚沙成塔每天进步一点点 本文内容 ⭐ 专栏简介1. 动态路由的使用2. 动态路由的原理解析路由匹配路由参数的传递组件渲染动态路由的变化 3. 更多动态路由的实例3.1. 动态路径匹配多层级3.2. 动态路径的正则匹配3.3. 编程式导航与动态路由 总结 ⭐ 写在最后 ⭐ 专栏简介 Vue学习之…

CSS 3D三角彩色锥形旋转动画效果

<template><view class="pyramid-loader"><view class="wrapper"><span class="side side1"></span> <!-- 金字塔的一个面 --><span class="side side2"></span> <!-- 金字塔的…

会计试算平衡

目录 一. 试算平衡的意义二. 试算平衡的原理和内容三. 试算平衡表 \quad 一. 试算平衡的意义 \quad ①验证错误 ②便于编制会计报表 试算表根据各分类账借贷余额汇总编制而成&#xff0c;依据试算表编制会计报表将比直接依据分类账来编制更为方便,拥有大量分类账的企业尤为便捷…

浙大发布Agent学习框架,13B 模型达到 ChatGPT 水平!

2023 年下半年&#xff0c;AI Agent 正式开启「大模型下半场」。 自“人工智能”这门学科创立之初&#xff0c;一种可以“观察世界”-“思考推理”-“做出行动”-“反思学习”的人造代理就是构建通用人工智能的终极目标之一。而基于大模型的 AI Agent 借助大模型强大的推理判断…

(天坑的87端口)nginx代理端口不生效,代理87端口遇到的问题及原因

目录 一. 问题产生 二.问题现象 三.问题排查 四.柳暗花明 五.解决方案 六.不安全的端口号 七.总结 一. 问题产生 因为之前的一个项目一直是用的86端口&#xff0c;这次要在一台新的服务器上重新部署两个项目&#xff0c;很自然而然的继续86端口&#xff0c;另一个也没想&…

【数据结构与算法】之哈希表系列-20240130

这里写目录标题 一、383. 赎金信二、387. 字符串中的第一个唯一字符三、389. 找不同四、409. 最长回文串五、448. 找到所有数组中消失的数字六、594. 最长和谐子序列 一、383. 赎金信 简单 给你两个字符串&#xff1a;ransomNote 和 magazine &#xff0c;判断 ransomNote 能不…

C++/MFC:在窗体Form(Dialog)中多个编辑框时,在输入时将回车解释为TAB键,将输入焦点移到下一个编辑框的方法

很多时候&#xff0c;为了输入方便&#xff0c;常用的做法&#xff0c;就是将回车键解释为将输入焦点移动到下一个编辑框中。就像是我的VxTerm中的快速连接输入一样&#xff1a; VxTerm是一个国产化替代的SSH工具&#xff0c;可以从本站的资源中免费下载并且免费使用&#xff…

R高级绘图 | P1 | 带边缘分布散点图 | 代码注释 + 结果解读

新系列 —— R高级绘图&#xff0c;准备整理所有曾经绘制过的图图和未来需要的图图们的代码&#xff01;预计这个系列会囊括所有常见图形&#xff0c;只提供高级绘图代码&#xff0c;基础绘图主要在 R语言绘图 系列中进行介绍&#xff0c;这个系列咱们主打&#xff1a;需要XX图…

数学公式OCR识别php 对接mathpix api 使用公式编译器

数学公式OCR识别php 对接mathpix api 一、注册账号官网网址&#xff1a;https://mathpix.com 二、该产品支持多端使用注意说明&#xff08;每月10次&#xff09; 三、api 对接第一步创建create keyphp对接api这里先封装两个请求函数&#xff0c;get 和post &#xff0c;通过官方…

Kotlin快速入门系列11

Kotlin的集合 集合类 Java类库有一套相当完整的容器集合类用来持有对象。跟Java一样&#xff0c;集合类存放的都是对象的引用&#xff0c;而非对象本身(我们经常说的集合指的是集合中对象的引用)&#xff0c;Kotlin的集合类是在Java的集合类库基础上进行的优化&#xff0c;新引…

拥抱变局,坚韧向新|复旦大学-华盛顿大学EMBA项目C20毕业典礼

12月初&#xff0c;复旦大学-华盛顿大学EMBA项目20班的学员们前往美国&#xff0c;完成了项目最后一次移动课堂&#xff0c;并在奥林商学院举办了毕业典礼。      20班的学员们在项目20周年之际入学&#xff0c;也是疫情以来第一个正式恢复线下授课的班级。虽然经历了一些波…

《二叉树》——3(层序遍历)

目录 前言&#xff1a; 层序遍历: 解析&#xff1a; 前言&#xff1a; 本文主讲链式二叉树的层序遍历&#xff0c;在前面的张篇blog我们初步实现了链式二叉树递归部分的内容&#xff0c;对于递归算法的学习和思维方式我们仍然需要不断加强&#xff0c;所以将对链式二叉树进行…

Docker本地部署Firefox浏览器并结合内网穿透公网访问

文章目录 1. 部署Firefox2. 本地访问Firefox3. Linux安装Cpolar4. 配置Firefox公网地址5. 远程访问Firefox6. 固定Firefox公网地址7. 固定地址访问Firefox Firefox是一款免费开源的网页浏览器&#xff0c;由Mozilla基金会开发和维护。它是第一个成功挑战微软Internet Explorer浏…

Python pip 不是内部或外部命令...

文章目录 1 问题截图2 解决办法2.1 配置环境变量2.2 试试 pip3 3 扩展分析3.1 查询 Python 版本及位数3.2 查询 Python 安装路径3.3 查询当前 pip 的版本 1 问题截图 2 解决办法 2.1 配置环境变量 2.2 试试 pip3 根据安装的 Python 版本不同&#xff0c;使用的 pip 也会不同若…

ESP8266 AP配网

首先引入需要的库 #include <WiFiManager.h> // https://github.com/tzapu/WiFiManager 在setup() 方法中设置网络名称等待登录连接 void setup(){Serial.println("Wait for Smartconfig");WiFi.mode(WIFI_STA);WiFiManager wm;bool res;res wm.autoConnec…
最新文章