跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 关于 Redis 集群搭建和数据迁移
未分類
3 3 月 2021

关于 Redis 集群搭建和数据迁移

关于 Redis 集群搭建和数据迁移

資深大佬 : asanelder 3

背景

之前的业务没有使用 redis 集群, 但使用了多个实例保存多个分片, 现在一共分了 4 片, 保存的数据是

第一片: hash(key) = 0

第二片: hash(key) = 1

第三片: hash(key) = 2

第四片: hash(key) = 3

现在想搭建一个集群, 俺大概想到的思路有 2

一 基于现有的实例来搭建集群

但俺看网上的文章, redis 为自动为集群中的机器分配 0-16383 个 slot, 如果是四个主从的话,

0-4xxxx 为第一片

4xxx-8xxx 为第二片

8xxx – 12xxx 为第三片

12xxx – 16xxx 为第四片

然后使用 HASH_SLOT=CRC16(key)mod16384 来计算某一个数据落到哪个片中.

但这和俺现有的 hash 逻辑是不一样的, 所以对于这种方式, 俺想问一个

  1. 在创建集群时, 可不可以自定义为实例划分 slot 的逻辑?
  2. 计算 hash-slot 的 hash 函数可不可以自定义?

二 搭建新的集群, 将现有实例中数据导过去

如果方式一不可行, 俺就新搭建一个集群, 然后停服, 把现有数据再 hash 到新的集群中.

关于这种方式, 俺的疑问是

  1. 这种导数据有没有相关的工具?
  2. 如果没有工具, 是不是需要自己写程序来导?

希望有经验的铁子给予指导点拨

大佬有話說 (2)

  • 資深大佬 : hyq

    可以用 reshard 慢慢折腾 slot,但是不建议这么做
    hash 函数不能改,唯一能做的时指定 hash 的参数,如 hash(role{12345}) == hash(12345),强制 12345 作为 hash 的 key 。

  • 資深大佬 : hyq

    重新去找了下资料,你这种情况,在官方的文档中有提到
    https://redis.io/topics/cluster-tutorial 文中的 Migrating to Redis Cluster

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具