C'è un modo per archiviare piccoli dati nella memoria RAM usando PHP in modo che io possa avere accesso ai dati tra diverse sessioni invece di rigenerarle. Qualcosa di simile a memcached (non ho accesso a memcahced). La mia soluzione attuale è solo per salvare i dati nel file.Come posso archiviare i dati nella memoria RAM usando PHP?
risposta
Suppongo che tu sia su un server condiviso di qualche tipo.
memcached
o un'altra soluzione di memorizzazione nella cache è davvero l'unico modo per farlo.
Sessioni, il metodo più importante per mantenere i dati su pagine PHP, lavorare in base ai file. È possibile modificare il gestore di sessione in base al database, ma non quello basato su RAM.
Per quanto posso vedere, senza modificare il sistema a livello di root (ad esempio per installare memcached o memorizzare i file di sessione su un disco RAM), questo non è possibile.
È possibile utilizzare sempre un DB in memoria per salvare i dati. Forse eccessivo, però.
Sono sorpreso che nessun altro abbia dato una risposta. Ho avuto successo usando le tabelle di memoria mysql e sono molto veloci.RDB potrebbe essere eccessivo per le sessioni, ma è un'ottima opzione quando non si ha accesso a memcached o/dev/ –
APC?
Funziona diversamente da memcached; in memcached puoi accedere ai dati da vari linguaggi (c, python, ecc.) mentre APC funziona solo per PHP.
EDIT sei sicuro che APC sia installato correttamente? Hai aggiunto extension=apc.so
nel tuo php.ini? E per riavviare Apache (im assumendo sei su un lamp server con apache2)? Cosa dice phpinfo();
di APC?
Si tratta di una semplice testare che funzionano perfettamente per me:
<?php
/*
* page.php
* Store the variable for 30 seconds,
* see http://it.php.net/manual/en/function.apc-add.php
* */
if(apc_add('foo', 'bar', 30)){
header('Location: page2.php');
}else{
die("Cant add foo to apc!");
}
<?php
/*
* page2.php
* */
echo 'foo is been set as: ' . apc_fetch('foo');
ps: io preferisco usare apc_add
sopra apc_store
, ma l'unica differenza tra loro è che pretende molto apc_add sovrascrivere la variabile, ma non riesce se chiamata due volte con la stessa chiave:
Memorizzare la variabile usando questo nome. le chiavi sono cache-unique, quindi il tentativo di utilizzare apc_add() per archiviare i dati con una chiave già esistente non sovrascriverà i dati esistenti e restituirà invece FALSE. (Questa è l'unica differenza tra apc_add() e apc_store().)
E 'una questione di gusto/compito dello script, ma l'esempio precedente funziona con apc_store troppo.
Non è possibile installare memcached, quindi è probabile che non possa installare APC –
Vero, ma molti hoster permettono l'uso di APC (con alcune limitazioni) - dobbiamo chiederglielo. – Strae
Creare un file in /dev/shm
e verrà mantenuto in memoria fino al riavvio della macchina. Questo può essere o non essere più veloce dell'utilizzo di qualsiasi vecchio file, a seconda del modello di utilizzo.
Sembra essere su un server condiviso –
@Pekka Bene, allora è fottuto ... Speriamo solo che il suo file venga memorizzato nella cache dal sistema operativo. – kijin
- 1. Come archiviare e recuperare i dati JSON nella memoria locale?
- 2. Come vengono recuperati i dati dalla RAM?
- 3. CREATE TABLE come SELECT - using MEMORY ENGINE (nella memoria RAM)
- 4. iPhone: come posso archiviare UIImage usando NSUserDefaults?
- 5. Memoria Apache nella memoria cache
- 6. È possibile visualizzare i dati nella memoria della scheda grafica?
- 7. archivio php zip memoria, ram e dimensione massima del file
- 8. Come posso archiviare i rami git?
- 9. Come posso eseguire un eseguibile dalla RAM usando C++?
- 10. Come archiviare i dati del grafico in un database?
- 11. Come posso archiviare oggetti in una sessione in PHP?
- 12. Android: come memorizzare i dati nella memoria interna?
- 13. Dove devo archiviare i miei dati dell'applicazione?
- 14. Come posso creare un disco RAM programmaticamente?
- 15. Come archiviare i dati e recuperare i dati dai file di mappatura della memoria utilizzando CopyMemory in VBA?
- 16. Quali informazioni carica il BIOS nella RAM?
- 17. Come archiviare i file .pdf in MySQL come BLOB usando PHP?
- 18. Come posso memorizzare i file tmpfs nella memoria in sbcl?
- 19. Come posso estrarre i dati EXIF usando PerlMagick?
- 20. Come visualizzare i dati da mysql usando angular.js PHP?
- 21. Come posso inviare indietro i dati usando finish?
- 22. Come archiviare i dati binari dalla posta in MongoDB
- 23. Come posso scrivere i dati in un excel utilizzando PHP
- 24. PHP non può usare 300MB di RAM
- 25. Archivia i vecchi dati nella Monganera
- 26. L'ordine dei dati nella memoria
- 27. Memorizzazione dei dati nella memoria
- 28. Tipi di memoria Android (RAM v Memoria interna)
- 29. Utilizzando il provider di appartenenze SQL di ASP.NET, come posso archiviare i miei dati per utente?
- 30. Come posso archiviare dati sensibili in un database MySQL?
possibile duplicato di [PHP: variabili lato server che saranno "live" per sempre?] (Http://stackoverflow.com/questions/4086044/php-server-side-variables-that-will-live-for- mai) - ci sono molte risposte che sono applicabili alla tua domanda. – Gordon
Perché? Su qualsiasi sistema operativo moderno (in cui la memoria non è su un filesystem condiviso) i dati del file vengono comunque memorizzati nella memoria. – symcbean
Modificato la mia risposta. – Strae