Bu verileri MEMCACHE nasıl?

1 Cevap php
SELECT a.* b.* c.*
FROM TOPIC a, BOARD b, MSGS c
WHERE c.MessageID = 1 AND a.TopicID = c.MessageID AND b.BoardID = c.BoardID

Bu verileri MEMCACHE nasıl?

set_cache("MY_WACKY_QUERY_1", data) note: 1 is the message id

Şimdi orada güncelleştirme bu 3 tablo (independantly birbirlerinin) kod yerlerde bir sürü vardır, bu yüzden ihtiyacımız del_cache("XXX_1"); için, ya da bu güncelleştirmeleri ve ekler herhangi MSGS, BAŞLIK, ya KURULU verileri etkiler zaman id 1 iletiye ilişkin

Kolay bir çözüm var mı?

1 Cevap

Bunu saklamak için kullanılan tam önbellek anahtarı bilmeden memcached veri silemezsiniz. Eğer depolanan veri arayabilirsiniz hangi hayır "index" ya da "anahtar liste" var.

Bir çözüm bayat veri çoğunlukla olmayan bir husustur ki yeterince önbellek ömürleri kısa yapmak için olabilir.

Ya da belki ... Ben kafam karıştı düşünüyorum. Eğer can Bunun gibi bana, bu tür görünüyor.

<?php

$memcache = new Memcache;
$memcache->connect( 'memcache_host', 11211 );

// do select query here, store into $result

$memcache->set( 'MY_QUERY_1', $result, false, 600 );

// do another select query here, store into $result

$memcache->set( 'MY_QUERY_2', $result, false, 600 );

// Query here updates record with id of 1

$memcache->delete( 'MY_QUERY_1' );