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 相关文章推荐
Linux下ZendOptimizer的安装与配置方法
Apr 12 PHP
PHP 基本语法格式
Dec 15 PHP
php写的带缓存数据功能的mysqli类
Sep 06 PHP
php.ini 配置文件的深入解析
Jun 17 PHP
ThinkPHP调用百度翻译类实现在线翻译
Jun 26 PHP
php中Y2K38的漏洞解决方法实例分析
Sep 22 PHP
php生成动态验证码gif图片
Oct 19 PHP
你不知道的文件上传漏洞php代码分析
Sep 29 PHP
php获取ip及网址的简单方法(必看)
Apr 01 PHP
php自定义函数实现统计中文字符串长度的方法小结
Apr 15 PHP
PHP回调函数与匿名函数实例详解
Aug 16 PHP
centos7上编译安装php7以php-fpm方式连接apache
Nov 08 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验证复选框有效性的示例
2013/11/13 PHP
PHP实现的redis主从数据库状态检测功能示例
2017/07/20 PHP
原生php实现excel文件读写的方法分析
2018/04/25 PHP
PHP微信发送推送消息乱码的解决方法
2019/02/28 PHP
Javascript 类与静态类的实现
2010/04/01 Javascript
Javascript中正则表达式的全局匹配模式分析
2011/04/26 Javascript
javascript获取函数名称、函数参数、对象属性名称的代码实例
2014/04/12 Javascript
javascript动态控制服务器控件实例
2014/09/05 Javascript
深入分析下javascript中的[]()+!
2015/07/07 Javascript
四种参数传递的形式——URL,超链接,js,form表单
2015/07/24 Javascript
AngularJS控制器之间的数据共享及通信详解
2016/08/01 Javascript
微信小程序之页面跳转和参数传递的实现
2017/09/29 Javascript
浅谈react 同构之样式直出
2017/11/07 Javascript
解决微信浏览器缓存站点入口文件(IIS部署Vue项目)
2019/06/17 Javascript
node.js 使用 net 模块模拟 websocket 握手进行数据传递操作示例
2020/02/11 Javascript
微信小程序仿抖音短视频切换效果的实例代码
2020/06/24 Javascript
详解ES6 扩展运算符的使用与注意事项
2020/11/12 Javascript
深入解析Python中的lambda表达式的用法
2015/08/28 Python
使用Turtle画正螺旋线的方法
2017/09/22 Python
详解python实现数据归一化处理的方式:(0,1)标准化
2019/07/17 Python
python实现简单飞行棋
2020/02/06 Python
浅谈python 中的 type(), dtype(), astype()的区别
2020/04/09 Python
matplotlib 曲线图 和 折线图 plt.plot()实例
2020/04/17 Python
基于matplotlib中ion()和ioff()的使用详解
2020/06/16 Python
通过python-pptx模块操作ppt文件的方法
2020/12/26 Python
python 写一个水果忍者游戏
2021/01/13 Python
乌克兰巴士票购买网站:inBus
2021/03/12 全球购物
编码实现字符串转整型的函数
2012/06/02 面试题
服务行业个人求职的自我评价
2013/12/12 职场文书
社会公德演讲稿
2014/05/20 职场文书
孝老爱亲事迹材料
2014/12/24 职场文书
房屋维修申请报告
2015/05/18 职场文书
春季运动会加油词
2015/07/18 职场文书
Python超详细分步解析随机漫步
2022/03/17 Python
对讲机知识
2022/04/07 无线电
python如何为list实现find方法
2022/05/30 Python