Redis-问题

news2024/11/27 6:36:27

1.redis的槽是什么?

Redis Cluster中有一个16384长度的槽的概念,他们的编号为0、1、2、3……16382、16383。这个槽是一个虚拟的槽,并不是真正存在的。

2.redis的槽有什么用?

缓存 对于高访问量的网站,缓存是提高性能的重要手段。使用Redis槽技术可以将数据分散到不同节点上,减轻单节点的负载压力,提高缓存的并发和可用性。

解决存储能力问题:搭建分片集群,利用插槽机制实现动态扩容

在这里插入图片描述

3.redis的一个槽可以存储多少key?

摘自Redis官网的Data type章节,意思是内存允许的情况下,可以存超过40亿数据

Redis以slot(槽)作为数据存储单元,每个槽中可以存储N多个键值对。Redis中固定具有16384个槽。理论上可以实现一个槽是一个Redis。

4.如果redis的一个节点只有一个槽,那么16个库的数据怎么存?

数据存到哪个槽上,和库没关系,根据key的hash值算出数据应该存储在哪个槽上

5.redis的槽在集群中是怎么分配的?

5.redis的list有过期时间吗?

在用redis的list的时候,发现没有可以以设置过期时间的push方法。

最后采取了用expire设置的方法,也可以达到定时删除的目的。

jedis.rpush("list", "a");jedis.rpush("list", "b");jedis.rpush("list", "c");jedis.expire("list", 10);//设置过期时间为10秒

6.redis cluster哈希槽数量能改变吗?

不能,因为代码算法写死了,固定是2的14次方这个数字上,作者自己有过分析

原因是因为需要把所有的槽放到心跳包里面便于让节点知道当前的全部信息。16348=16k,用bitmap来压缩心跳包的话,就相当于使用2*8*10=2KB大小的心跳包。而如果用crc16算法(redis使用这个而不是用哈希一致性算法)来确定哈希槽的分配。他的最大值是是2的16次方。用上面的算法换算需要8KB的心跳包来传输,作者自己认为这样不划算。而一个redis节点一般不会有超过1000个master(这个是作者自己说的),用16k来划分是比较合适的

7.redis集群数据存储原理

    在redis cluster中,如果想要存入一个key-value,

    这个key首先会通过CRC16算法(和16384取余),

    结果会对应上0-16383之间的哈希槽(hash slot)

    最后,redis cluster会将key-value放置在对应的哈希槽中。
8.redis集群数据获取原理

    当client向redis cluster中的任意一个节点发送与数据库key有关的命令时,

    接收命令的节点会计算出要处理的key属于哪个哈希槽(hash slot),

    并且先检查这个hash slot是否属于自己(管辖):

        如果key所在的槽正好属于自己(管辖),节点会直接执行这个key相关命令。

        如果key所在的槽不属于自己(管辖),那么节点会给client返回一个MOVED错误,

        指引client转向负责对应槽的节点,并客户端需要再次发送想要执行的和key相关的命令。
9.redis不要直接修改AOF配置

会造成数据丢失。

原因:

如果redis目前在停止运行状态,我们想打开AOF,把设置修改为了yes,那么,在启动redis时,会优先加载AOF文件,由于文件是空的,所以什么数据也没有加载到,然后我们用shutdown停止了redis,由于用shutdown命令会触发RDB备份,所以备份文件将会被覆盖,备份数据会丢失,造成严重后果。

解决办法:

先对RDB文件进行备份,然后在redis运行时,用命令打开AOF,redis会把二进制文件放到AOF文件中,然后再把配置文件中的AOF配置改为yes,这样做是因为命令修改只是临时的。

10.IO多路复用

redis是单线程的,使用IO多路复用,因为命令执行耗时可以忽略不计,主要用时是数据的IO,所以,可以在数据IO时,开启多个线程进行读写。

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

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

相关文章

机器学习23:《数据准备和特征工程-I》概述

机器学习帮助我们找到数据中的模式,然后我们用这些模式来预测新的数据点。为了获得正确的预测,我们必须构建数据集并正确地转换数据。在《数据准备和特征工程》系列文章中,笔者将重点介绍这两个关键步骤。在【机器学习7:特征工程】…

项目预算Budgeting 中英对照(PLM230 Unit4)

1、an estimate of the required funds 预估所需资金 2、correspond to the approved funds 符合批准的资金 3、availability control 可用性控制 4、be warned before the budget is exhausted 耗尽之前警告 5、The budget differs from the project cost plan is binding.…

为您的服务台提供6个基于AI的使用案例

人工智能(AI)正在向IT服务管理(ITSM)迈进,有望重新定义事物的工作方式。但是,人工智能是否会实现其承诺,并能够真正使ITSM更容易、更有效呢?这就是我们即将在此系列中所探讨的"…

计网笔记--网络层

1--网络层概述 网络层主要问题: ① 网络层向运输层提供怎样的服务? (可靠或不可靠) ② 网络层寻址问题(IP 地址) ③ 路由选择问题 (路径) 重点在于:TCP/IP协议栈 2--网络…

使用Jetpack Compose实现PopupMenu

Jetpack Compose是Google推出的现代化UI工具包,使用声明式UI模式构建用户界面。它有许多内建的Composable函数,让开发者可以轻松实现各种界面元素,包括PopupMenu。在这篇博客中,我们将深入研究如何在Jetpack Compose中创建PopupMe…

Reaxys数据库免费使用方法

Reaxys 于 2009 年推出,作为 CrossFire与Beilstein 数据库的后继者。Reaxys继承了基本化合物、化学反应、化学性质、相关文献数据、合成计划信息的物质数据检索功能,以及来自选定期刊和专利的实验程序。Reaxys是一款商业化学信息检索工具,一般…

VS2019 Web应用如何添加Area区域:新搭建基架的项目

貌似跟以往不一样,VS2019 Web应用如何添加Area区域:新搭建基架的项目,如下图: 1、右键项目添加 2、弹出“添加已搭建基架的新项”对话框,选择“区域” 3、填写新基架项目名称-Area 4、自动创建成功 5、后续添加控制器…

QxRibbon 知:麒麟 ukui 搭建 Qt5 开发环境

文章目录 安装 openEuler 22.09 虚拟机安装 Qt5 开发环境构建 QxRibbon 安装 openEuler 22.09 虚拟机 VMware 安装 openEuler 22.09 桌面版(提供了 ukui 和 kiran 桌面)虚拟机 平台:x86_64 虚拟机配置:4核、4G内存、40G磁盘&…

如何在 Django框架下完成 websocket 连接

文章目录 websocket 和 socket 连接的区别与 Django 建立 websocket 连接ASGI v.s. WSGIDjango > 3.0ChannelsDaphnesettings.pyconsumers.py & routing.py 测试 websocket 连接postman websocket 和 socket 连接的区别 Websocket 和 Socket 是两种不同的通信协议&#…

Python采集二手车数据信息,看看什么车最适合你

目录标题 前言环境使用:模块使用:代码展示尾语 💝 前言 大家早好、午好、晚好吖 ❤ ~欢迎光临本文章 环境使用: Python 3.8 Pycharm 模块使用: 第三方模块 需要安装的 requests >>> pip install requests parsel >>> pip install parsel c…

CTP WEB 100练(1/100)

考点:PHP代码审计 抓包发现source.php,访问下,出现了php代码 代码主体在这部分,满足三个条件:file不为空&file是字符串&checkFile通过 if (! empty($_REQUEST[file])&& is_string($_REQUEST[file])&am…

面试题:var、let、const的区别

var、let、const的区别 一、提出二、作用域不同2.1 作用域 三、变量提升四、重复声明五、可修改性六、初始值设置七、暂时性死区八、给全局添加属性总结若有错误,欢迎随时指正 一、提出 var是ES5提出的,let和const是ES6提出的。 二、作用域不同 2.1 作用…

大数据环境下保护个人隐私

近日,某高校毕业生在校期间窃取学校内网数据,收集全校学生个人隐私信息的新闻引发了人们对互联网生活中个人信息安全问题的再度关注。在大数据时代,算法分发带来了隐私侵犯,在享受消费生活等便捷权利的同时,似乎又有不…

webrtc源码阅读之h264 RTP打包

本文来分析webrtc打包h264 rtp包的代码,版本m98 一、RTP协议 1.1 RTP协议概述 实时传输协议(RTP)是一个网络协议,它允许在网络上进行实时的音频和视频数据传输。RTP协议主要用于解决多媒体数据的实时传输问题,特别是…

关于Java已死,看看国外开发者怎么说的

博主在浏览 medium 社区时,发现了一篇点赞量 1.5k 的文章,名称叫《Java is Dead — 5 Misconceptions of developers that still think Java is relevant today!》直译过来就是《Java 已死 — 开发人员对 Java 在现代编程语言中的5个误解》。这篇文章可以…

什么是倒排索引

什么是倒排索引 搜索的核心需求是全文检索,全文检索简单来说就是要在大量文档中找到包含某个单词出现的位置,在传统关系型数据库中,数据检索只能通过 like 来实现,例如需要在酒店数据中查询名称包含公寓的酒店,需要通…

k8s如何对外公布一个应用程序

一:Kubernetes Service(服务)概述 事实上,Pod(容器组)有自己的 生命周期 (opens new window)。当 worker node(节点)故障时,节点上运行的 Pod(容器组&#x…

全网最细,Fiddler抓包实战教程-辅助接口测试(二)

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 Fiddler的功能面板…

超低色散非球面ED镜片——减少空三分层的“秘密武器”

引言 倾斜相机作为精密光学电子仪器,光学部件相当于它的眼睛,直接关系到原始航片采集质量的高低,其重要性不言而喻。优质的原始航片能够降低空三分层概率,增加空三解算的鲁棒性,从而提高内业效率,节约项目…