出于公司的系统架构需要以及程序员能力的限制,现在是通过C# .NET2.0 来对数据进行处理,PHP 用于WEB 数据访问,PHP使用了memcached 技术
现在C# 因为效率原因,将从本来的写数据库修改成写memcached ,然后定时将memcached 中的数据保存出来;现在碰到的问题是C#写的数据,PHP 无法访问,PHP写的数据C#不能访问,而且通过telnet命令察看判断,数据确实是写进去的
在写相同键的情况下,C#和PHP写入的值是可以相互覆盖的(至少找键的时候能找到相同的地方)
谁有喷到过这种情况吗?~~~有没有什么解决办法?~~~~~

解决方案 »

  1.   

    估计是不同memcached client不兼容吧
    我以前是用PHP写PHP读,所以没碰到过这个问题
      

  2.   

    我觉得还是直接用数据库保险,大家都能用memcached,PHP和C#能同时访问?
      

  3.   

    http://groups.google.com/group/python-cn/browse_thread/thread/45b995aed9b895fc/90f306cdb2572984验证了一下,Ok的。看看C#会不会也出相关问题。
      

  4.   


    我看了存进去的值,数组情况下确实是PHP的序列化/反序列化的问题,但是不涉及到数据,纯粹的字符串数据时也有相同的问题,C#填充的值好像在值之前或之后有加什么字符,造成PHP端的client不能解读,初了改写c#端的client代码外,我想不出什么好办法,但是那堆代码又看不太懂.....郁闷
      

  5.   

    C#保存的数据和php保存的数据应该是有差别的
      

  6.   

    找到原因了,
    C#发布的几个支持库都在写数据时,在数据前打上固定的一串标记以表明该数据的数据类型,并且在读取时根据该标记处理成相应的数据类型返回
    PHP的支持库则将所有非数组数据作为字符串在进行保存(写不带标记,读不解析),如遇到不可用字符则返回空值(我的猜测,应为C#打的标签就是些不可用字符),而数组型数据(array)则将其序列化(serialize)后同样作为字符串写入,读取的时候进行反序列化后返回现在只能耐着性子慢慢修改开源的C#支持库了