首页 > 数据库 >Redis切片集群

Redis切片集群

时间:2023-11-08 17:22:05浏览次数:26  
标签:Redis MOVED 切片 实例 集群 哈希 键值 客户端

切片集群

多个 Redis 实例组成一个集群,然后按照一定的规则,把收到的数据划分成多份,每一份用一个实例来保存。

Redis Cluster

定义

Redis官方提供的实现切片集群的方案,采用了16384个哈希槽用于处理数据和实例的映射关系。

首先根据key计算哈希槽hash_slot = CRC16(key) % 16384,其次redis cluster中不同实例分配了不同范围的哈希槽,便可找到对应实例。

数据迁移

在某些情况下,实例间的数据需要重新分配:

  • 实例新增/删除
  • 负载均衡优化

重定向

客户端无法感知哈希槽在实例间的变化,故Redis cluster提供了重定向机制。

MOVED

当前键值对的信息在其他实例时,会给客户端响应MOVED结果,提供哈希槽及对应的实例ip:port信息。
客户端可以通过MOVED结果再去请求对应实例。

GET hello:key
(error) MOVED 13320 172.16.19.5:6379

ASK/ASKING

当前键值对的信息对应的哈希槽正在往在其他实例迁移,且当前键值对已经迁移后,会给客户端响应ASK结果,提供哈希槽及对应的实例ip:port信息。
若此时直接向新实例请求,则会收到MOVED响应。若需要拿到值,需要向新实例先发送ASKING命令,然后再操作键值对。

标签:Redis,MOVED,切片,实例,集群,哈希,键值,客户端
From: https://www.cnblogs.com/kiper/p/17817821.html

相关文章

  • Redis迁移工具redis-migrate-tool的使用
    背景:公司由于以前没有同意规划,导致出现好几个redis实例,现在需要整合到一起,查到还有redis-migrate-tool工具,所以把使用情况写一下,以备后用参考 一、下载编译#从git库直接拉取gitclonehttps://github.com/vipshop/redis-migrate-tool.git#CentOS安装必......
  • redis主从+哨兵搭建配置参考
    主节点配置:#绑定的主机地址(ip换成自己机器的地址)bind0.0.0.0#redis进程的端口号port6379#是否开启保护模式,默认开启。要是配置里没有指定bind和密码,开启该参数后,redis只会本地进行访问,拒绝外部访问。要是开启了密码和bind,可以开启;否则最好关闭设置为no。protected-mod......
  • redis安装教程
    转自:https://blog.csdn.net/qq_31960623/article/details/127744435https://blog.csdn.net/wang13679201813/article/details/1318292051、下载及解压https://www.runoob.com/redis/redis-install.html2、启动redis以管理员身份,打开一个cmd窗口, 切换目录到redis安装目......
  • linux 安装redis
    1、redis下载Redis官网:https://redis.io/历史版本下载:http://download.redis.io/releases2、环境依赖:gcc安装:yuminstallgcc-c++版本查看:gcc-v3、解压redis解压:tar-zxvfredis-5.0.7.tar.gz4、编译与安装redis进入目录:cdredis-5.0.7开始编译:make安装到指定目......
  • HDFS集群压测实践
    1.背景在部署Hadoop集群时,作为集群运维人员,往往需要了解集群性能。即集群能够处理数据的上限,集群的瓶颈等信息。特别是在上线一批尚未使用过的机型、磁盘时,更需要了解这些硬件上的变更是否会对集群整体性能有影响。本文介绍当DataNode挂载juicefs情况下,集群的性能表现;并且和只挂......
  • Redis为什么快呢?能说一下I/O多路复用吗?
    Redis为什么快呢?Redis的速度⾮常的快,单机的Redis就可以⽀撑每秒十几万的并发,相对于MySQL来说,性能是MySQL的⼏⼗倍。速度快的原因主要有⼏点:1.完全基于内存操作2.使⽤单线程,避免了线程切换和竞态产生的消耗3.基于⾮阻塞的IO多路复⽤机制4.C语⾔实现,优化过的数据结构,基于⼏种......
  • python连接redis集群写入数据
    环境;Python:3.6.5 需要安装redis-py-cluster模块 #!/usr/bin/envpython#coding=utf-8fromredisclusterimportRedisClusterstartup_nodes=[{"host":"192.168.1.109","port":7001},{"host":"192.168.1.10......
  • redis连接满的问题处理
    redis连接满的问题处理1、ver环境系统登录失败ver环境登录失败,报错:cannotgetresource2、查看日志查看日志发现报错信息:maxnumberofclientsreached尝试登录redis发现无法登录redis,报错信息同上。3、问题排查及处理首先重启redis,使用以下命令查看redis的连接数:infoc......
  • kubeasz搭建k8s高可用集群
     kubeasz致力于快速部署高可用k8s集群的工具,同时也努力成为k8s实践、使用的参考书;基于二进制方式部署和ansible-playbook实现自动化;既提供一键安装脚本,可以刻根据安装指南分布执行安装各个组件。 Kubeasz从每一个单独部件组装到完整的集群,提供最灵活的配置能力,几乎可以设置任......
  • redis-shake安装部署(4.0.2)
    环境:Os:Centos7redis-shake:4.0.2说明:redis源端和目的端都是单节点1.项目地址https://github.com/tair-opensource/RedisShake/tags2.下载介质我这里下载的版本是4.0.2,文件如下:redis-shake-linux-amd64.tar.gz 3.安装[root@localhostsoft]#mkdir-p/opt/redis-shake......