1. 程式人生 > >在python中非關係型資料庫redis的自定義模糊查詢

在python中非關係型資料庫redis的自定義模糊查詢

我們的印象中非關係型資料庫要做模糊查詢並不簡單,當前我做的CMDB專案恰好有這樣的一個需求,而且這個模糊查詢要能夠進行多條件的聯合查詢,那麼,我們首先要考慮的是多條件聯合查詢,說到這裡我想先說說個人的編碼習慣,任何語言無非是在懂這門語言的前提下進行邏輯思維的較量,我習慣於進行在紙上或者黑板上對需求進行簡單的分析,只要邏輯清楚了,編碼就不那麼難了,首先我縣說一下關於非關係型的多條件查詢,

在這個流程圖中非關係型的資料過濾不同於關係型的資料,可以通過filter直接進行多條件的“where”篩選,而是需要進行手動寫顧慮方式,並且本身不具備遞進查詢關係,只能進行一次多條件查詢

第二,關於模糊查詢,我們網上找不到關於非關係型模糊查詢很好的包或者開原始碼,但是根據我的程式碼習慣進行分析時,我們就不難發現其實對於模糊查詢無非是對於不完整條件的全資料來源的遍歷,對於關係型的資料,因為其關係型特性和具備好多已經寫好的包,所以比較方便,但是,同裡對於資料量100萬級以內,併發量不高的開發需求,我們可以手動進行這樣的遍歷,其邏輯就是每次對邊資料來源從開始到最後,哪一個片段和給定的不完整條件相等,由於我開發的是銀行專案,不能進行程式碼的拷貝,所以給大家寫一個比較易懂的demo:

for i in range(len(資料來源列表)):

      for j in range(i,len(資料來源列表)):

           if  資料來源[i:j+1] == key:

                list_demo.append(資料來源列表[i])

這裡的key代表條件,多條件可以通過多寫幾行,或者進行再次遍歷都可以,資料來源列表代表從redis獲取整合後的資料列,list_demo代表臨時儲存篩選後的資料儲存的一個列表

如有問題,請留言