zoukankan      html  css  js  c++  java
  • redis数据批量导入导出

    针对工作中可能用到 将某台服务器中的redis数据 导出然后导入到新的服务器中,一种方法是redis-dump工具,但是 他需要安装ruby环境,安装环境的过程中还可能出现意想不到的错误。所以不得不选用其他方法了。一下 是几点思路 供参考。在此谢谢我的同事(yaoer)的帮忙。

    1、数据导出,不用自己写,也不用第三方脚本,

    echo "HGETALL xxx" | redis-cli -h localhost -p 6379

    echo "HGETALL xxx" | redis-cli -h localhost -p 6379 >> wordlist.raw

    2.这样得到的结果,你可以上到服务器上 查看 wordlist.raw文件

    3.整理成输入需要的文件格式 

    $f = 'xx.oo';
    $lines = 0;
    $inkey = 0;
    $rawfile = 'xx.oo';
    $hashkey = 'xx';
    $buff = '';
    $fp = fopen($rawfile,'w');
    $fps = fopen($f,'r');
    while($line= fgets($fps)){
     $inkey = !$inkey;
     if ($inkey){

    $f = 'bayes_wordlist.raw';
    $lines = 0;
    $inkey = 0;
    $rawfile = 'bayes_wordlist.3.raw';
    $hashkey = 'bayes_wordlist';
    $buff = '';
    $fp = fopen($rawfile,'w');
    $fps = fopen($f,'r');
    while($line= fgets($fps)){
     $inkey = !$inkey;
     if ($inkey){
      $line = sprintf('"%s"',trim($line));
      $buff = "HSET $hashkey ".trim($line);
      }
     else
     {
      $buff .= ' "'.trim($line).'"';
      fwrite($fp,$buff."\r\n");
     }
    }
      $buff = "HSET $hashkey ".trim($line);
     }
     else
     {
      $buff .= ' "'.trim($line).'"';
      fwrite($fp,$buff."\r\n");
     }
    }

    如果选择哪个库 要在首行写入 select x

    4.利用redis-cli进行导入

    echo `date` > pipe.log && cat xx.oo | redis-cli >> pipe.log && echo `date` >> pipe.log

    5.加上了时间记录,和对导入结果进行纪录,真正执行导入的语句是
    cat wordlist.raw | redis-cli,当然严谨些的话redis-cli后面还要加-h localhost -p 6379等参数。

    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。互联网+时代,时刻要保持学习,携手千锋PHP,Dream It Possible。

  • 相关阅读:
    Win10 UWP Tile Generator
    Win10 BackgroundTask
    UWP Tiles
    UWP Ad
    Win10 build package error collections
    Win10 八步打通 Nuget 发布打包
    Win10 UI入门 pivot multiable DataTemplate
    Win10 UI入门 导航滑动条 求UWP工作
    UWP Control Toolkit Collections 求UWP工作
    Win10 UI入门 SliderRectangle
  • 原文地址:https://www.cnblogs.com/gaohj/p/3133576.html
Copyright © 2011-2022 走看看