PHP导出Redis数据到另一个Redis中的方法

 这篇文章主要介绍了使用PHP导出Redis数据到另一个Redis中的方法,需要的朋友可以参考下

从某个 Redis db 导出数据到另一个 Redis db 的PHP脚本:
 
代码如下:$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/$totaln";
    }
    $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;
}
 

时间: 2024-10-30 20:34:41

PHP导出Redis数据到另一个Redis中的方法的相关文章

使用PHP导出Redis数据到另一个Redis中的代码_php实例

从某个 Redis db 导出数据到另一个 Redis db 的PHP脚本: 复制代码 代码如下: $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

同时包含数字和字符的数据怎么存到一个变量中?

问题描述 同时包含数字和字符的数据怎么存到一个变量中? 如题,比如一个数据"A1.01",我要通过sscanf将它存到一个变量中,怎么才能实现? 解决方案 可以建立个数组三 str[][5] 每次的数据占一行

请教下如何按照一定比例几个list的数据添加到一个list中,使得最终数据呈比例排列呢?

问题描述 请教下如何按照一定比例几个list的数据添加到一个list中,使得最终数据呈比例排列呢? 请教下一个算法问题,有个final Arraylist,取名为f吧,有3个a, b, c list,里面的数据分别是30, 10, 30. 现在需要按照3:2:1的比例将a, b, c list里面的数据添加到f list中去,final list里面的数据要变成aaa bb c aaa bb c ....这种按比例排列方式. a, b, c这3个list的数据,不一定同时来的.可能a数据来了,然

循环往Map里装数据,同一个KEY的数据撞到一个list中,怎么实现?急急

问题描述 循环往Map里装数据,同一个KEY的数据撞到一个list中,怎么实现?急急 Map<String, List<UserDto>> map = new HashMap<String, List<UserDto>>(); String key = ""; for (int i = 0 ;i < userErrorList.size(); i++) { key = userErrorList.get(i).getUserId()

怎样把一个datagridview表中的数据存为一个数据库中的一个数据表?

问题描述 如题....在线等..... 解决方案 解决方案二:从它的数据源datatable直接循环构成insert语句即可解决方案三:SqlCommandBuilderSCB=newSqlCommandBuilder(dataAdapter1);dataAdapter1.Update(dgv1.Tables[0]);解决方案四:注意要定义变量dataAdapter1,ds1dgv要绑定ds1.Tables[0]SqlCommandBuilderSCB=newSqlCommandBuilder(

将多个Word文档页面内容缩印到一个页面中的方法

  将多个Word文档页面内容缩印到一个页面中的方法          在打印Word文档时,为了节省纸张,我们可能希望在一张纸上打印多个页面的内容.例如,我们可以将每两页的用户手册打印到一张A4纸中,为了实现这一功能(如图1所示),可按照如下步骤进行. 图1 一张纸上打印多个页面 1.在打开的Word文档中,单击[Office按钮],执行下拉菜单中的[打印]命令(如图2所示),打开"打印"对话框. 图2 执行下拉菜单中的[打印]命令 2.在对话框的"缩放"选项区域

action 没有跳转-Action中调用另一个类中的方法时没有跳转,但是新建的其他测试类就可以跳转,WHY?

问题描述 Action中调用另一个类中的方法时没有跳转,但是新建的其他测试类就可以跳转,WHY? action中调用EmailUtil中的sendHtmlMail方法: public void forgetPassword() throws Exception { String email = request.getParameter("email"); User u=userService.getByEmail(email); Json json=new Json(); if (St

javascript-如何实现一个js调用另外一个js中的方法

问题描述 如何实现一个js调用另外一个js中的方法 两个js文件分别有一个方法写在$(function(){ 方法...}),如何实现一个js调用另外一个js中的方法.调用方法就会报错:Uncaught ReferenceError: addNode is not defined 解决方案 ?? 例如一个test.js内容如下:function main( input ){?? return input;}在C++中调用方法如下:// vcJscript.cpp : 定义控制台应用程序的入口点.

phpExcel导出大量数据出现内存溢出错误的解决方法_php技巧

phpExcel将读取的单元格信息保存在内存中,我们可以通过 复制代码 代码如下: PHPExcel_Settings::setCacheStorageMethod() 来设置不同的缓存方式,已达到降低内存消耗的目的! 1.将单元格数据序列化后保存在内存中 复制代码 代码如下: PHPExcel_CachedObjectStorageFactory::cache_in_memory_serialized; 2.将单元格序列化后再进行Gzip压缩,然后保存在内存中 复制代码 代码如下: PHPEx