Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Accesso in coda al database per evitare più elementi della cache

Sì, nel tuo codice di memorizzazione nella cache, ti consigliamo di inserire il codice di accesso al database all'interno di un lock bloccare. Tuttavia, non bloccare this . In genere faresti qualcosa come

private static readonly object staticObjectToLockOn = new object();

...

if (cache[cacheKey] == null)
{
   lock(staticObjectToLockOn)
   {
      // double-check the cache is still null inside the lock
      if (cache[cacheKey] == null)
      {
         // get data from the database, add to cache
      }
   }
}