come build una cache lato server in-memory in php?

Sto cercando di ridurre la quantità di accesso al database fornendo una cache in memory. Capisco che posso get una cache utilizzando session e cookie, tuttavia questo funziona solo su base client. se la stessa query viene eseguita una volta in each session, la cache sarà inutile. Ma voglio solo accedere al database una volta e averlo memorizzato nella cache.

C'è un modo per creare una cache in memory alla quale si può accedere tramite lo script lato server? Non voglio memorizzare i dati della cache in un file ..

È ansible utilizzare MemCache , se installato.

Un'altra opzione è la creazione di una tabella in MySQL con tipo di memory MEMORY . Userai comunque il database, ma sarà molto più veloce. Ma MemCache ridurrà davvero il carico sul database, perché è ansible memorizzare i dati al di fuori del database, anche su un altro server.

Su uno spazio di hosting condiviso potresti non avere memcache disponibile. Controlla APC in quel caso. Memcache fa davvero scalpore se stai correndo su più macchine. Se stai eseguendo il tuo sito su un singolo server web, APC farà lo stesso lavoro (con spese generali inferiori).

Prova MemCache

Il module Memcache fornisce un'interface procedurale e orientata agli oggetti per il daemon di memorizzazione cache altamente efficace, progettato appositamente per ridurre il carico del database in applicazioni Web dinamiche.

Memecached / Memcache sono le soluzioni più utilizzate se si desidera avere più server o essere in grado di accedere alla cache con più macchine.

Tuttavia, se vuoi che la tua cache sia locale (sulla stessa macchina che esegue il codice PHP), hai altre scelte un po 'più semplici:

Il module APC può anche immagazzinare cose nella memory con apc_add , apc_fetch ecc …

Oppure puoi usare i file standard in un tmpfs . Questo ha il vantaggio di essere completamente porttile, e puoi impostarlo molto rapidamente se qualsiasi sistema di caching usa i file.