PHP xml和数组的相互转换方法

    //数组转XML
    function arrayToXml($arr)
    {
        $xml = "<xml>";
        foreach ($arr as $key=>$val)
        {
            if (is_numeric($val)){
                $xml.="<".$key.">".$val."</".$key.">";
            }else{
                 $xml.="<".$key."><![CDATA[".$val."]]></".$key.">";
            }
        }
        $xml.="</xml>";
        return $xml;
    }

    //将XML转为array
    function xmlToArray($xml)
    {    
        //禁止引用外部xml实体
        libxml_disable_entity_loader(true);
        $values = json_decode(json_encode(simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA)), true);        
        return $values;
    }

 

[转]Redis事务与Pipeline区别和执行效率

手册得知 pipeline 只是把多个redis指令一起发出去,redis并没有保证这些指定的执行是原子的;multi相当于一个redis的transaction的,保证整个操作的原子性,避免由于中途出错而导致最后产生的数据不一致。通过测试得知,pipeline方式执行效率要比其他方式高10倍左右的速度,启用multi写入要比没有开启慢一点。 继续阅读[转]Redis事务与Pipeline区别和执行效率

Redis配置文件详解

#是否作为守护进程进行
daemonize yes

#如以后台进程运行,则需要制定一个pid,默认为/var/run/redis.pid
pidfile redis.pid

#绑定主机IP,默认值127.0.0.1
#bind 127.0.0.1

#Redis 默认监听端口
port 6379

#客户端闲置多少秒后,断开链接,默认为300秒
timeout 300

#日志记录等级,有4个可选值debug,verbose(默认值),notice,warning
loglevel verbose

#制定日志输出的文件名,默认为stdout,也可以设为/dev/null屏蔽日志
logfile stdout

#可用数据库数,默认值为16,默认数据库为0
databases 16 继续阅读Redis配置文件详解

Redis学习笔记-Sets类型及操作

1、SADD key member

向名称为key的set中添加member。

2、SREM key member

删除名称为key的set中元素member。

3、SPOP key

随机返回并删除名称为key的set中一个元素。

4、SDIFF key [key …]

返回所有给定key与第一个key的差集。

5、SDIFFSTORE destination key [key …]

返回所有给定key与第一个key的差集,并另存到另一个key。 继续阅读Redis学习笔记-Sets类型及操作