1. 程式人生 > 實用技巧 >Redis 資料遷移 & 資料審計

Redis 資料遷移 & 資料審計

Redis 資料遷移

安裝遷移工具

# 安裝依賴
[root@dbtest03 ~]# yum install -y automake libtool autoconf bzip2 git

# 拉取工具
[root@dbtest03 ~]# git clone https://github.com/vipshop/redis-migrate-tool
# 或者上傳包

# 安裝
[root@dbtest03 ~]# cd redis-migrate-tool/
[root@dbtest03 redis-migrate-tool]# autoreconf -fvi
[root@dbtest03 redis-migrate-tool]# ./configure
[root@dbtest03 redis-migrate-tool]# make

編輯配置檔案

# 資料遷移配置檔案,資料遷移源 
[root@dbtest03 redis-migrate-tool]# vim tocluster.sh
# 資料遷移源
[source]
# 源型別 單點 Redis 例項
type: single
# 主機 IP 地址,埠
servers:
 - 172.16.1.123:6381


# 目標源
[target]
# 源型別,Redis 叢集
type: redis cluster
# 主機 IP 地址,埠(叢集裡任意一個節點)
servers:
 - 172.16.1.121:6379

[common]
listen: 0.0.0.0:8888

單節點生成資料

[root@dbtest03 ~]# vim data.sh 
#!/bin/bash
for i in {1001..2000};do
    redis-cli -c -p 6381 -h 172.16.1.123 set k${i} v${i}
done

[root@dbtest03 ~]# sh data.sh 

準備無資料叢集

[root@dbtest01 ~]# redis-trib.rb info 172.16.1.121:6379
172.16.1.121:6379 (85622647...) -> 0 keys | 5461 slots | 1 slaves.
172.16.1.123:6379 (98f828cc...) -> 0 keys | 5461 slots | 1 slaves.
172.16.1.122:6379 (0f0232ee...) -> 0 keys | 5462 slots | 1 slaves.
[OK] 0 keys in 3 masters.
0.00 keys per slot on average.

遷移資料

# 執行資料遷移
[root@dbtest03 redis-migrate-tool]# src/redis-migrate-tool -c tocluster.sh &

# 檢視資料是否遷移到叢集中
[root@dbtest01 ~]# redis-trib.rb info 172.16.1.121:6379
172.16.1.121:6379 (85622647...) -> 333 keys | 5461 slots | 1 slaves.
172.16.1.123:6379 (98f828cc...) -> 338 keys | 5461 slots | 1 slaves.
172.16.1.122:6379 (0f0232ee...) -> 329 keys | 5462 slots | 1 slaves.
[OK] 1000 keys in 3 masters.
0.06 keys per slot on average.

Redis 資料審計

安裝工具

# 安裝依賴
[root@dbtest02 ~]# yum install -y python-pip python-devel

# 安裝工具
[root@dbtest02 ~]# pip install rdbtools python-lzf

# 下載或上傳
[root@dbtest02 ~]# git clone https://github.com/sripathikrishnan/redis-rdb-tools
# 或者上傳
[root@dbtest02 ~]# tar xf redis-rdb-tools.tar.gz

# 安裝
[root@dbtest02 ~]# cd redis-rdb-tools
[root@dbtest02 redis-rdb-tools]# python setup.py install

生成 RDB 檔案

[root@dbtest02 6381]# redis-cli -p 6381
127.0.0.1:6381> bgsave
Background saving started
127.0.0.1:6381> quit
[root@dbtest02 6381]# ll
total 44
-rw-r--r-- 1 root root 26206 Aug  7 15:18 dump.rdb

使用工具分析檔案

# 使用工具生成 CSV 表格,下載下來進行分析
[root@dbtest02 6381]# rdb -c memory ./dump.rdb -f memory.csv