一、資料庫快取失效問題
有兩個選擇:
1、既修改資料庫又修改快取
2、只修改資料庫讓快取失效
選2,因為直接修改快取裡的值操作麻煩。只修改資料庫的值,通過指令讓快取失效,程式會自動從資料庫中查詢出記錄,更新到快取中
接下來又有兩個選擇:
1、先修改資料庫再讓快取失效
2、先讓快取失效再修改資料庫
選2,因為考慮到操作分為兩步,如果第一步成功,第二步失敗了?
先修改資料庫再讓快取失效,會導致請求還是讀取快取中的舊值,而先讓快取失效再修改資料庫,如果第二步失敗了,不影響使用
考慮多執行緒的情況:
1、第乙個執行緒執行緒進來動作是讓快取失效了
2、這時候第二個請求執行緒進來,發現快取失效了,就從資料庫中讀取值,更新了快取,這樣快取中還是舊的值
3、因為多執行緒執行順序不確定,看cpu時間片分配
所以訪問同乙個資料庫需要同乙個連線物件,保證資料庫層面一定是序列
資料庫快取
用資料庫 將要儲存的nsarray 或 nsdictionary 物件 轉為nsdata型別。再將nsdata存到資料庫的blob中。若將nsarray直接存到資料庫 那麼資料庫中儲存的是 nsstring型別的資料而不是nsarray物件本身,因此要轉為nsdata型別。方法如下 將oc物件轉為n...
快取資料庫
資料庫快取,當沒有網路時,拿取資料庫 內容,當重新整理資料時,清空資料庫內容,從新新增 建立資料庫類方法 package com.example.administrator.xie.dao import android.content.context import android.database....
資料庫快取
資料庫從伺服器上讀取資料時,可以從硬碟的資料檔案中獲取資料,也可以從資料庫快取中讀取資料。現在資料庫管理員需要搞清楚的是,在什麼樣的情況下,系統是從快取中讀取資料,而不是從硬碟的資料檔案中讀取資料?簡單的說,資料快取就是記憶體中的一塊儲存區域,其儲存了使用者的sql文字以及相關的查詢結果。通常情況下...