我的意思是我有一樣的行說Redis:是否可以通過Redis中存儲的任何字段獲取過濾的數據?
id name email emp_id
1 abc [email protected] e1e2
2 lmn [email protected] e1e3
和打水的MySQL後,我存儲在Redis的這個數據。
現在說我想某人的電子郵件ID說從Redis的[email protected]
來獲取數據,我怎麼做,我應該在Redis的使用什麼數據類型?
我的意思是我有一樣的行說Redis:是否可以通過Redis中存儲的任何字段獲取過濾的數據?
id name email emp_id
1 abc [email protected] e1e2
2 lmn [email protected] e1e3
和打水的MySQL後,我存儲在Redis的這個數據。
現在說我想某人的電子郵件ID說從Redis的[email protected]
來獲取數據,我怎麼做,我應該在Redis的使用什麼數據類型?
這取決於您如何將數據存儲在redis中。如果您經常通過電子郵件訪問,那麼您可以使用電子郵件作爲散列的關鍵字,並直接使用類似'HGETALL電子郵件:[email protected]'的方式訪問該值。
你需要的是一個二級索引。你可以使用redis數據結構自己實現它。或者,如果您能夠接受的Redis 4.0(在RC階段現在),你可以試試這個模塊,使您可以自動執行:
https://github.com/RedisLabsModules/secondary
使用它,你可以這樣做:
IDX.FROM users_email WHERE "email ='[email protected]'" HGETALL $
然後對匹配WHERE條件的鍵執行redis操作($
將替換與查詢匹配的每個id的實際id)。
如果我想通過fname和lname搜索怎麼辦?桌子上有50列,我們無法在一張桌子上製作50個不同的按鍵!在任何應用程序中都有超過100個表格。 –