Heim > Backend-Entwicklung > PHP-Tutorial > Redis ruft Hash-Schlüsseldaten stapelweise ab

Redis ruft Hash-Schlüsseldaten stapelweise ab

ringa_lee
Freigeben: 2023-03-01 07:48:02
Original
6682 Leute haben es durchsucht

Da Benutzerinformationen im Redis-Hash-Typ zwischengespeichert werden

Die Anforderung besteht darin, eine Benutzerliste zu erhalten, z. B. 30 Benutzer auf jeder Seite, und ich möchte die Benutzerinformationen dieser 30 erhalten Benutzer auf einmal
Aber Redis hat keine Möglichkeit, Hash-Schlüssel in Stapeln zu erhalten!
Wie kann ich es lösen? Stimmt etwas mit meinem Design nicht?
Der Benutzer-Hash-Schlüssel lautet beispielsweise userinfo:1 user:info:2 user:info:3 user:info:4 ....
Diese Hash-Schlüssel speichern Benutzerinformationen
Ich möchte Benutzerinformationen erhalten :1 auf einmal Hash-Wert von -30

Antwortinhalt:

Da Benutzerinformationen im Redis-Hash-Typ zwischengespeichert werden
Die Anforderung besteht darin, eine Benutzerliste zu erhalten, z. B. 30 Benutzer pro Seite, ich möchte die Benutzerinformationen dieser 30 Benutzer gleichzeitig abrufen
Aber Redis verfügt nicht über eine Methode zum stapelweisen Abrufen von Hash-Schlüsseln!
Wie kann ich es lösen? Stimmt etwas mit meinem Design nicht?
Der Benutzer-Hash-Schlüssel lautet beispielsweise userinfo:1 user:info:2 user:info:3 user:info:4 ....
Diese Hash-Schlüssel speichern Benutzerinformationen
Ich möchte Benutzerinformationen erhalten :1 auf einmal -30 Hashwert

Lua-Skriptschleife verwenden
eval "local rst={}; for i,v in pairs(KEYS) do rst[i]=redis.call('hgetall', v) end; return rst" 2 user:1 user:2

127.0.0.1:6379> hgetall user:2
1) "age"
2) "22"
3) "name"
4) "tom"
127.0.0.1:6379> hgetall user:1
1) "name"
2) "jack"
3) "age"
4) "21"
127.0.0.1:6379> eval "local rst={}; for i,v in pairs(KEYS) do rst[i]=redis.call('hgetall', v) end; return rst" 2 user:1 user:2
1) 1) "name"
   2) "jack"
   3) "age"
   4) "21"
2) 1) "age"
   2) "22"
   3) "name"
   4) "tom"
Nach dem Login kopieren

Lua oder Multi verwenden

In meinem Fall einfach eine for-Schleife, multi Es geht ums Geschäft, oder

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage