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

 更新时间:2015年01月14日 09:45:29   投稿:shichen2014  
这篇文章主要介绍了php实现redis数据库指定库号迁移的方法,涉及对于redis数据库的操作技巧,非常具有实用价值,需要的朋友可以参考下

本文实例讲述了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程序设计有所帮助。

相关文章

  • 用mysql_fetch_array()获取当前行数据的方法详解

    用mysql_fetch_array()获取当前行数据的方法详解

    本篇文章是对使用mysql_fetch_array()获取当前行数据的方法进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • Php Cookie的一个使用注意点

    Php Cookie的一个使用注意点

    这里需要提醒大家注意的一点是,在 php 中, 如果你在当前页面设置了COOKIE,在 当前页面刷新 或 转向到其他页面之前, cookie 的设置结果不会生效(cookie未过期的情况下)。
    2008-11-11
  • PHP实现批量检测网站是否能够正常打开的方法

    PHP实现批量检测网站是否能够正常打开的方法

    这篇文章主要介绍了PHP实现批量检测网站是否能够正常打开的方法,涉及php使用自定义函数及curl操作的相关技巧,需要的朋友可以参考下
    2016-08-08
  • php封装的pdo数据库操作工具类与用法示例

    php封装的pdo数据库操作工具类与用法示例

    这篇文章主要介绍了php封装的pdo数据库操作工具类与用法,结合实例形式分析了php封装的pdo数据库连接、增删改查、错误处理、关闭连接等操作及相关使用技巧,需要的朋友可以参考下
    2019-05-05
  • PHP常见的几种攻击方式实例小结

    PHP常见的几种攻击方式实例小结

    这篇文章主要介绍了PHP常见的几种攻击方式,结合实例形式总结分析了php SQL注入、XSS攻击、文件包含漏洞等php常见攻击方式,需要的朋友可以参考下
    2019-04-04
  • CentOS安装php v8js教程

    CentOS安装php v8js教程

    这篇文章主要介绍了CentOS安装php v8js教程,本文是一个亲测笔记,需要的朋友可以参考下
    2015-02-02
  • PHP Wrapper在SAE上的应用方法

    PHP Wrapper在SAE上的应用方法

    这篇文章主要介绍了PHP Wrapper在SAE上的应用方法,详细介绍了PHP Wrapper的功能、定义与使用技巧,进一步分析了在新浪SAE平台上进行文件写操作的具体实现技巧,需要的朋友可以参考下
    2016-05-05
  • PHP中生成UUID自定义函数分享

    PHP中生成UUID自定义函数分享

    这篇文章主要介绍了PHP中生成UUID自定义函数分享,本文提供的代码可以生成一个 UUID version 4,,需要的朋友可以参考下
    2015-06-06
  • 设置php页面编码的两种方法示例介绍

    设置php页面编码的两种方法示例介绍

    这篇文章主要介绍了两种设置php页面编码的方法,并附有示例,大家可以练习下
    2014-03-03
  • 编写PHP脚本使WordPress的主题支持Widget侧边栏

    编写PHP脚本使WordPress的主题支持Widget侧边栏

    这篇文章主要介绍了编写PHP脚本使WordPress的主题支持Widget侧边栏的方法,这里以一列两列的侧边栏为例可以以此类推更多列的写法,需要的朋友可以参考下
    2015-12-12

最新评论