由於用戶資訊是緩存在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 是事務吧