我要缓存URL数组 怎么实现不循环读取数组...要求是有时候需要返回当前url所在键位置 有时需要根据键位置返回当前URL 但数组是动态添加的 当存在值为URL时则不增加到数组 否则在数组后增加当前URL比如URL为 $url = 'http://www.baidu.com';我现在实现的是 $md5 = md5($url);数组为: $data = array($md5=>$url);要求返回url所在位置 现在应该返回0 因为他在键0处 url很多的时候 需要循环获取 效率肯定很低 请问有撒方法没?..
php对数组的支持是非常强大的,就网站的当前url 来说 小菜一碟,你的url有多少?如果多到不能再多那么可以考虑用数据库来处理。
我目前是用的数据库分表缓存 但是感觉还是慢了 memcache我会结合到用 URL的话没法估计 因为PHP数组比较高效 我测试了1000W数组就1秒多就执行完了 所以考虑 分文件+PHP数组+memcache 目前我用了两个数组来代替
分别是 类似如下:
$url = 'http://www.baidu.com/';
$md5_url = md5($url);
$url1 = array($md5_url=>$url);
$url2 = array(2=>$md5_url);
两个数组同步增加 当传入url 返回ID时 先查找url2数组 返回当前键 但根据ID返回URL时 现在查找url中的md5_url 然后再查找url1中等于md5的url但现在还有一个疑问 查找url2中url 的键 有什么方法不循环 返回当前键位置???
URL的话没法估计,那还用考虑嘛,上数据库吧。
是啊 也没时间去测试 是什么原因导致失败 url中有可能编码不一致吧
这种规模数据,内存、并发……才是瓶颈,,,我猜有可能要做后台进程,尽管非php擅长的地方