Redis(四)

2020-01-04  本文已影响0人  吃可爱长大鸭

第二十一章 单节点数据迁移到集群

1.安装工具

yum install libtool autoconf automake git bzip2 -y 
cd /opt/
git clone https://github.com/vipshop/redis-migrate-tool.git
cd redis-migrate-tool/
autoreconf -fvi
./configure
make && make install 

2.编写配置文件

cat > 6379_to_6380.conf << EOF
[source]
type: single
servers:
- 10.0.0.51:6379

[target]
type: redis cluster
servers:
- 10.0.0.51:6380 

[common]
listen: 0.0.0.0:8888
source_safe: true
EOF

3.单节点生成测试数据

redis-server /opt/redis_6379/conf/redis_6379.conf 
cat >input_6379.sh<<EOF 
#!/bin/bash
for i in {1..1000}
do
    redis-cli -c -h db01 -p 6379 set oldzhang_\${i} oldzhang_\${i}
    echo "set oldzhang_\${i} is ok"
done
EOF

4.运行工具迁移单节点数据到集群

redis-migrate-tool -c 6379_to_6380.conf

5.运行工具验证数据是否迁移完成

redis-migrate-tool -c 6379_to_6380.conf -C redis_check

第二十二章 RDB文件迁移到集群

1.先把集群的RDB文件都收集起来

- 在从节点上执行bgsave命令生成RDB文件
redis-cli -h db01 -p 6381 BGSAVE
redis-cli -h db02 -p 6381 BGSAVE
redis-cli -h db03 -p 6381 BGSAVE

2.把从节点生成的RDB文件拉取过来

mkdir rdb_backup
cd rdb_backup/
scp db01:/data/redis_6381/redis_6381.rdb db01_6381.rdb
scp db02:/data/redis_6381/redis_6381.rdb db02_6381.rdb
scp db03:/data/redis_6381/redis_6381.rdb db03_6381.rdb

3.清空数据

redis-cli -c -h db01 -p 6380 flushall
redis-cli -c -h db02 -p 6380 flushall
redis-cli -c -h db03 -p 6380 flushall

4.编写配置文件

cat >rdb_to_cluter.conf <<EOF
[source]
type: rdb file
servers:
- /root/rdb_backup/db01_6381.rdb 
- /root/rdb_backup/db02_6381.rdb 
- /root/rdb_backup/db03_6381.rdb 

[target]
type: redis cluster
servers:
- 10.0.0.51:6380 

[common]
listen: 0.0.0.0:8888
source_safe: true
EOF

5.使用工具导入

redis-migrate-tool -c rdb_to_cluter.conf 

第二十三章 使用工具分析key的大小

0.需求背景

redis的内存使用太大键值太多,不知道哪些键值占用的容量比较大,而且在线分析会影响性能.

1.安装命令:

yum install python-pip gcc python-devel -y
cd /opt/
git clone https://github.com/sripathikrishnan/redis-rdb-tools
cd redis-rdb-tools
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple python-lzf 


mkdir ~/.pip/
cat >~/.pip/pip.conf <<EOF
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host = https://pypi.tuna.tsinghua.edu.cn
EOF
pip install redis          #家目录下执行
python setup.py install    #/opt/redis-rdb-tools 下执行

2.生成测试数据:

redis-cli -h db01 -p 6379 set txt $(cat txt.txt)

3.执行bgsave生成rdb文件

redis-cli -h db01 -p 6379 BGSAVE

4.使用工具分析:

cd /data/redis_6379/
rdb -c memory redis_6379.rdb -f redis_6379.rdb.csv

5.过滤分析

awk -F"," '{print $4,$3}' redis_6379.rdb.csv |sort -r

6.将结果整理汇报给领导,询问开发这个key是否可以删除

第二十四章 使用工具将rdb转换成json

rdb --command json redis_6379.rdb -f redis_6379.rdb.json

第二十五章 使用工具对比rdb文件差异

cd /root/rdb_backup
rdb --command diff db01_6381.rdb | sort > dump1.txt
rdb --command diff db02_6381.rdb | sort > dump2.txt
vimdiff dump1.txt dump2.txt 
上一篇 下一篇

猜你喜欢

热点阅读