发现用 php 的 memcache 扩展的时候,没有区分键里的 “_” 和 “ ” 。想起来 memcache 协议里,键是不能用空白的,一定是 php 的客户端做了什么处理。去看了下源代码,果然……
#define MMC_PREPARE_KEY(key, key_len)
php_strtr(key, key_len, “trn “, “____”, 4);
php 默默地就把这些个空白字符给替换掉了,而且这个替换操作没在手册里提到。用不会引起歧义的方式替换或者干脆抛一个错,不给用带空白的字符做键都会更好。就这么不做声地替换了很可能就会引起一些隐秘的错误。
若是这个方面的逻辑,只要memcache的PHP端,顺序上没弄错,就问题不大
无非就两种逻辑,若是add,就判断一下,set就不用判断..
可能存在的问题是..用set的时候,数据被覆盖,程序员却不知道为何..这得跟手册的编写人提醒一下,若出现这种问题,估计很难调试..
弱弱地仰视下,自己php还处于入门阶段,没可能给技术部投简历了……要么先做做客服,哈哈~
崇拜地顶顶>_<
果然……神仙就是神仙……发现,解决,总结……
好高级……