欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Redis批量导入数据功能

程序员文章站 2022-06-11 08:10:56
...

Redis批量导入数据功能

​ 背景:需要在生产环境中导入excel 中10W+ 底量数据,这个时候生产包已经进入交付环境验证结束环节,现程序中支持这部分数据只走部分流程,因临时改变了正常注入的流程,不能写程序,只能通过脚本的方式将这些数据导入到redis中,因没有实战过redis,只会些简单的功能,了解了下redis的功能,发现有个pipe模式可以将所有的内容快速导入到redis中,因此上午花费了两个小时的时间在自己的服务器上搭建了个redis集群验证这个功能

1.官网下载 redis-5.0.8.tar.gz 包,上传至服务器,通过以下命令解压

tar -xzvf redis-5.0.8.tar.gz

2.将解压的目录拷贝到你要安装的最终目录里,我使用的目录为 /usr/local/software/rediscluster/redis/执行以下命令拷贝

cp -R redis-5.0.8/* /usr/local/software/rediscluster/redis/

3.开始编译安装

make install

4.在/usr/local/software/rediscluster/ 目录下建redis700{1-6}六个目录以及logs目录

mkdir redis7001 redis7002 redis7003 redis7004 redis7005 redis7006 logs

5.再创建startCluster.sh,createCluster.sh,shutdownCluster.sh三个文件备用,并授予执行权限

touch startCluster.sh
touch createCluster.sh
touch shutdownCluster.sh
chmod 777 startCluster.sh
chmod 777 createCluster.sh
chmod 777 shutdownCluster.sh

6.接下来拷贝redis.conf文件到 /usr/local/bin目录下,将/usr/local/bin目录下的东西都拷贝到之前创建的reids700{1-6}目录下,并将redis-cli拷贝备用

cp -R /usr/local/bin/* /usr/local/software/rediscluster/redis7001/
cp -R /usr/local/bin/* /usr/local/software/rediscluster/redis7002/
cp -R /usr/local/bin/* /usr/local/software/rediscluster/redis7003/
cp -R /usr/local/bin/* /usr/local/software/rediscluster/redis7004/
cp -R /usr/local/bin/* /usr/local/software/rediscluster/redis7005/
cp -R /usr/local/bin/* /usr/local/software/rediscluster/redis7006/
cp -R /usr/local/bin/redis-cli /usr/local/software/rediscluster/

7.然后修改redis700{1-6}目录下的redis.conf配置文件,修改完后改名为redis-{port}.conf

第1处: port 6379				    ————> 值 改成 7001
第2处: daemonize no 			    ————> 值 改成 yes
第3处: pidfile /var/run/redis_6379.pid  	    ————> 值 改成 /var/run/redis_7001.pid
第4处: logfile "" 				    ————> 值 改成 "../logs/redis_7001.log"
第5处: bind 127.0.0.1 			    ————> 值 改成 本机IP(可通过ifconfig查询)
第6处: protected-mode yes 			    ————> 值 改成 no
第7处: # cluster-enabled yes		    ————> 去掉注释
第8处: # cluster-config-file nodes-6379.conf  ————> 去掉注释 并把数字改成对应端口号,如这里是7001
第9处: # cluster-node-timeout 15000	  ————> 去掉注释
第10处:  appendonly no			    ————> 值 改成 yes

8.脚本的内容

startCluster.sh

cd /usr/local/software/rediscluster/redis7001
./redis-server ./redis-7001.conf
cd /usr/local/software/rediscluster/redis7002
./redis-server ./redis-7002.conf
cd /usr/local/software/rediscluster/redis7003
./redis-server ./redis-7003.conf
cd /usr/local/software/rediscluster/redis7004
./redis-server ./redis-7004.conf
cd /usr/local/software/rediscluster/redis7005
./redis-server ./redis-7005.conf
cd /usr/local/software/rediscluster/redis7006
./redis-server ./redis-7006.conf

createCluster.sh ip为配置文件里bind配的值

./redis-cli --cluster create {ip}:7001 {ip}:7002 {ip}:7003 {ip}:7004 {ip}:7005 {ip}:7006

shutdownCluster.sh

cd /usr/local/software/rediscluster/redis7001
./redis-cli -h 106.54.33.142 -p 7001 shutdown
cd /usr/local/software/rediscluster/redis7002
./redis-cli -h 106.54.33.142 -p 7002 shutdown
cd /usr/local/software/rediscluster/redis7003
./redis-cli -h 106.54.33.142 -p 7003 shutdown
cd /usr/local/software/rediscluster/redis7004
./redis-cli -h 106.54.33.142 -p 7004 shutdown
cd /usr/local/software/rediscluster/redis7005
./redis-cli -h 106.54.33.142 -p 7005 shutdown
cd /usr/local/software/rediscluster/redis7006
./redis-cli -h 106.54.33.142 -p 7006 shutdown

9.以上工作做完后开始安装一些基本软件

yum -y install gcc                    ## make install 命令需要此环境
yum -y intall ruby                    ## 安装ruby(此时安装的可能使低版本的)
curl -L get.rvm.io | bash -s stable   ## 安装rvm
source /usr/local/rvm/scripts/rvm     ## 使安装的rvm立即生效
rvm install 2.4.1	                  ## 通过rvm来安装ruby高级版本
gem install redis                     ## 通过ruby的工具包gem来安装redis接口
顺利到此,则运行ruby脚本的环境已具备

10.最后通过以下脚本启动

./startCluster.sh
ps -ef| grep redis

Redis批量导入数据功能

./createCluster.sh
回车,等会儿然后输入yes即可

11.安装

yum install unix2dos

12.通过自己本地写个main方法读取excel中的信息,输入到redis.txt文件中,类似下面这种格式

set key1 value1
set key2 value2
...

然后将redis.txt上传到服务器,执行以下命令,将文件格式转化下

unix2dos redis.txt 

13.再执行以下命令将所有数据导入到redis中

cat redis.txt | redis-cli -c -h host -p port

至此终于以最快的速度完成任务了,本文部分内容参考网络,亲自验证,不足之处欢迎指正,后续有时间再好好了解了解redis,欢迎阅读,拜拜!

相关标签: 工具安装配置