如何确定Enyim memcache在存储项目时返回false的原因?

Dug*_*gan 11 .net c# memcached enyim

我怎样才能确定为什么Enyim从以下电话中返回false:

cache.Store(Enyim.Caching.Memcached.StoreMode.Set, key, value);
Run Code Online (Sandbox Code Playgroud)

其他项目存储得很好,因此连接到服务器似乎不是问题.该对象似乎不大于1 MB.

那么如何确定导致错误的原因呢?

STW*_*STW 0

一种可能性是您的密钥可能包含非法字符。通常,非常低端的 ASCII 字符可能会导致这种情况——我相信 0x30 及以上字符肯定是安全的,而且可能 0x20 及更高字符也可能是安全的。参考ASCII 字符表,您可以看到 0x00 到 0x1F 大部分都是特殊字符。0x20 到 0x2F 是“正常”字符,但在一些参考材料中我看到提到它们也可以用作控制字符。

这个问题给我带来了一些问题;我通过构建一个高度唯一的密钥来解决这个问题,很少考虑长度,然后生成密钥的 MD5 校验和。MD5 和保证了密钥冲突的风险最小、字符安全以及比实际密钥更短的长度。