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。

  • 相关阅读:
    学习Javascript闭包(Closure)
    JS的this原理
    页面锚点的设置
    JS异常捕获和抛出
    C++ 指针初始化要注意的地方
    Jupyter Notebook里面使用Matplotlib画图 图表中文乱码问题
    Matplotlib 基本图表的绘制
    Matplotlib 子图的创建
    Matplotlib 图表的样式参数
    Matplotlib 图表的基本参数设置
  • 原文地址:https://www.cnblogs.com/gaohj/p/3133576.html
Copyright © 2011-2022 走看看