缓存管理面临的主要问题
缓存作为一个数据中心,具备添加、更新、删除数据的操作,因此跟数据库类似,会存在事务性、并发情况下数据一致性等问题需要解决
使用缓存比较典型的方式如下面代码:
Database db = new Database();
Transaction tx 
= db.BeginTransaction();
try
{
    
//从缓存读取
    MyEntity1 entity1 = cache.Get<MyEntity1>("pk of entity1"); 
    
//缓存中没有时从数据库读取
    if (entity1 == null) entity1 = db.Get<MyEntity1>("pk of entity1");
    
    
//对entity1进行处理

    updated 
= db.Update(entity1); //entity1的更新保存到数据库中
    if (updated) cache.Put(entity1); //数据库更新成功,则更新缓存

    
//事务中的其他处理

    tx.Commit();
}
catch
{
    tx.Rollback();
    
throw;
}

相关文章: