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

Redis資料遷移 & 資料審計

目錄

一、redis資料遷移(單節點擴充套件為叢集)

0.前提

# 此操作針對生產中已存在資料,但是隻是單節點環境,需要對redis擴充套件為叢集,但是資料是直接儲存為rdb檔案,並沒有叢集的槽位的概念,所以需要藉助工具實現。
· 可在叢集已構建好的環境中實現,直接將單節點加入到叢集中來

1.安裝遷移工具

#1.安裝依賴
[root@db02 ~]# yum install -y automake libtool autoconf bzip2

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

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

2.編寫資料遷移指令碼

[root@db02 redis-migrate-tool]# vim tocluster.sh

[source]
type: single
servers:
 - 172.16.1.52:6381				# 單節點ip和埠

[target]
type: redis cluster
servers:
 - 172.16.1.51:6379				# 叢集的任意伺服器ip和埠,主哦記得是。

[common]
listen: 0.0.0.0:8888			        # 這裡不用定義,按照這裡預設即可

3.單節點生成資料

# 模擬單節點中存在的資料
[root@db03 ~]# vim data.sh 
#!/bin/bash
for i in {1001..2000};do
    redis-cli -c -p 6381 -h 172.16.1.52 set k${i} v${i}
done

[root@db03 ~]# sh data.sh 

# 執行完後可以去redis中bgsave一下,生成rdb檔案

4.遷移資料

# 使用此操作為關鍵,可將單節點中資料均勻分片到叢集中,在生產中,如web端已經連線了此redis,可稍等資料分片完成後,
將地址修改為新叢集redis地址。這裡資料一直在遷移,就算有新的資料寫入,也會幫助資料繼續分片至叢集中。
[root@db02 redis-migrate-tool]# src/redis-migrate-tool -c tocluster.sh &

二、資料審計

0.前提

資料審計一般為資料清理,如有些鍵值對佔用空間較大,使用

1.安裝工具

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

#2.安裝工具(指定阿里源方式去安裝	)
[root@db01 ~]#   pip install rdbtools python-lzf  -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com

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

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

2.確認生成rdb檔案

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

3.使用工具分析檔案

#使用工具生成CSV表格,下載下來進行分析,可對鍵值對的位元組數,佔用長度進行分析
[root@db02 6381]# rdb -c memory ./dump.rdb -f memory.csv