使用 md5() 在 Zend_Cache 中生成缓存键
我在 Zend_Cache
中保存缓存对象的标识符时遇到一些问题。 Zend_Cache
标识符必须经过真正的清理(没有特殊字符,没有空格等)。我的一些内部标识符中有空格,所以保存缓存对象对我来说是一个问题。
我正在考虑在保存之前使用 md5() 转换 zend_cache 标识符,例如:(
$cacheId = md5(self::CACHE_PREFIX . $propertyId);
if (($address = $cache->load($cacheId)) === false) {
.....
$cache->save($cacheId, $address);
}
例如,$propertyId
可能是带有空格的字符串)
我的问题是这些 md5 字符串有多么独特正在创作?我的两个缓存对象是否有可能具有相同的标识符?有什么建议吗?
I have some issues saving identifiers for cache objects in Zend_Cache
. The Zend_Cache
identifiers have to be really sanitized (no special chars, no spaces, etc). Some of my internal identifiers have spaces in it, so it's a problem for me to save cache objects.
I was thinking about converting the zend_cache identifier using md5() before saving it, such as:
$cacheId = md5(self::CACHE_PREFIX . $propertyId);
if (($address = $cache->load($cacheId)) === false) {
.....
$cache->save($cacheId, $address);
}
(Here for example, $propertyId
might by a string with spaces)
My question is how unique are those md5 strings i'm creating? would it be possible that two of my cache objects will have the same identifier? Any suggestions?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
它们非常独特。然而,您拥有的 ID 越多,冲突的可能性就越大(您需要非常大量的条目!)。您还可以将生成的哈希值放入不同的“命名空间”中,例如
除了哈希值之外,您还可以考虑使用 ID 本身。你说,它们包含一些特殊字符。您可以使用
base64_encode()
对它们进行清理They are very unique. However, the more IDs you have the more likely is a collision (You need a very huge number of entries!). Also you can put the generated hashes into different "namespaces" like
Instead of hashing you may also think about using the IDs itself. You said, that they contain some special characters. You can sanitize them e.g. using
base64_encode()