数据库-Redis(17)

目录

[81.什么是Redis Cluster?](#81.什么是Redis Cluster?)

82.说说Redis哈希槽的概念?为什么是16384个?

83.Redis集群会有写操作丢失吗?为什么?

84.Redis客户端有哪些?

85.Redis如何做大数据量插入?


81.什么是Redis Cluster?

Redis-Cluster是一种服务器sharding技术,Redis3.0以后版本正式提供支持。

82.说说Redis哈希槽的概念?为什么是16384个?

Redis-Cluster没有使用一致性hash,而是引入了哈希槽的概念。Redis-Cluster中有16384(即2的14次方)个哈希槽,每个key通过CRC16校验后对16383取模来决定放置哪个槽。Cluster中的每个节点负责一部分hash槽(hash slot)。

比如集群中存在三个节点,则我可能存在一种分配如下:

1.节点a包括0-5500号哈希槽;

2.节点b包含5501-11000号哈希槽;

3.节点c包含11001-16384号哈希槽;

为什么是16384个?

在Redis节点发送心跳包时需要把所有的槽放到这个心跳包里,以便让节点直到当前集群信息,16384=16k,在发送心跳包时使用char进行bitmap压缩后是2k(2*8*8 bit)*1024(1k)=16k),也就是说使用2k的空间创建了16k的槽数。

虽然使用CRC16算法最多可以分配65535(2^16-1)个槽位,65535=65k,压缩后就是8k(8*8(8bit)*1024(1k)=65k),也就是说需要需要8k的心跳包,作者认为这样做不太值得;并且一般情况下下一个Redis集群不会有超过1000个Master节点,所以16k的槽位是个比较合适的选择。

83.Redis集群会有写操作丢失吗?为什么?

Redis并不能保证数据强一致性,这意味着在实际中集群在特定的条件下可能会丢失写操作。

84.Redis客户端有哪些?

Redisson,Jedis,Letture等等,官方推荐使用Redisson。

Redisson是一个高级的分布式协调Redis客服端,能帮助用户在分布式环境中轻松实现一些Java对象。

85.Redis如何做大数据量插入?

Redis2.6开始redis-cli支持一种新的被称为pipe mode的新模式用于执行大量数据插入工作。

相关推荐
Vect__几秒前
MySQL 数据类型和约束:从字段设计到表结构建模
数据库·mysql
张人玉5 分钟前
C# WinForms——工厂管理系统(C# WinForms)
数据库·sqlite·c#·winform
AC赳赳老秦1 小时前
招投标公开数据自动化采集实战:基于 OpenClaw 的定时抓取与业务关键词精准推送
运维·服务器·数据库·自动化·测试用例·deepseek·openclaw
后端优选官2 小时前
上海Agent开发公司:企业级智能体软件的技术架构与落地评估
数据库·人工智能·架构·软件开发·开发经验·上海
JustNow_Man2 小时前
`openspec/config.yaml` 解析与生效机制
数据库
Databend2 小时前
用 QUALIFY 写出更清晰的窗口函数 SQL
数据库·sql·数据分析
数智化管理手记2 小时前
应收应付资金占用过高怎么办?应收应付搭配账龄分析怎么做
大数据·网络·数据库·人工智能·数据挖掘
用户71333585156242 小时前
MySQL - EXPLAIN 执行计划
数据库
YDS8292 小时前
大营销平台 —— 活动SKU库存扣减业务及其一致性处理
java·spring boot·redis·rabbitmq·ddd
这就是佬们吗2 小时前
Python入门③-运算符、条件与循环
开发语言·数据库·vscode·python·pycharm·编辑器