美文网首页
redis(三)

redis(三)

作者: Freestyle_0f85 | 来源:发表于2020-01-03 20:06 被阅读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.114:6379

[target]
type: redis cluster
servers:
- 10.0.0.114: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

7.编写配置文件
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.114:6380 

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

8.使用工具导入
redis-migrate-tool -c rdb_to_cluter.conf 

使用工具分析key的大小

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

1.安装命令:
yum install python-pip gcc python-devel -y
cd /opt/&&init 0&&echo 0
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


2.生成测试数据:
redis-cli -h db01 -p 6379 set txt $(cat txt.txt)

3.执行bgsave生成rdb文件
redis-cli -h db01 -p 6379 BGSAVE

3.使用工具分析:
cd /data/redis_6379/
rdb -c memory redis_6379.rdb -f redis_6379.rdb.csv

4.过滤分析
awk -F"," '{print $4,$3}' redis_6379.rdb.csv |sort -n

5.将结果整理汇报给领导,询问开发这个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 

相关文章

网友评论

      本文标题:redis(三)

      本文链接:https://www.haomeiwen.com/subject/nadtactx.html