Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Warteschlangenzugriff auf die Datenbank, um mehrere Cache-Elemente zu vermeiden

Ja, in Ihrem Caching-Code sollten Sie Ihren Datenbankzugriffscode in ein lock einfügen Block. Sperren Sie this jedoch nicht . Normalerweise würden Sie so etwas tun wie

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