Redis和數據庫的讀操作
數據緩存往往會在Redis上設置超時時間,當設置Redis的數據超時後,Redis就沒法讀出數據了,這個時候就會觸發程序讀取數據庫,然後將讀取的數據庫數據寫入Redis(此時Redis會給Redis重設超時時間),這樣程序在讀取的過程中就能按一定的時間間隔刷新數據了。
下面寫一下這個流程的僞代碼:
public DataObiect readMethod(args){
//嘗試從Redis中讀取數據
DataObject data=getRedis(key);
if(data == null){
//從數據庫中讀取數據
data=getFromDataBase();
//重新寫入Redis,以便以後讀出
writeRedis(key,data);
//設置Redis的超時時間爲5分鐘
setRedisExpire(key,5);
}
return data;
}
Redis和數據庫的寫操作
寫操作要考慮數據一致性的問題,尤其是那些重要的業務數據,所以首先考慮從數據庫中讀取最新的數據,然後對數據進行操作,最後把數據寫入Redis緩存中。
下面寫出這個流程的僞代碼:
public DataObject writeMethod(args){
//從數據庫裏讀出最新數據
DataObject dataObject=getFromDataBase(args);
//執行業務邏輯
ExecLogic(dataObject);
//更新數據庫數據
updataDataBase(dataObject);
//刷新Redis緩存
updataRedisData(dataObject);
}