Comment obtenir la liste de tous les éléments mis en cache par clé dans Laravel 5?
La classe Cache dans laravel a des méthodes telles que get('itemKey') pour récupérer les éléments de la cache, et n'oubliez pas('itemKey', ['myData1', 'myData2']) pour enregistrer des éléments dans le cache.
Il y a aussi une méthode pour vérifier si un élément existe dans le cache: Cache::a('maclé');
Est-il de toute façon, (lors de l'utilisation du fichier de cache en fonction de pilote), pour obtenir une liste de tous les articles dans le cache?
Par exemple, quelque chose qui pourrait être appelé quelque chose comme "Cache::all()" qui retourne:
[
'itemKey' => [
'myData1',
'myData2'
],
'myKey' => 'foo'
]
La seule façon que je peux penser de le faire, c'est-à-boucle par tous les noms de clé à l'aide de la mémoire Cache::a() la méthode. c'est à dire aaa, aab, aac, aad... mais bien sûr, ce n'est pas une solution.
Je ne vois rien dans la documentation ou de l'API qui décrit une fonction comme ceci, mais je ne pense pas que son déraisonnable de croire que l'on doit exister.
Le cache de fichier. J'ai lu il y a une fonction comme celle que je décris pour Memcached, et qu'il y a l'option à l'aide de balises. Mais j'ai besoin d'utiliser un fichier comme un grand nombre de données.
OriginalL'auteur kohloth | 2015-08-03
Vous devez vous connecter pour publier un commentaire.
Il n'y a aucun moyen de le faire qu'à l'aide de Cache façade. Son interface représente la fonctionnalité tous sous-jacent stockages offre et de certains des magasins ne permettent pas de liste de toutes les touches.
Si vous êtes à l'aide de la FileCache, vous pouvez essayer de le faire en interaction avec le stockage sous-jacent directement. Il n'offre pas la méthode que vous avez besoin, de sorte que vous aurez besoin de parcourir le répertoire de cache. Ce ne sera pas aussi efficace en raison de beaucoup d'I/O disque qui aurait besoin de se produire.
Afin d'accéder au stockage, vous devez faire
cela ne fonctionne pas sur laravel 5.0
OriginalL'auteur jedrzej.kurylo
^Ce ci-dessus ne fonctionnent pas dans LV 5.2
D'essayer cette solution:
C'était sur Laravel 5.3, comme jedrzej.kurylo ne fonctionne pas, ce n'bien
fonctionne également sur laravel 5.0
OriginalL'auteur mangas
Dans 'yourKeyGoesHere' vous pouvez insérer une chaîne de caractères utilisée que comme un comme un * ou insérer directement le exactement clé.
Travailler avec le Redis, je pense, mais... s'il vous plaît expliquer ? qu'est-ce que yourKeyGoesHere ?
$redis->touches('*'); vous donnera toutes les clés
OriginalL'auteur nat_jea
Pour Memcached, vous pouvez le faire:
Illuminate\Cache\CacheManager
Memcached
: http://php.net/manual/de/class.memcached.phpgetAllKeys()
: http://php.net/manual/de/memcached.getallkeys.phpCela vous donne un tableau de clés, vous pouvez aller de travers.
OriginalL'auteur repat