redis批量獲取hash key的數據

ringa_lee
發布: 2023-03-01 07:48:02
原創
6617 人瀏覽過

由於用戶資訊是緩存在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"
登入後複製

用lua吧, 或multi

我的話就一個for循環,multi 是事務吧

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!