이 기사의 예에서는 Redis 데이터베이스의 지정된 라이브러리 번호를 PHP로 마이그레이션하는 방법을 설명하고 참고용으로 모든 사람과 공유합니다. 세부 내용은 다음과 같습니다.
Redis 일반 데이터베이스 마이그레이션은 전체 Redis만 저장하거나 마스터-슬레이브를 사용할 수 있습니다. 물론 redis-dump를 설치할 수도 있지만 여기에 지정된 마이그레이션을 구현하는 PHP 스크립트가 있습니다. 실제로 라이브러리 번호도 저장 유형에 따라 순회하여 읽어서 새 라이브러리에 삽입하는 것뿐입니다.
[root@localhost ~]# php 1.php
1/407
101/407
201/407
301/407
401/407
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('*')
$개수 = 0
$total = 개수($keys)
foreach($keys를 $key로){
If( $count % 100 == 1){
echo "$count/$totaln"
}
$type = $from_redis->유형($key)
스위치($type){
사례 Redis::REDIS_STRING:
$val = $from_redis->get($key)
$to_redis->set($key, $val)
휴식
사례 Redis::REDIS_LIST:
$list = $from_redis->lRange($key, 0, -1)
foreach($list를 $val로 표시){
$to_redis->rPush($key, $val)
}
휴식
사례 Redis::REDIS_HASH:
$hash = $from_redis->hGetAll($key)
$to_redis->hMSet($key, $hash)
휴식
사례 Redis::REDIS_ZSET:
$zset = $from_redis->zRange($key, 0, -1, true)
foreach($zset as $val=>$score){
$to_redis->zAdd($key, $score, $val)
}
휴식
}
}
함수 redis_init($conf){
$redis = 새로운 Redis()
Preg_match('/^([^:] )(:[0-9] )?\/(. )?/', $conf, $ms)
$호스트 = $ms[1]
$port = 트림($ms[2], ':')
$db = $ms[3]
$redis->connect($host, $port)
$redis->선택($db)
$redis 반환
}
?>
이 기사가 모든 사람의 PHP 프로그래밍 설계에 도움이 되기를 바랍니다.