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 相关文章推荐
input file获得文件根目录简单实现
Apr 26 PHP
使用Sphinx对索引进行搜索
Jun 25 PHP
让codeigniter与swfupload整合的最佳解决方案
Jun 12 PHP
PHP使用适合阅读的格式显示文件大小的方法
Mar 05 PHP
百度地图经纬度转换到腾讯地图/Google 对应的经纬度
Aug 28 PHP
PHP+原生态ajax实现的省市联动功能详解
Aug 15 PHP
浅析PHP中的闭包和匿名函数
Dec 25 PHP
PHP实现的字符串匹配算法示例【sunday算法】
Dec 19 PHP
PHP实现生成推广海报的方法详解
Mar 14 PHP
PHP检查URL包含特定字符串实例方法
Feb 11 PHP
laravel框架中间件 except 和 only 的用法示例
Jul 12 PHP
PhpStorm的使用教程(本地运行PHP+远程开发+快捷键)
Mar 26 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/06/18 PHP
php身份证号码检查类实例
2015/06/18 PHP
初识PHP中的Swoole
2016/04/05 PHP
PHP常用文件操作函数和简单实例分析
2016/06/03 PHP
PHP实现的AES加密、解密封装类与用法示例
2018/08/02 PHP
jquery 年会抽奖程序
2011/12/22 Javascript
再分享70+免费的jquery 图片滑块效果插件和教程
2014/12/15 Javascript
js限制文本框只能输入整数或者带小数点的数字
2015/04/27 Javascript
js clearInterval()方法的定义和用法
2015/11/11 Javascript
JavaScript+html5 canvas实现图片破碎重组动画特效
2016/02/22 Javascript
JavaScript判断数组是否存在key的简单实例
2016/08/03 Javascript
AngularJs IE Compatibility 兼容老版本IE
2016/09/01 Javascript
微信+angularJS的SPA应用中用router进行页面跳转,jssdk校验失败问题解决
2016/09/09 Javascript
JavaScript定时器制作弹窗小广告
2017/02/05 Javascript
详解微信小程序Radio选中样式切换
2017/07/06 Javascript
微信小程序实现星星评价效果
2018/11/02 Javascript
微信小程序使用map组件实现解析经纬度功能示例
2019/01/22 Javascript
Angular6使用forRoot() 注册单一实例服务问题
2019/08/27 Javascript
微信小程序点击view动态添加样式过程解析
2020/01/21 Javascript
用C++封装MySQL的API的教程
2015/05/06 Python
Python Requests 基础入门
2016/04/07 Python
Python文件操作,open读写文件,追加文本内容实例
2016/12/14 Python
Python 判断文件或目录是否存在的实例代码
2018/07/19 Python
对python添加模块路径的三种方法总结
2018/10/16 Python
python实时检测键盘输入函数的示例
2019/07/17 Python
基于打开pycharm有带图片md文件卡死问题的解决
2020/04/24 Python
Django model重写save方法及update踩坑详解
2020/07/27 Python
python3.6中anaconda安装sklearn踩坑实录
2020/07/28 Python
基于CentOS搭建Python Django环境过程解析
2020/08/24 Python
python简单实现插入排序实例代码
2020/12/16 Python
HTML5中canvas中的beginPath()和closePath()的重要性
2018/08/24 HTML / CSS
HTML5拖拽API经典实例详解
2018/04/20 HTML / CSS
科沃斯机器人官网商城:Ecovacs
2016/08/29 全球购物
监理资料员岗位职责
2014/01/03 职场文书
气象学专业个人求职信
2014/03/15 职场文书
解决Python字典查找报Keyerror的问题
2021/05/26 Python