Heim > Backend-Entwicklung > PHP-Tutorial > Beispiel für die gemeinsame Nutzung einer PHP-Migration mit der angegebenen Bibliotheksnummer auf Redis

Beispiel für die gemeinsame Nutzung einer PHP-Migration mit der angegebenen Bibliotheksnummer auf Redis

*文
Freigeben: 2023-03-18 11:24:01
Original
1303 Leute haben es durchsucht

有些时候需求变动会涉及到迁移数据库,那么redis数据库指定库号迁移需要如何操作呢?本文通过介绍了php实现redis数据库指定库号迁移的方法,希望使大家对redis数据库指定库号迁移有一定的了解。

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

[root@localhost ~]# php 1.php 
1/407 
101/407 
201/407 
301/407 
401/407
Nach dem Login kopieren

PHP实例代码如下:

<?php 
$from = &#39;10.0.2.52:6379/7&#39;; 
$to   = &#39;127.0.0.1:6379/7&#39;; 
$from_redis = redis_init($from); 
$to_redis   = redis_init($to); 
$keys  = $from_redis->keys(&#39;*&#39;); 
$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(&#39;/^([^:]+)(:[0-9]+)?\\/(.+)?/&#39;, $conf, $ms); 
    $host = $ms[1]; 
    $port = trim($ms[2], &#39;:&#39;); 
    $db = $ms[3]; 
    $redis->connect($host, $port); 
    $redis->select($db); 
    return $redis; 
} 
?>
Nach dem Login kopieren

相关推荐:

关于Redis集群故障的分析

详解Redis的主从同步

redis计数器防止刷单方法介绍

Das obige ist der detaillierte Inhalt vonBeispiel für die gemeinsame Nutzung einer PHP-Migration mit der angegebenen Bibliotheksnummer auf Redis. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage