用户名:
密 码: 记住
您当前的位置:首页 > 网络编程 > php教程

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

时间:2015-01-23  来源:西部数据  作者:西部数据

下面来一个朋友写的php实现redis数据库指定库号迁移,希望例子能给各位带来帮助.

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

  1. [root@localhost ~]# php 1.php 
  2. 1/407 
  3. 101/407 
  4. 201/407 
  5. 301/407 
  6. 401/407 

PHP实例代码如下:

  1. <?php 
  2. $from = '10.0.2.52:6379/7'
  3. $to   = '127.0.0.1:6379/7'
  4. $from_redis = redis_init($from); 
  5. $to_redis   = redis_init($to); 
  6. $keys  = $from_redis->keys('*'); 
  7. $count = 0; 
  8. $total = count($keys); 
  9. foreach($keys as $key){ 
  10.     if(++$count % 100 == 1){ 
  11.         echo "$count/$total\n"
  12.     } 
  13.     $type = $from_redis->type($key); 
  14.     switch($type){ 
  15.         case Redis::REDIS_STRING: 
  16.             $val = $from_redis->get($key); 
  17.             $to_redis->set($key$val); 
  18.             break
  19.         case Redis::REDIS_LIST: 
  20.             $list = $from_redis->lRange($key, 0, -1); 
  21.             foreach($list as $val){ 
  22.                 $to_redis->rPush($key$val); 
  23.             } 
  24.             break
  25.         case Redis::REDIS_HASH: 
  26.             $hash = $from_redis->hGetAll($key); 
  27.             $to_redis->hMSet($key$hash); 
  28.             break
  29.         case Redis::REDIS_ZSET: 
  30.             $zset = $from_redis->zRange($key, 0, -1, true); 
  31.             foreach($zset as $val=>$score){ 
  32.                 $to_redis->zAdd($key$score$val); 
  33.             } 
  34.             break
  35.     } 
  36. function redis_init($conf){ 
  37. //开源代码phpfensi.com 
  38.     $redis = new Redis(); 
  39.     preg_match('/^([^:]+)(:[0-9]+)?\\/(.+)?/'$conf$ms); 
  40.     $host = $ms[1]; 
  41.     $port = trim($ms[2], ':'); 
  42.     $db = $ms[3]; 
  43.     $redis->connect($host$port); 
  44.     $redis->select($db); 
  45.     return $redis
  46. ?>
来顶一下
返回首页
返回首页
推荐资讯
WiFi太不安全:7岁女孩11分钟内入侵公共网络 WiFi太不安全:7岁女孩11分钟内入侵近期刚刚发布研究说WiFi网络能获得人们手机里多少私人信息,
不服跑个分?人工智能也出现“刷分”乱象 不服跑个分?人工智能也出现“刷分2014年,人工智能领域突然爆发,成为了科研和科技创业的热门
相关文章
栏目更新
栏目热门