扩展memcached客户端解决Tokyo Tyrant的反序列化问题

    在项目中使用tyrant cabinet存放cas中的ticket,利用spymemcached客户端实现了自定义的TicketRegistry,但是却发现无法正常的反序列化java对象,google之后发现这是因为tyrant自动忽略了flags参数。

    还好spymemcached比较容易扩展,既然tryrant不保存flags,就把flags跟对象内容保存到一块好了。于是自定义了一个Transcoder,每次序列化的时候在byte[]数组最前面额外放上4个字节保存flags,反序列化的时候读取最前面的四个字节作为flags使用。这样,压缩问题、序列化问题都得到了解决。

    但是另外一个问题又出现了,使用两台tyrant互为主备的时候,就算我不保存对象到tyrant,同步日志都一直不断增加,1小时之内就能达到1G,而数据文件还不到1M,郁闷中...

你可能感兴趣的:(Google,memcached,Gmail)