sql >> Base de Datos >  >> RDS >> Sqlserver

Cola de acceso a la base de datos para evitar múltiples elementos de caché

Sí, en su código de almacenamiento en caché, querrá colocar su código de acceso a la base de datos dentro de un lock bloquear. Sin embargo, no bloquee this . Por lo general, haría algo como

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
      }
   }
}