apo*_*rat 0 php zend-framework 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);
}
Run Code Online (Sandbox Code Playgroud)
(例如,$propertyId可能是带有空格的字符串)
我的问题是我创建的那些md5字符串有多独特?我的两个缓存对象是否可能具有相同的标识符?有什么建议?
我的问题是我创建的那些md5字符串有多独特?
它们非常独特.但是,你拥有的ID越多,碰撞就越可能(你需要非常多的条目!).您还可以将生成的哈希值放入不同的"名称空间"中
$cacheId = 'addresses_' . md5(self::CACHE_PREFIX . $propertyId);
Run Code Online (Sandbox Code Playgroud)
您也可以考虑使用ID本身而不是散列.你说,它们包含一些特殊字符.您可以清理它们,例如使用base64_encode()
| 归档时间: |
|
| 查看次数: |
1364 次 |
| 最近记录: |