Ik heb geprobeert om MySQL queries te cachen op onze server met behulp van Memcache. Ik weet niet of er hier iemand is die me ermee kan helpen, maar dit is mijn test-code:
Het bovenste gedeelte van de code is wel werkend; deze zet hem in de cache, en haalt 'm eruit "helloow".
Alleen de mysql code niet; als ik hierop weer een fetch probeer uit te voeren (het gedeelte dat uit de cache komt) krijg ik een error; terwijl als ik deze rechtstreeks probeer te echoën ik deze fout krijg: Resource id #5
Iemand ideeën/suggesties?
'k Weet niet of dit een makkelijke of moeilijke is, ik kom er iniedergeval niet uit, en kan hierover eigenlijk ook niks vinden.
En dit betreft een testcode! Als dit werkende is word het op de site verwerkt; vandaar de rommeligheid van de code.
Bij voorbaat dikke dank!
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
| <?php $cache = new Memcache; $cache->connect('localhost', 11221); $version = $cache->getVersion(); echo "Server's version: ".$version."<br/>\n"; $Start = getTime(); if (!($ret = $cache->get('helloow'))){ $cache->set('helloow',"hai.", 0 , 20); echo "It's set now"; } else { echo $ret; } $End = getTime(); echo "<br />Time taken = ".($End - $Start)." secs <br />"; echo "<br /><br />"; function getTime() { list($usec, $sec) = explode(" ", microtime()); return ((float)$usec + (float)$sec); } // Database gegevens stonden hier. mysql_connect( $DB_HOST, $DB_USER, $DB_PASS); mysql_select_db($DB_NAME); $Start = getTime(); $sql = "SELECT COUNT(*) AS `lol` FROM `advertisements`"; $res = mysql_query($sql) or die(mysql_error()); $cache->set('koekje', serialize($res), 0, 180); $result = mysql_fetch_array($res); echo print_r($result, true); $End = getTime(); echo "Time taken = ".($End - $Start)." secs <br />Query"; //$result = mysql_fetch_array(unserialize($cache->get('koekje'))) or die (mysql_error()); var_dump(unserialize($cache->get('koekje'))); $End = getTime(); echo "Time taken = ".($End - $Start)." secs <br />Cache"; |
Het bovenste gedeelte van de code is wel werkend; deze zet hem in de cache, en haalt 'm eruit "helloow".
Alleen de mysql code niet; als ik hierop weer een fetch probeer uit te voeren (het gedeelte dat uit de cache komt) krijg ik een error; terwijl als ik deze rechtstreeks probeer te echoën ik deze fout krijg: Resource id #5
Iemand ideeën/suggesties?
'k Weet niet of dit een makkelijke of moeilijke is, ik kom er iniedergeval niet uit, en kan hierover eigenlijk ook niks vinden.
En dit betreft een testcode! Als dit werkende is word het op de site verwerkt; vandaar de rommeligheid van de code.
Bij voorbaat dikke dank!
Gestoord word je toch...