Come memorizzare i dati in memoria (RAM) usando php senza usare Memcache / Redis o altri software? [chiuso]

3

Voglio implementare un sistema di cache in PHP composto dalle seguenti funzioni

1) Dovrebbe essere in grado di memorizzare qualsiasi (grande o piccola) quantità di dati finché serve la memoria (coppia di valori chiave, cioè ottenere e impostare)

2) Dovrebbe avere TTL

3) Dovrebbe avere LRU

4) La complessità dovrebbe essere O (1)

Vincoli: 1) Non sono autorizzato a utilizzare alcun middleware, ad esempio memcache o redis o qualsiasi altro in memoria DB, quindi implementare essenzialmente memcache

Il problema ora è

  1. Come posso interagire con la RAM usando php?
  2. Le variabili PHP possono essere memorizzate in memoria ma non appena il thread termina tutte le variabili sono spazzate via. Quindi perdi dati?
  3. Può essere usato in memoria mysql db engine? Posso?
  4. È persino possibile creare tale sistema usando PHP?
posta deepak 19.03.2015 - 15:10
fonte

2 risposte

4

Non è un problema specifico di PHP. Ogni volta che si desidera condividere la memoria con più processi (gli script PHP terminano al termine), utilizzare la memoria condivisa. In PHP, shm_attach () dovrebbe iniziare.

L'implementazione della cache su shm dovrebbe essere semplice.

    
risposta data 19.03.2015 - 17:30
fonte
2

Il modo più semplice a cui posso pensare per accedere a un blocco di memoria da php è tramite tmpfs.

Quindi scrivi un'implementazione della tabella hash (+ la logica della cache) in termini di operazioni sugli handle di file. Questo potrebbe essere divertente come esercizio ma se lo fai con la moneta di qualcun altro non stai facendo il tuo lavoro correttamente.

    
risposta data 19.03.2015 - 17:03
fonte

Leggi altre domande sui tag