µ±Ç°Î»ÖãºÖ÷Ò³ > ²é¿´ÄÚÈÝ

.NET CoreϵÁÐÖ®MemoryCache ³õʶ

·¢²¼Ê±¼ä£º2021-05-28 00:00| ÓРλÅóÓѲ鿴

¼ò½é£ºCacheÊÇÒ»¸ö¾ø´ó¶àÊýÏîÄ¿»áÓõ½µÄÒ»¸ö¼¼Êõ£¬ËµÆðµ½»º´æ¿ÉÄܾÍÁªÏëµ½ Set¡¢Add¡¢Get¡¢Remove¡¢Clear Õ⼸¸ö·½·¨¡£ÄÇôÔÚ.NET CoreÖÐ΢Èí¸øÎÒÃÇ´øÀ´ÁËʲôÑùµÄ»º´æÌåÑéÄØ£¿½ñÌìÎÒÃǾÍÀ´½éÉÜÏ¡±Microsoft.Extensions.Caching.Memory¡±¡£ÓÉÓÚÕâ¸ö°üÃû³Æ¹ý³¤£¬Ï¡­¡­

CacheÊÇÒ»¸ö¾ø´ó¶àÊýÏîÄ¿»áÓõ½µÄÒ»¸ö¼¼Êõ£¬ËµÆðµ½»º´æ¿ÉÄܾÍÁªÏëµ½ Set¡¢Add¡¢Get¡¢Remove¡¢Clear Õ⼸¸ö·½·¨¡£ÄÇôÔÚ.NET CoreÖÐ΢Èí¸øÎÒÃÇ´øÀ´ÁËʲôÑùµÄ»º´æÌåÑéÄØ£¿½ñÌìÎÒÃǾÍÀ´½éÉÜÏ¡±Microsoft.Extensions.Caching.Memory¡±¡£ÓÉÓÚÕâ¸ö°üÃû³Æ¹ý³¤£¬ÏÂÎÄʹÓÃMSCacheÀ´´úÌæ¡£

MSCacheÄÜ×öʲô£¿

  1. ¾ø¶Ô¹ýÆÚÖ§³Ö
  2. »¬¶¯¹ýÆÚÖ§³Ö£¨Ö¸¶¨Ò»¸öʱ¼ä£¬TimeSpan£¬Ö¸¶¨Ê±¼äÄÚÓб»Get»º´æʱ¼äÔò˳ÑÓ£¬·ñÔò¹ýÆÚ£©
  3. ¹ýÆڻص÷
  4. ×Ô¶¨Òå¹ýÆÚ

MSCacheÄ¿Ç°×îеÄÕýʽ°æÊÇ 2.0.0£¬Ô¤ÀÀ°æÊÇ2.1.0£¬»áÓë.NETCore 2.1Ò»Æð·¢²¼¡£±¾ÆªÓÃÁË2.0.0°æ±¾

¿ªÔ´ÔÚGitHubÉÏ£¬²Ö¿âµØÖ·ÊÇ£ºhttps://github.com/aspnet/Caching

NuGetµØַΪ£ºhttps://www.nuget.org/packages/Microsoft.Extensions.Caching.Memory/2.0.0

´ÓIMemoryCache˵Æð

IMemoryCache ¾ÍÌṩÁËÈý¸ö·½·¨²¢ÊµÏÖÁË IDisposable ½Ó¿Ú¡£

ºÜºÃÀí½â

CreateEntry Ìí¼ÓÒ»¸ö»º´æ

Remove ɾ³ýÒ»¸ö»º´æ

TryGetValue »ñÈ¡Ò»¸ö»º´æ£¨²¢¿ÉµÃµ½¾ßÌåµÄ»º´æÊÇ·ñ´æÔÚ£©

ICacheEntry

ICacheEntry ÓÐÒÔÉϳÉÔ±£¬Í¬Ê±ÊµÏÖÁË IDisposable ½Ó¿Ú£¬ÎªÊ²Ã´ÒªÊµÏÖÕâ¸ö½Ó¿Ú£¿ÓÃÀ´ÊÍ·Å»º´æÂð£¿Õâ¸öÔÚ½ÓÏÂÀ´µÄƪ·ù»á×ö½âÊÍ¡£

Key »º´ækey

Value »º´æÖµ

AbsoluteExpiration ¾ø¶Ô¹ýÆÚʱ¼ä£¬ÎªnullÔòÌõ¼þÎÞЧ

AbsoluteExpirationRelativeToNow Ïà¶Ôµ±Ç°Ê±¼äµÄ¾ø¶Ô¹ýÆÚʱ¼ä£¨Ê¹ÓÃTimeSpan£©£¬ÎªnullÌõ¼þÎÞЧ

SlidingExpiration »¬¶¯¹ýÆÚʱ¼ä

ExpirationTokens ÌṩÓÃÀ´×Ô¶¨Ò建´æ¹ýÆÚ

PostEvictionCallbacks »º´æʧЧ»Øµ÷

Priority »º´æÏîÓÅÏȼ¶£¨ÔÚ»º´æÂúÔصÄʱºò¾ø¶ÔÇå³ýµÄ˳Ðò£©

Size ´ú±í»º´æÊý¾ÝµÄ´óС£¬ÔÚÄڴ滺´æÖÐÒ»°ãΪnull

ÎÒÃÇÀ´ÊÔÊÔ

¶÷£¬Í×Í׵ģ¬Êä³ö ¡°True¡± ºÍ ¡°1¡±¡£

ÄÉÄᣬ¾ÓÈ»ÊÇ¡°False¡±ºÍnull¡£

Ðþѧ

ÓÐЩͬѧ¿ÉÄÜÒѾ­×¢Òâµ½ÁË ICacheEntry ʵÏÖÁËIDisposable½Ó¿Ú¡£ÎªÊ²Ã´ICacheEntryҪʵÏÖ IDisposable ½Ó¿ÚÄØ£¿½²ÕæÎÒÒ²²»ÖªµÀ¡£·´Õý´ó¼ÒÖªµÀËüÊǾßÌåÏñMemoryCache²åÈ뻺´æµÄ·½·¨¾ÍÐС£

ÕâÓеãÎ¥±³ÁËÎÒÃÇ֮ǰËùѧµÄ IDisposable ÓÃÀ´ÊÍ·Å×ÊÔ´µÄÔ­Ôò¡£

ÕýÈ·µÄ´ò¿ª·½Ê½

¿ª·¢ÕßµÄÌåÑé

˵µ½µ×»¹²»ÊÇ Set¡¢Add¡¢Get¡¢Remove¡¢Clear £¿¸ú֮ǰ²î²»¶à°¡¡£

MSÍŶÓÌṩÁËÒ»¸ö CacheExtensions À©Õ¹·½·¨Àà

Get ±È½ÏºÃÀí½âÕâ±ß²»¶à×öÀÛÊö¡£

Set ÉèÖÃÒ»¸öеĻº´æÌõÄ¿£¨ÏàͬkeyµÄ»á±»ÒƳý£©¾ÍºÃÏñ±»setµÄÕâ¸ökeyÊÇÒ»¸öÍêȫеĶ«Î÷£¬ËùÒÔÒ²²»»á¼Ì³Ð֮ǰµÄ¹ýÆÚʱ¼äºÍ¹ýÆÚtoken¡£

GetOrCreate

»ù±¾¶¼ÓÃËü£¬ÎÒÃÇÀ´¿´¿´¡£

Á½ÖÖ·½Ê½ GetOrCreate ¼õÉÙÁ˵ÚÒ»ÖÖģʽµÄÅжϡ£»Øµ÷ÀïÃæµÄentry¾ÍÊÇICacheEntry¿ÉÒÔÓÃÀ´ÉèÖûº´æµÄÆäËüÑ¡Ïî¡£

ͬʱÔÚÕâ¸öTaskÂúÌì·ÉµÄÈÕ×ÓÀ»¹ÌṩÁËÁË GetOrCreateAsync À©Õ¹·½·¨¡£

дÔÚ×îºó

MSCache¸úOrchardÖеÄCaching·Ç³£µÄÏàʶ£¬»òÕß˵½è¼øÁËOrchardÖÐÁ¼ºÃµÄCachingÖع¹¶øÀ´¡£

ÒÔÉϾÍÊDZ¾ÎĵÄÈ«²¿ÄÚÈÝ£¬Ï£Íû¶Ô´ó¼ÒµÄѧϰÓÐËù°ïÖú£¬Ò²Ï£Íû´ó¼Ò¶à¶àÖ§³ÖÕ¾³¤¼¼Êõ¡£

.NET¼¼ÊõÕ»QQȺ£º384413261£¨µã»÷¼ÓÈë .NET Group£©


Ô­ÎÄÁ´½Ó£ºhttps://m.jb51.net/article/145557.htm
±¾Õ¾²¿·ÖÄÚÈÝתÔØÓÚÍøÂ磬°æȨ¹éÔ­×÷ÕßËùÓУ¬×ªÔØ֮ĿµÄÔÚÓÚ´«²¥¸ü¶àÓÅÐã¼¼ÊõÄÚÈÝ£¬ÈçÓÐÇÖȨÇëÁªÏµQQ/΢ÐÅ£º153890879ɾ³ý£¬Ð»Ð»£¡
ÉÏһƪ£ºvueÖи¸×Ó×é¼þµÄ²ÎÊý´«µÝºÍÓ¦ÓÃʾÀý ÏÂһƪ£ºÃ»ÓÐÁË

ÍƼöͼÎÄ

  • ÖÜÅÅÐÐ
  • ÔÂÅÅÐÐ
  • ×ÜÅÅÐÐ

Ëæ»úÍƼö