亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

針對我這樣的需求,該如何設置這個數據庫的結構?

針對我這樣的需求,該如何設置這個數據庫的結構?

慕森卡 2023-04-17 14:14:27
最近在做一個測試回歸的系統,Server這邊需要在每個Test執行的時候為它保留相關的數據,待測試結束后,刪掉這些數據。也就是這個數據只是臨時的,一般一次測試用例大概就幾分種,因此單挑數據的存在時間非常短。所以想要選用Redis做數據存儲。之前沒有使用Key-Value數據存儲的經驗,我這邊簡單構想的單挑數據結構如下:{    sessionId: 123454,    gloablData: {}, // 在全局維持的數據     testWins: [         { winId: 123, parentWinId: 123, stats: 'running', testResult: {}         }     ] }其中testWinds為測試用所有可能會出現的窗口(窗口其實為瀏覽器窗口,這個可以無視),然后會為每個窗口記錄信息,然后每個窗口有自己的子測試結果testResult,是一個復雜數據(但是可以用JSON字符串來儲存,因為Server對它的具體內容不關心,輸出給需要的接口就行了),globalData也一樣,server不關心,設置成JSON字符串但是查看Redis文檔,發現Redis貌似無法構建這么復雜的數據結構。我這邊的簡單設置是這樣的:對于每次測試:有一條儲存globalData:session_id:globalData和多條儲存testWin數據:session_id:testWind_id其中globalData由于我這邊的Server不關心也不會做查詢,因此只保存JSON字符串,testResult也一樣,這樣的話,貌似其實就兩種類型:session_id:testWind_id: { winId: 123, parentWindId: 123, stat: 'running', testResult: JSONString }session_id:globalData: JSONString
查看完整描述

2 回答

?
斯蒂芬大帝

TA貢獻1827條經驗 獲得超8個贊

存儲和使用可以用對象封裝。

針對你的情況,我會這么存。

Key : "session:123454:globalData" Value: hash 這里存屬性hash. (hget, hset)
Key : "sesison:123454:testWins" Value: list 存儲 test wins' ids
Key : "session:123454:testWins:win_id" Value: hash 這里存wins屬性hash,也就是你json串的東西。

存儲這樣,使用還是要用對象封裝起來


查看完整回答
反對 回復 2023-04-20
?
神不在的星期二

TA貢獻1963條經驗 獲得超6個贊

換MongoDB吧??礃幼幽闶切枰谖臋n的數據庫。

查看完整回答
反對 回復 2023-04-20
  • 2 回答
  • 0 關注
  • 244 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號