php实现redis数据库指定库号迁移的方法


Posted in PHP onJanuary 14, 2015

本文实例讲述了php实现redis数据库指定库号迁移的方法,分享给大家供大家参考。具体如下:

redis普通的数据库迁移,只能整个redis save,或者利用主从,当然也可以安装一个redis-dump,不过比较麻烦,这里提供一种php的脚本,实现指定库号的迁移,其实也就是遍历根据存储类型,读出来,插入新库,效果是这样:

[root@localhost ~]# php 1.php 

1/407 

101/407 

201/407 

301/407 

401/407

PHP实例代码如下:
<?php 

$from = '10.0.2.52:6379/7'; 

$to   = '127.0.0.1:6379/7'; 

$from_redis = redis_init($from); 

$to_redis   = redis_init($to); 

$keys  = $from_redis->keys('*'); 

$count = 0; 

$total = count($keys); 

foreach($keys as $key){ 

    if(++$count % 100 == 1){ 

        echo "$count/$total\n"; 

    } 

    $type = $from_redis->type($key); 

    switch($type){ 

        case Redis::REDIS_STRING: 

            $val = $from_redis->get($key); 

            $to_redis->set($key, $val); 

            break; 

        case Redis::REDIS_LIST: 

            $list = $from_redis->lRange($key, 0, -1); 

            foreach($list as $val){ 

                $to_redis->rPush($key, $val); 

            } 

            break; 

        case Redis::REDIS_HASH: 

            $hash = $from_redis->hGetAll($key); 

            $to_redis->hMSet($key, $hash); 

            break; 

        case Redis::REDIS_ZSET: 

            $zset = $from_redis->zRange($key, 0, -1, true); 

            foreach($zset as $val=>$score){ 

                $to_redis->zAdd($key, $score, $val); 

            } 

            break; 

    } 

} 

function redis_init($conf){ 

    $redis = new Redis(); 

    preg_match('/^([^:]+)(:[0-9]+)?\\/(.+)?/', $conf, $ms); 

    $host = $ms[1]; 

    $port = trim($ms[2], ':'); 

    $db = $ms[3]; 

    $redis->connect($host, $port); 

    $redis->select($db); 

    return $redis; 

} 

?>

希望本文所述对大家的php程序设计有所帮助。

PHP 相关文章推荐
php正则表达式(regar expression)
Sep 10 PHP
PHP中require和include路径问题详解
Dec 25 PHP
php中使用url传递数组的方法
Feb 11 PHP
使用XHGui来测试PHP性能的教程
Jul 03 PHP
win7系统配置php+Apache+mysql环境的方法
Aug 21 PHP
PHP生成条形码大揭秘
Sep 24 PHP
php基于dom实现读取图书xml格式数据的方法
Feb 03 PHP
PHP编程实现csv文件导入mysql数据库的方法
Apr 29 PHP
PHP实现蛇形矩阵,回环矩阵及数字螺旋矩阵的方法分析
May 29 PHP
php获取数据库中数据的实现方法
Jun 01 PHP
php实现的统计字数函数定义与使用示例
Jul 26 PHP
PHP数组遍历的几种常见方式总结
Feb 15 PHP
php导入excel文件到mysql数据库的方法
Jan 14 #PHP
php+mysql查询优化简单实例
Jan 13 #PHP
php5.4以下版本json不支持不转义内容中文的解决方法
Jan 13 #PHP
php正则匹配html中带class的div并选取其中内容的方法
Jan 13 #PHP
PHP针对JSON操作实例分析
Jan 12 #PHP
php页面缓存方法小结
Jan 10 #PHP
php中异常处理方法小结
Jan 09 #PHP
You might like
php获得文件大小和文件创建时间的方法
2015/03/13 PHP
php实现模拟登陆方正教务系统抓取课表
2015/05/19 PHP
WordPress中查询文章的循环Loop结构及用法分析
2015/12/17 PHP
Yii数据读取与跳转参数传递用法实例分析
2016/07/12 PHP
新手入门常用代码集锦
2007/01/11 Javascript
jquery的Tooltip插件 qtip使用详细说明
2010/09/08 Javascript
自动最大化窗口的Javascript代码
2013/05/22 Javascript
基于jquery实现简单的手风琴特效
2015/11/24 Javascript
基于jQuery实现仿51job城市选择功能实例代码
2016/03/02 Javascript
JavaScript实现选中文字提示新浪微博分享效果
2017/06/15 Javascript
Ionic3实现图片瀑布流布局
2017/08/09 Javascript
angularjs实现简单的购物车功能
2017/09/21 Javascript
深入理解Vue 组件之间传值
2018/08/16 Javascript
JS中验证整数和小数的正则表达式
2018/10/08 Javascript
在element-ui的select下拉框加上滚动加载
2019/04/18 Javascript
使用Phantomjs和Node完成网页的截屏快照的方法
2019/07/16 Javascript
node命令行工具之实现项目工程自动初始化的标准流程
2019/08/12 Javascript
js前端如何写一个精确的倒计时代码
2019/10/25 Javascript
jQuery鼠标滑过横向时间轴样式(代码详解)
2019/11/01 jQuery
linux系统使用python获取cpu信息脚本分享
2014/01/15 Python
Python字符串和文件操作常用函数分析
2015/04/08 Python
python中threading超线程用法实例分析
2015/05/16 Python
Pythont特殊语法filter,map,reduce,apply使用方法
2016/02/27 Python
详解python的数字类型变量与其方法
2016/11/20 Python
python实现NB-IoT模块远程控制
2018/06/20 Python
详解如何用django实现redirect的几种方法总结
2018/11/22 Python
python time.sleep()是睡眠线程还是进程
2019/07/09 Python
python关于倒排列的知识点总结
2020/10/13 Python
HTML5和CSS3让网页设计提升到下一个高度
2009/08/14 HTML / CSS
Omio西班牙:全欧洲低价大巴、火车和航班搜索和比价
2017/02/11 全球购物
Delphi工程师笔试题
2013/09/21 面试题
生物科学专业毕业生求职信
2014/06/02 职场文书
食堂厨师岗位职责
2014/08/25 职场文书
网站出售协议书范文
2014/10/10 职场文书
《最后一头战象》教学反思
2016/02/16 职场文书
SQL SERVER触发器详解
2022/02/24 SQL Server