método php para implementar la migración del número de biblioteca especificado de la base de datos redis
Los detalles son los siguientes:
La migración ordinaria de la base de datos de Redis solo puede guardar el redis completo
o utilizar el método maestro-esclavo. Por supuesto, también puede instalar un volcado de redis. , pero es más problemático Proporcionar un Se utiliza un script PHP para migrar el número de biblioteca especificado. De hecho, se recorre según el tipo de almacenamiento, se lee y se inserta en la nueva biblioteca. /p>
El código es el siguiente:
[root@localhost
~]#
php
1. php
1/407
101/407
201/407
301/407
401/ 407
El código de muestra PHP es el siguiente:
El código es el siguiente:
$from
=
'10.0.2.52:6379/7';
$a
=
'127.0.1 :6379/7';
$from_redis
=
redis_init($from);
$to_redis
=
redis_init($to);
$claves
=
$from_redis->claves('*') ;
$cuenta
=
0;
$total
=
count($keys);
foreach($keys
as
$key){
if(++$count
%
100
==
1){
eco
"$recuento/$total";
}
$tipo
=
$from_redis->tipo($clave);
cambiar($tipo){
caso
p>Redis::REDIS_STRING:
$val
=
$from_ redis->get($key);
$to_redis->set($key,
$val);
romper;
caso
Redis::REDIS_LIST :
$lista
=
$from_redis->lRange($clave,
0,
-1);
foreach($lista
como p>
$val){
$to_redis->rPush($key
$val);
}
romper;
caso
Redis::REDIS_HASH:
$hash
=
$from_redis-> hGetAll($key);
$to_redis->hMSet($key,
$hash);
break;
caso
Redis::REDIS_ZSET:
$zset
=
$from_ redis->zRange($key,
0,
-1,
verdadero
foreach($);
zset
as
$val=>$puntuación){
$to_redis-> ,
$val);
}
descanso;
}
}
función
redis_init($conf){
$redis
=
nuevo
Redis( );
preg_match('/^([^:]+)(:[0-9]+)?/(. +)?/',
$conf,
$ms);
$host
=
$ms[1];
$puerto
=
trim($ms[2],
':');
$db
=
$ms[3];
$redis->connect($host,
$puerto);
$ redis->seleccionar($db);
regresar
$redis;