Di chuyển dữ liệu ScaleGrid cho Redis ™ * từ máy chủ này sang máy chủ khác là yêu cầu phổ biến mà chúng tôi nhận được từ khách hàng của mình. Hai trong số những lý do chính mà chúng tôi thường nghe là do di chuyển phần cứng hoặc nhu cầu phân chia dữ liệu giữa các máy chủ.
Thông thường, bạn muốn di chuyển với thời gian ngừng hoạt động tối thiểu trong khi sử dụng các công cụ Redis tiêu chuẩn. Trong bài đăng trên blog này, chúng tôi sẽ hướng dẫn bạn quy trình sử dụng công cụ mã nguồn mở Redis-Shake. Được phát triển và duy trì bởi Nhóm NoSQL trong bộ phận Cơ sở dữ liệu Alibaba-Cloud, Redis-Shake cho phép bạn dễ dàng di chuyển dữ liệu Redis giữa các cụm Redis. Mặc dù hướng dẫn này hướng đến việc triển khai ScaleGrid cho Redis ™ *, hướng dẫn này có thể được sử dụng cho các loại triển khai Redis khác cũng như với một số sửa đổi nhỏ.
Không cần phải làm gì thêm, hãy bắt đầu với hướng dẫn di chuyển!
Điều kiện tiên quyết
Bạn sẽ cần một máy Linux hoặc Windows để thực hiện quá trình di chuyển. (Nếu cần, đây có thể là máy nguồn hoặc máy đích).
Một điều quan trọng cần đảm bảo trước khi bạn tiếp tục là hiện tại Redis-Shake không hỗ trợ các cụm hỗ trợ SSL. Hãy đảm bảo rằng cả cụm nguồn và cụm đích đều không được bật SSL.
Quy tắc tường lửa
Đảm bảo rằng bạn đã tạo quy tắc tường lửa để cho phép máy Linux / Windows của bạn kết nối với cả cụm nguồn và đích. Tham khảo liên kết này để biết thêm thông tin về cách thiết lập điều này trên ScaleGrid.
Tải xuống Redis-Shake
Tải xuống và giải nén Redis-Shake trên máy Linux / Windows sau khi chọn phiên bản ổn định / mới nhất từ liên kết này. Bạn cũng có thể sử dụng các lệnh sau để tải xuống phiên bản mới nhất hiện nay (v2.1.1).
wget https://github.com/alibaba/RedisShake/releases/download/release-v2.1.1-20210903/release-v2.1.1-20210903.tar.gz tar -xvzf release-v2.1.1-20210903.tar.gz cd release-v2.1.1-20210903/
Tiếp theo, chúng tôi sẽ cho bạn thấy hai trường hợp sử dụng khác nhau cho Redis-Shake.
- Di chuyển dữ liệu từ Độc lập và Chủ-nô lệ
- Di chuyển dữ liệu trong Chế độ cụm
Dữ liệu Di chuyển - Độc lập và Chính chủ
Trong phần này, chúng tôi sẽ hướng dẫn bạn cách di chuyển dữ liệu của bạn trong các thiết lập khác nhau sau:
- Độc lập đến Độc lập
- Master-Slave thành Master-Slave
- Độc lập với Master-Slave (và ngược lại)
1. Thu thập thông tin
Ghi lại thông tin sau từ tab Tổng quan trong trang chi tiết cụm từ cả cụm nguồn và cụm đích của bạn:
- Tên máy chủ :Chuỗi kết nối có định dạng [tên máy:cổng]. Nó sẽ trông giống như sau: EX-redms-00-redis-master.example.domain.io
- (Trong trường hợp cụm Master-Slave, chúng tôi sẽ kết nối với cụm chính).
- Cổng :6379
- Mật khẩu :Bạn có thể tìm thấy mật khẩu của mình và đặt lại mật khẩu đó từ bảng điều khiển trong Thông tin đăng nhập
2. Chỉnh sửa tệp cấu hình
Mở tệp “redis-lắc.conf” của bạn trong thư mục chính và chỉnh sửa các biến sau:
source.type = standalone
source.address = <source_hostname>:6379
source.password_raw = <source_password>
target.type = standalone
target.address = <target_hostname>:6379
target.password_raw = <target_password>
3. Đồng bộ hóa dữ liệu
Chạy lệnh sau để đồng bộ hóa dữ liệu giữa nguồn và cụm đích:
$ ./redis-shake -type sync -conf redis-shake.conf
4. Chờ nhật ký
Chờ cho đến khi bạn thấy thông tin sau trong nhật ký:
sync rdb done.
Điều này có nghĩa là quá trình đồng bộ hóa đầy đủ đã được hoàn tất và quá trình đồng bộ hóa gia tăng bắt đầu.
5. Dừng đồng bộ hóa tăng dần
Nếu +writeBytes=0
được nhìn thấy trong một thời gian dài, sau đó điều đó có nghĩa là không có dữ liệu mới nào được tăng lên. Bạn có thể dừng đồng bộ hóa tăng dần bằng cách nhấn Ctrl + C . Nó sẽ giống như sau:
sync: +forwardCommands=0 +filterCommands=0 +writeBytes=0
6. Số khóa phù hợp
Bây giờ hãy đi theo liên kết này tới tài liệu trợ giúp của chúng tôi để giúp bạn kết nối với cả hai cụm bằng cách sử dụng redis-cli và sau đó so khớp số lượng khóa giữa các cụm của bạn bằng cách sử dụng info keyspace
lệnh trên cả hai cụm.
Và thế là xong! Giờ đây, bạn đã di chuyển thành công dữ liệu từ cụm này sang cụm khác bằng Redis-Shake. Nếu bạn có các cụm ở Chế độ cụm, bạn có thể muốn xem phần tiếp theo của chúng tôi trong hướng dẫn này để xem bạn cần làm gì nếu đang chạy loại cụm đó.
Di chuyển Dữ liệu - Chế độ Cụm
Trong phần này, chúng tôi sẽ chỉ cho bạn cách di chuyển dữ liệu từ một triển khai Redis ở chế độ cụm sang một cụm khác.
1. Thu thập thông tin
Ghi lại thông tin sau từ tab Tổng quan trong trang chi tiết cụm từ cả cụm nguồn và cụm đích của bạn:
- Tên máy chủ :Chuỗi kết nối có định dạng [hostname1:port], [hostname2:port], [hostname3:port]. Nó sẽ trông giống như sau: EX-redms-03-redis-master.example.domain.io, EX-redms-06-redis-master.example.domain.io, EX-redms-09-redis- master.example.domain.io
- Cổng :6379
- Mật khẩu :Bạn có thể tìm thấy mật khẩu của mình và đặt lại mật khẩu đó từ bảng điều khiển trong Thông tin đăng nhập
2. Chỉnh sửa tệp cấu hình
Mở tệp “redis-lắc.conf” của bạn trong thư mục chính và chỉnh sửa các biến sau:
source.type = cluster
source.address = <source_hostname1>:6379;<source_hostname2>:6379;<source_hostname3>:6379
source.password_raw = <source_password>
target.type = standalone
target.address = <target_hostname1>:6379;<target_hostname2>:6379;<target_hostname3>:6379
target.password_raw = <target_password>
3. Đồng bộ hóa dữ liệu
Chạy lệnh sau để đồng bộ hóa dữ liệu giữa nguồn và cụm đích:
$ ./redis-shake -type sync -conf redis-shake.conf
4. Chờ nhật ký
Chờ cho đến khi bạn thấy thông tin sau trong nhật ký:
sync rdb done.
Điều này có nghĩa là quá trình đồng bộ hóa đầy đủ đã được hoàn tất và quá trình đồng bộ hóa gia tăng bắt đầu.
5. Dừng đồng bộ hóa tăng dần
Nếu +writeBytes=0
được nhìn thấy trong một thời gian dài, sau đó điều đó có nghĩa là không có dữ liệu mới nào được tăng lên. Bạn có thể dừng đồng bộ hóa tăng dần bằng cách nhấn Ctrl + C . Nó sẽ giống như sau:
sync: +forwardCommands=0 +filterCommands=0 +writeBytes=0
6. Số khóa phù hợp
Bây giờ hãy đi theo liên kết này tới tài liệu trợ giúp của chúng tôi để giúp bạn kết nối với cả hai cụm bằng cách sử dụng redis-cli và sau đó so khớp số lượng khóa giữa các cụm của bạn bằng cách sử dụng info keyspace
lệnh trên cả hai cụm.
Và thế là xong! Giờ đây, bạn đã di chuyển thành công dữ liệu từ một cụm trong Chế độ cụm sang một cụm khác bằng Redis-Shake. Để biết thêm thông tin về Redis-Shake và các khả năng của nó, hãy truy cập trang GitHub của họ để tìm hiểu thêm và tải phiên bản mới nhất.
|
* Redis là thương hiệu của Redis Labs Ltd. Mọi quyền trong đó được bảo lưu cho Redis Labs Ltd. Mọi việc sử dụng của ScaleGrid chỉ dành cho mục đích tham khảo và không cho thấy bất kỳ tài trợ, chứng thực nào hoặc liên kết giữa Redis và ScaleGrid.