PHP导出Redis数据到另一个Redis中的解决办法
内容摘要
这篇文章主要为大家详细介绍了PHP导出Redis数据到另一个Redis中的简单示例,具有一定的参考价值,可以用来参考一下
文章正文
这篇文章主要为大家详细介绍了PHP导出Redis数据到另一个Redis中的简单示例,具有一定的参考价值,可以用来参考一下。
感兴趣的小伙伴,下面一起跟随php教程的小玲来看看吧!
从某个 Redis db 导出数据到另一个 Redis db 的PHP脚本:
代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | <code> $from = '127.0.0.1:6200/6' ; $to = '127.0.0.1:6200/8' ; $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 ; } </code> |
注:关于PHP导出Redis数据到另一个Redis中的简单示例的内容就先介绍到这里,更多相关文章的可以留意
代码注释