redis批量获取hash key的数据

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

由于用户信息是缓存在redis hash类型中的

需求是获取一个用户列表,比如每一页30个用户,想一次性获取这30个用户的用户信息
可是redis并没有批量获取hash key的方法!
请问我该如何解决?是不是我的设计有问题?
如用户 hash key 为 userinfo:1  user:info:2  user:info:3 user:info:4  ....
这些hash key 存储着用户信息
想一次性获取 userinfo:1-30的hash值

回复内容:

由于用户信息是缓存在redis hash类型中的
需求是获取一个用户列表,比如每一页30个用户,想一次性获取这30个用户的用户信息
可是redis并没有批量获取hash key的方法!
请问我该如何解决?是不是我的设计有问题?
如用户 hash key 为 userinfo:1  user:info:2  user:info:3 user:info:4  ....
这些hash key 存储着用户信息
想一次性获取 userinfo:1-30的hash值

用lua脚本循环
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吧, 或者multi

我的话就一个for循环,multi 是事务吧

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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!