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 相关文章推荐
discuz authcode 经典php加密解密函数解析
Jul 12 PHP
PHP获取MAC地址的函数代码
Sep 11 PHP
php+mysqli数据库连接的两种方式
Jan 28 PHP
JavaScript实现滚动栏效果的方法
Apr 27 PHP
将PHP从5.3.28升级到5.3.29时Nginx出现502错误
May 09 PHP
基于thinkPHP实现的微信自定义分享功能示例
Sep 23 PHP
Yii2框架RESTful API 格式化响应,授权认证和速率限制三部分详解
Nov 10 PHP
Discuz论坛密码与密保加密规则
Dec 19 PHP
PHP SPL 被遗落的宝石【SPL应用浅析】
Apr 20 PHP
Laravel框架控制器的middleware中间件用法分析
Sep 30 PHP
Laravel6.2中用于用户登录的新密码确认流程详解
Oct 16 PHP
PHP rsa加密解密算法原理解析
Dec 09 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
定制404错误页面,并发信给管理员的程序
2006/10/09 PHP
PHP的substr_replace将指定两位置之间的字符替换为*号
2011/05/04 PHP
PHP+jquery实时显示网站在线人数的方法
2015/01/04 PHP
laravel框架邮箱认证实现方法详解
2019/11/22 PHP
Thinkphp 框架扩展之Widget扩展实现方法分析
2020/04/23 PHP
Grid得到选择行数据的方法总结
2011/01/17 Javascript
jQuery中live方法的重复绑定说明
2011/10/21 Javascript
JavaScript实现检查页面上的广告是否被AdBlock屏蔽了的方法
2014/11/03 Javascript
基于jquery animate操作css样式属性小结
2015/11/27 Javascript
简单的jQuery banner图片轮播实例代码
2016/03/04 Javascript
深入理解node exports和module.exports区别
2016/06/01 Javascript
JavaScript探测CSS动画是否已经完成的方法
2016/08/30 Javascript
ionic+AngularJs实现获取验证码倒计时按钮
2017/04/22 Javascript
Angular弹出模态框的两种方式
2017/10/19 Javascript
JS实现table表格固定表头且表头随横向滚动而滚动
2017/10/26 Javascript
解决element UI 自定义传参的问题
2018/08/22 Javascript
解决vue props 拿不到值的问题
2018/09/11 Javascript
微信小程序自定义弹窗实现详解(可通用)
2019/07/04 Javascript
python使用tornado实现登录和登出
2018/07/28 Python
python 读取摄像头数据并保存的实例
2018/08/03 Python
Python3网络爬虫中的requests高级用法详解
2019/06/18 Python
使用python实现希尔、计数、基数基础排序的代码
2019/12/25 Python
基于Python数据结构之递归与回溯搜索
2020/02/26 Python
css3实现的下拉菜单效果示例
2014/01/22 HTML / CSS
美国排名第一的在线葡萄酒商店:Wine.com
2016/09/07 全球购物
Currentbody德国站:健康与美容技术专家
2020/04/05 全球购物
写一个用矩形法求定积分的通用函数
2012/11/08 面试题
师范生实习个人的自我评价
2013/09/28 职场文书
教师评优事迹材料
2014/01/10 职场文书
科研先进个人典型材料
2014/01/31 职场文书
移风易俗倡议书
2014/04/15 职场文书
法制宣传教育方案
2014/05/09 职场文书
2014酒店客房部工作总结
2014/12/16 职场文书
大学生学年个人总结
2015/02/15 职场文书
漫画「处刑少女的生存之道」第3卷封面公开
2022/03/21 日漫
Java中Dijkstra(迪杰斯特拉)算法
2022/05/20 Java/Android