nfhu / xmemcached

Automatically exported from code.google.com/p/xmemcached
Apache License 2.0
0 stars 0 forks source link

在value已经被压缩的情况下,做append操作以后再做get操作无法返回上一次append的内容 #131

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
1、首先我设置的是如果value超过1024k,则开启压缩,然后一直
做append操作;做完以后再做get操作,发现无法得到后面几次ap
pend操作加上的内容;
2、我用telnet查看value值,发现后面几次append的数据能看到,��
�是通过api去get出来的值是没有后面几次append的数据的;

Original issue reported on code.google.com by hezhou...@gmail.com on 21 Jun 2011 at 8:44

GoogleCodeExporter commented 9 years ago
写错了,我是设置的如果超过1k,则开启压缩

Original comment by hezhou...@gmail.com on 21 Jun 2011 at 8:53

GoogleCodeExporter commented 9 years ago
如果我把操作方式改成先get出value后,然后在客户端做append操
作,再把新的value重新replace上去,就没有这个问题,但是这��
�的话,多了一次操作,网络开销也比直接append命令要大很多�
��而且还要考虑使用cas来处理并发,这样的话我感觉很不好。

Original comment by hezhou...@gmail.com on 21 Jun 2011 at 9:14

GoogleCodeExporter commented 9 years ago
我会验证下,谢谢反馈。

Original comment by killme2...@gmail.com on 27 Jul 2011 at 9:14

GoogleCodeExporter commented 9 years ago
我测试的结果比较诡异,有时候正确,有时候有你说的问题��
�

不过从用法上,你这样使用是有问题的。因为压缩后的数据��
�不是原始字符串了,你append后面的数据是跟压缩后的数据appe
nd在一起,然后get过来又整体做解压缩,这个数据就是有部分
是压缩的,部分是没有压缩的,结果可能不符合预期。

建议如果要用append还是不要做压缩。

Original comment by killme2...@gmail.com on 7 Sep 2011 at 12:58

GoogleCodeExporter commented 9 years ago

Original comment by killme2...@gmail.com on 26 Mar 2012 at 10:36