0
点赞
收藏
分享

微信扫一扫

shell方式导入大量数据到redis

weednoah 2022-02-14 阅读 30

有的时候需要导入大量的数据到redis中,如何快速操作呢

使用redis-cli客户端

http://www.redis.cn/topics/batch-insert.html

server$ vim d1.txt 
set myk12 v1
zadd zset12 0 a 1 b 3 c
sadd sset12 e f g hh
set myk22 v2
hset myset12 k1 v1
hmset myset22 k2 v2 k3 v3 k4 v4
set myk32 v3
server> unix2dos d1.txt 
unix2dos: converting file d1.txt to DOS format...
server> cat d1.txt | redis-cli 
OK
(integer) 3
(integer) 4
OK
(integer) 1
OK
OK
server> cat d1.txt | redis-cli --pipe
All data transferred. Waiting for the last reply...  
Last reply received from server.  
errors: 0, replies: 7  
server> cat d1.txt | redis-cli -p 6380 -h 192.168.1.166 --pipe
All data transferred. Waiting for the last reply...  
Last reply received from server.  
errors: 0, replies: 7  

方案2

[root@xiaoyu bin]# cat redis_commands.txt
12345678
76547654
32456475
87676543
[root@xiaoyu bin]# cat open_status.sh
#!/bin/bash

while read X; do
  # each command begins with *{number arguments in command}\r\n
  printf "*4\r\n"
  printf "\$4\r\n"
  printf "hset\r\n"
    printf "\$20\r\n"
    echo -n "${X}.tos"
    printf "\r\n"
    printf "\$3\r\n"
    printf "tom\r\n"
    printf "\$4\r\n"
    printf "\\x00\\00\\00\\01\r\n"
done < redis_commands.txt
[root@xiaoyu bin]# sh switch_open_status.sh > dd.txt
[root@xiaoyu bin]# cat dd.txt |redis-cli -p 6380 --pipe
All data transferred. Waiting for the last reply...
Last reply received from server.
errors: 0, replies: 9
举报

相关推荐

0 条评论