Windows Azure рдкрд░ рдХреИрд╢рд┐рдВрдЧ

рдХреИрд╢рд┐рдВрдЧ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝ рд░рд╣рд╛ рд╣реИред рд╡рд┐рдВрдбреЛрдЬ рдПрдЬрд╝реНрдпреЛрд░ рдореЗрдВ, рдЬрд╣рд╛рдВ рдЙрддреНрдкрд╛рджрдХрддрд╛ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЦреНрдп рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдЬреЛрдбрд╝ рд░рд╣рд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдХреИрд╢ рдХреА рднреВрдорд┐рдХрд╛ рдФрд░ рднреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реЛ рдЬрд╛рддреА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХреА рдорджрдж рд╕реЗ рд╕рднреА рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП "рд╕рд╛рдЭрд╛ рдореЗрдореЛрд░реА" рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред

рдореЗрдореЛрд░реА рдХреИрд╢


рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпрд╣ рд╡рд░реНрдЧ рдПрдЬрд╝реНрдпреЛрд░ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдХреИрд╢рд┐рдВрдЧ рдкрд░ рд▓реЗрдЦ рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИред

.Net 4 рдХреЗ рд╕рд╛рде, рдирдпрд╛ System.Runtime.Caching рдирд╛рдо рд╕реНрдерд╛рди рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ рд╣реИред рдпрд╣ рдореЗрдореЛрд░реАрдХреИрдЪ рдореЗрдВ рд▓рдЧрд╛ рд╣реБрдЖ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдирд╛рдо рд╕реЗ рддрд╛рддреНрдкрд░реНрдп рд╣реИ, рдореЗрдореЛрд░реА рдореЗрдВ рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рднрдВрдбрд╛рд░ рдмрдирд╛рдирд╛ред рдореЗрд░реЗ рд▓рд┐рдП, рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ System.Web.Caching рд╕реНрдкреЗрд╕ рд╕реЗ Cache рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рддреЗрдЬ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдПрдХ рдФрд░ рдЕрдЪреНрдЫреА рд╡рд┐рд╢реЗрд╖рддрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рд╡рд┐рднрд┐рдиреНрди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде рдХрдИ рдХреИрд╢ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред

рдСрдкрд░реЗрд╢рди рдореЗрдВ рдЖрд╕рд╛рдиреА рдХреЗ рд▓рд┐рдП, рдЖрдк рддреБрд░рдВрдд рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдХреИрд╢ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХрд╛ рд╡рд░реНрдгрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рдореЗрдореЛрд░реА рдХреИрд╢ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЕрдиреНрдп рдХреИрд╢ рдХреЛ рдЬрдмрд░рди рд╢реБрд░реВ рдХрд░рдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд▓рд┐рдВрдХ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдкреИрд░рд╛рдореАрдЯрд░ рд░рдирдЯрд╛рдЗрдо рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рджреЛрдиреЛрдВ рдореЗрдВ рд╕реЗрдЯ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ:
<configuration> <system.runtime.caching> <memoryCache> <namedCaches> <add name="default" cacheMemoryLimitMegabytes="0" physicalMemoryPercentage="0" pollingInterval="00:02:00" /> </namedCaches> </memoryCache> </system.runtime.caching> </configuration> 


рдореЗрдВ рднреВрдорд┐рдХрд╛ рдХреИрд╢


рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рдХреНрд▓рд╛рдЙрдб рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдХрдИ рдЙрджрд╛рд╣рд░рдг рд╣реИрдВ: рдПрдХ рддрд░рдл, рдпрд╣ рдЧрд▓рддреА рдХреЛ рд╕рд╣рдирд╢реАрд▓рддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ (SLA Azure, рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдХрдо рд╕реЗ рдХрдо рджреЛ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ) рдФрд░ рдмрдврд╝рддреЗ рд▓реЛрдб рдЧрд┐рд░рдиреЗ рдХреЗ рд╕рд╛рде рд╕реНрдХреЗрд▓реЗрдмрд┐рд▓рд┐рдЯреАред

рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рд╕рднреА рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ "рд╕реНрдореГрддрд┐" рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреА рдЗрдЪреНрдЫрд╛ рд╣реИред рд╕рдмрд╕реЗ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рдПрдХ рд╕рддреНрд░ рд╣реЛрдЧрд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдЬрд╝реНрдпреЛрд░ рдореЗрдВ рдПрдХ рдЗрди-рд░реЛрд▓ рдХреИрд╢ рддрдВрддреНрд░ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдХреИрд╢ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдХреА рдореЗрдореЛрд░реА рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдпрд╛ рд╕рднреА рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рд╕рднреА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЗрдВрд╕реНрдЯреЗрдВрд╕ рд╕реЗ рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧрд╛ред

рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рд╡рд┐рдВрдбреЛрдЬ рдПрдЬрд╝реНрдпреЛрд░ рдХреИрд╢рд┐рдВрдЧ рдкреИрдХреЗрдЬ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреВрдорд┐рдХрд╛рдУрдВ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдкрд╣рд▓реЗ рд╣рдореЗрдВ рдЗрдВрд╕реНрдЯреЗрдВрд╕реЗрд╕ рдкрд░ рдХреИрд╢ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдпрд╛ рдХреИрд╢ рдХреЗ рд▓рд┐рдП рдЖрд╡рдВрдЯрд┐рдд рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдХреЛ рд╕рдорд╛рдзрд╛рди рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред
рдиреЛрдЯ : рдХреИрд╢ рдмрд╣реБрдд рдЫреЛрдЯреЗ (рдЕрддрд┐рд░рд┐рдХреНрдд рдЫреЛрдЯреЗ) рдЙрджрд╛рд╣рд░рдгреЛрдВ рдкрд░ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИред

рдХреИрд╢ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рддреНрд░
рдореМрдЬреВрджрд╛ рднреВрдорд┐рдХрд╛ рдкрд░ рдХреИрд╢ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдирд╛


рдХреИрд╢ рдХреЗ рд▓рд┐рдП рдЖрд╡рдВрдЯрд┐рдд рднреВрдорд┐рдХрд╛ рдмрдирд╛рдирд╛




рд╣рдореЗрд╢рд╛ "рдбрд┐рдлрд╝реЙрд▓реНрдЯ" рдирд╛рдо рдХрд╛ рдПрдХ рдХреИрд╢ рд╣реЛрдЧрд╛ред рд╣рдо рдЙрдирдХреЗ рдирд╛рдо рдФрд░ рд╡рд┐рднрд┐рдиреНрди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде рдХреИрд╢ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред

рдХреИрд╢ рд╕реЗрдЯрд┐рдВрдЧреНрд╕

рдЙрдЪреНрдЪ рдЙрдкрд▓рдмреНрдзрддрд╛
рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рд╕рдорд╛рдзрд╛рди рдореЗрдВ рдХрдо рд╕реЗ рдХрдо рджреЛ рдЙрджрд╛рд╣рд░рдг рд╣реЛрдВ, рдЬрд┐рди рдкрд░ рдХреИрд╢ рд╕реНрдерд┐рдд рд╣реЛред рдХреИрд╢реНрдб рдбреЗрдЯрд╛ рдХреЛ рдХрдо рд╕реЗ рдХрдо рджреЛ рдкреНрд░рддрд┐рдпреЛрдВ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреА рд╡рд┐рдлрд▓рддрд╛ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдбреЗрдЯрд╛ рд╣рд╛рдирд┐ рдирд╣реАрдВ рд╣реЛрдЧреАред рдЗрд╕ рд╡рд┐рдХрд▓реНрдк рдХрд╛ рд╕рд╛рд╡рдзрд╛рдиреАрдкреВрд░реНрд╡рдХ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдХреИрд╢ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдЕрд╡рд╢реЛрд╖рд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрддрд╛ рд╣реИред

рдЕрд▓рд░реНрдЯ (рд╕реВрдЪрдирд╛рдПрдВ)
рдХреИрд╢ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рд╕реВрдЪрдирд╛ рддрдВрддреНрд░ рдЪрд╛рд▓реВ / рдмрдВрдж рдХрд░реЗрдВред рд╡реЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рд┐рд░реНрдл рджрд┐рдЦрд╛рдИ рджрд┐рдП рдФрд░ рдЙрдирдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд░рд┐рджреГрд╢реНрдп, рдореИрдВ рдЕрднреА рддрдХ рд╕рд╛рде рдирд╣реАрдВ рдЖрдпрд╛ рд╣реВрдВред

рд╕рдлрд╛рдИ (рд╡рд┐рдХрд╛рд╕ рдиреАрддрд┐)
рдУрд╡рд░рдлреНрд▓реЛ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдХреИрд╢реЗ рдХреЛ рдХреИрд╕реЗ рд╕рд╛рдл рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рд╕рдорд╛рд╡реЗрд╢рди рдХреЗ рд▓рд┐рдП, рдЕрдм рддрдХ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рд╡рд┐рдХрд▓реНрдк рдЙрдкрд▓рдмреНрдз рд╣реИ - LRU (рдХрдо рд╕реЗ рдХрдо рд╣рд╛рд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ)ред рдпрд╛рдиреА рдХреМрди рд╕реА рд╡рд╕реНрддреБ рдХрдо рд╕реЗ рдХрдо рдПрдХреНрд╕реЗрд╕ рдХреА рдЧрдИ - рдЗрд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рд╕рдорд╛рдкреНрддрд┐ рдХрд╛ рдкреНрд░рдХрд╛рд░ рдФрд░ рдЬреАрдиреЗ рдХрд╛ рд╕рдордп (TTL)
рджреЛ рдкрд░рд╕реНрдкрд░ рд╕рдВрдмрдВрдзрд┐рдд рдкреИрд░рд╛рдореАрдЯрд░ рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдХреИрд╕реЗ рдФрд░ рдХрдм рддрдХ (рдорд┐рдирдЯреЛрдВ рдореЗрдВ) рд╡реЗ рдХреИрд╢ рдореЗрдВ рдЕрдкреНрд░рдЪрд▓рд┐рдд рд╣реЛ рдЬрд╛рдПрдВрдЧреЗ рдФрд░ рдЗрд╕рд╕реЗ рдЧрд╛рдпрдм рд╣реЛ рдЬрд╛рдПрдВрдЧреЗред рдпрд╛рдиреА рдпрджрд┐ рдХреНрд▓реАрдирдЕрдк рдкреИрд░рд╛рдореАрдЯрд░ рдЕрдзрд┐рдХ рдЖрдкрд╛рддрдХрд╛рд▓реАрди рд╣реИ (рдХреИрд╢ рдУрд╡рд░рдлрд╝реНрд▓реЛ рдХреА рд╕реНрдерд┐рддрд┐ рдЖрдорддреМрд░ рдкрд░ рдХреБрдЫ рднреА рдЕрдЪреНрдЫреА рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ), рддреЛ рдЕрдкреНрд░рдЪрд▓рди рд╣рдореЗрдВ рдпрд╣ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдХрд┐ рд╕рд╛рдорд╛рдиреНрдп рдСрдкрд░реЗрд╢рди рдХреЗ рджреМрд░рд╛рди рдХреИрд╢ рд╕реЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреИрд╕реЗ рдЧрд╛рдпрдм рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдХреЛрдИ рдирд╣реАрдВред рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╣рдореЗрд╢рд╛ рдХреЗ рд▓рд┐рдП рдХреИрд╢ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ (рд░рд┐рдмреВрдЯ рддрдХ)ред рдЬреАрд╡рдирдХрд╛рд▓ рдХреЛ рд╢реВрдиреНрдп рдкрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдирд┐рд░рдкреЗрдХреНрд╖ред рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдХреИрд╢ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдордп рдХреЗ рдмрд╛рдж рдЗрд╕реЗ рд╡рд╣рд╛рдВ рдорд┐рд▓рд╛ред
рд╕реНрд▓рд╛рдЗрдбрд┐рдВрдЧ рд╡рд┐рдВрдбреЛред рдореЗрд░рд╛ рдкрд╕рдВрджреАрджрд╛ рд╡рд┐рдХрд▓реНрдкред рдЕрдВрддрд┐рдо рдкрд╣реБрдВрдЪ рдХреЗ рдмрд╛рдж рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕рдордп рдХреЗ рдмрд╛рдж рдСрдмреНрдЬреЗрдХреНрдЯ рдХреИрд╢ рд╕реЗ рдЧрд╛рдпрдм рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдпрд╛рдиреА рдЬрд┐рди рд╡рд╕реНрддреБрдУрдВ рддрдХ рдкрд╣реБрдБрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИ рд╡реЗ рд▓рдЧрд╛рддрд╛рд░ рдХреИрд╢ рдореЗрдВ рд░рд╣реЗрдВрдЧреЗред

рдХреИрд╢ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ


рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд╕рдм рдХреБрдЫ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ: рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╣рдо рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреНрдпрд╛ рдХреИрд╢ рд╣реИрдВ рдФрд░ рд╣рдо рдХрд╣рд╛рдБ рд╕реНрдерд┐рдд рд╣реИрдВред рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдирд┐рдореНрди рдкрдВрдХреНрддрд┐рдпрд╛рдБ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░реЗрдВ (рдХреИрд╢ рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╕рдордп рдЙрдирдХрд╛ рдЯреЗрдореНрдкрд▓реЗрдЯ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА NuGet рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛)ред
 <dataCacheClients> <dataCacheClient name="default"> <autoDiscover isEnabled="true" identifier="CacheWorkerRole" /> <localCache isEnabled="true" sync="TimeoutBased" objectCount="100000" ttlValue="300" /> </dataCacheClient> <dataCacheClient name="MyNamedCache"> тАж </dataCacheClients> 

рдПрдХ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ, рдЖрдкрдХреЛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдХреИрд╢ рдпреБрдХреНрдд рднреВрдорд┐рдХрд╛ рдХрд╛ рдирд╛рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, CacheWorkerRoleред Azure рдореЗрдВ рдкрд╣реБрдВрдЪ рдмрд┐рдВрджреБ рдХрд╛ рдирд╛рдо рдирд╣реАрдВ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ mycoolapp.cloudapp.netред

рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг, рд╢рд╛рдпрдж, рдХреЗрд╡рд▓ рд╕реНрдерд╛рдиреАрдп рдХреИрд╢ рдЯреИрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЙрджрд╛рд╣рд░рдг рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рд╡рд╕реНрддреБрдУрдВ рдФрд░ рднрдВрдбрд╛рд░рдг рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред objectCount рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╣рдо рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдХрд┐рддрдиреЗ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░реЗрдВрдЧреЗ, рдЬрдм рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕рдВрдЦреНрдпрд╛ рддрдХ рдкрд╣реБрдБрдЪ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдХреИрд╢ 20% рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ рд╣рдЯрд╛ рджреЗрдЧрд╛, рдЬрд┐рдиреНрд╣реЗрдВ рд╕реНрдерд╛рдиреАрдп рдХреЙрдкреА рд╕реЗ рд╕рдмрд╕реЗ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдПрдХреНрд╕реЗрд╕ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рд╕рдордп рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди (рдЯрд╛рдЗрдордмреЗрдб) рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╡рд╕реНрддреБрдУрдВ рдХреЛ ttlValue рд╕реЗрдХрдВрдб рдХреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕реНрдерд╛рдиреАрдп рдХреИрд╢ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рдирдмреЗрдб рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рд▓рд┐рдП рдЬрд░реВрд░реА рд╣реИ рдХрд┐ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди рдореИрдХреЗрдирд┐рдЬреНрдо рдХреИрд╢ рдореЗрдВ рдЗрдиреЗрдмрд▓ рд╣реЛред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, ttlValue рдкреИрд░рд╛рдореАрдЯрд░ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреИрд╢ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рдиреАрдп рдХреИрд╢ рдХрд┐рддрдиреА рдмрд╛рд░ рдЬрд╛рдВрдЪ рдХрд░реЗрдЧрд╛ред

рдмреБрдирд┐рдпрд╛рджреА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдкреВрд░реАред рдЕрдм, рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдо рдЕрдкрдиреА рд╡реЗрдм рднреВрдорд┐рдХрд╛ рдХреЗ рд╕рддреНрд░реЛрдВ рдХреЛ рдХреИрд╢ рд╕реЗ рдЬреЛрдбрд╝реЗрдВрдЧреЗред IIS рдореЗрдВ, рдпрд╣ рдорд╛рдирдХ InProc рд╕рддреНрд░ рдкреНрд░рджрд╛рддрд╛ рдХреЛ рдХреИрд╢ рдкреНрд░рджрд╛рддрд╛ рдХреЗ рд╕рд╛рде рдмрджрд▓рдХрд░ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИред
 <sessionState mode="Custom" customProvider="AFCacheSessionStateProvider"> <providers> <add name="AFCacheSessionStateProvider" type="Microsoft.Web.DistributedCache.DistributedCacheSessionStateStoreProvider, Microsoft.Web.DistributedCache" cacheName="default" dataCacheClientName="default" applicationName="AFCacheSessionState"/> </providers> </sessionState> 

рдПрдХ рд╕рддреНрд░ рдПрдХ рд╢рд╛рдирджрд╛рд░ рдЙрджрд╛рд╣рд░рдг рд╣реИ рдЬрд╣рд╛рдВ рдЖрдк рдХреИрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдЙрд╕реА рддрдХ рд╕реАрдорд┐рдд рдирд╣реАрдВ рд░рд╣рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдкреГрд╖реНрдареЛрдВ рдХреЛ рдХреИрд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдлрд┐рд░ рдЕрдиреНрдп рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рдЙрдиреНрд╣реЗрдВ рдмрдирд╛рдиреЗ рдореЗрдВ рд╕рдордп рдмрд┐рддрд╛рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ рд╣реИред рдФрд░ рд╣рд╛рдВ, рд╣рдорд╛рд░рд╛ рдЕрдкрдирд╛ рдбреЗрдЯрд╛ рдХреИрд╢ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдХреЛрдб рд╕реЗ рдХреИрд╢ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдкрд░ рдЬрд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЖрдЗрдП рд╣рдо рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирдП рдкреНрд░рдХрд╛рд░ рдХреЗ рдХреИрд╢ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВред

рдХреИрд╢ рд╕рд░реНрд╡рд┐рд╕


рдЬрдмрдХрд┐ рд╕реЗрд╡рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдХреИрд╢ рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рдореЛрдб (рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди) рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИред рдпрд╣ рдЙрди рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдореЗрдВ рдорд╛рдВрдЧ рдореЗрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рд╡рд┐рднрд┐рдиреНрди рд╕рдорд╛рдзрд╛рдиреЛрдВ рдореЗрдВ рд╕рдорд╛рди рдбреЗрдЯрд╛ рддрдХ рдкрд╣реБрдВрдЪ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдЗрди-рд░реЛрд▓ рдХреИрд╢ рдХреЗрд╡рд▓ рдЙрд╕ рд╕рдорд╛рдзрд╛рди рдХреЗ рднреАрддрд░ рдЙрдкрд▓рдмреНрдз рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕рд╕реЗ рд╡рд╣ рдмрдВрдзрд╛ рд╣реБрдЖ рд╣реИред рдХреИрд╢ рд╕реЗрд╡рд╛ рдореЗрдВ рдРрд╕реА рдХреЛрдИ рдЦрд╛рдореА рдирд╣реАрдВ рд╣реИред

рдХреИрд╢ рд╕реЗрд╡рд╛ рдХреЛ рдПрдХ-рдкрд░-рдПрдХ рд╕реЗрдЯ рдХрд░рдирд╛, рдЗрди-рд░реЛрд▓ рдХреИрд╢ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд╕рдорд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдЗрд╕реЗ рд╕реНрдЯреВрдбрд┐рдпреЛ рдореЗрдВ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдПрдЬрд╝реНрдпреЛрд░ рдкреНрд░рдмрдВрдзрди рдкреЛрд░реНрдЯрд▓ рдкрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рднреВрдорд┐рдХрд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдХреИрд╢ рдПрдХреНрд╕реЗрд╕ рдХреБрдВрдЬреА рдЬреЛрдбрд╝реА рдЬрд╛рдПрдЧреАред


рдХреИрд╢ рд╕реЗрд╡рд╛ рдХреЗ рдЕрдиреНрдп рд▓рд╛рднреЛрдВ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
- рдереЛрдбрд╝реА рдХрдо рдХреАрдордд;
- рддреИрдирд╛рддреА рдЕрдкрдбреЗрдЯ рдХреЗ рджреМрд░рд╛рди рд╕рд┐рд░рджрд░реНрдж рдХреА рдХрдореА (рд╡реЗ рдХреИрд╢ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ);
- рдореЗрдореНрдХреЗрдб рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди, рдЬреЛ рдЖрдкрдХреЛ рди рдХреЗрд╡рд▓ рдЗрд╕рдХреЗ рд▓рд┐рдП рдкреИрд╕ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рдХрд┐рд╕реА рднреА рдкреНрд░рдХрд╛рд░ рдХреА рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рднреАред

рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдФрд░ рд╢рдмреНрдж


рдХреИрд╢реЗ рдмрдирд╛рдирд╛ рдпрд╣ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реИ рдХрд┐ рдХрд┐рддрдиреА рд╡рд╕реНрддреБрдПрдВ, рдЗрд╕рдореЗрдВ рдХрд┐рддрдирд╛ рд╕рдВрдЧреНрд░рд╣рд┐рдд рд╣реЛрдЧрд╛ рдФрд░ рдХрд┐рддрдиреА рдмрд╛рд░ рдЗрдиреНрд╣реЗрдВ рдкрдврд╝рд╛ рдФрд░ рд▓рд┐рдЦрд╛ рдЬрд╛рдПрдЧрд╛ред рдЬрдм рдпреЗ рдорд╛рди рдЬреНрдЮрд╛рдд рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдбреЗрдЯрд╛ рдХреЛ рдПрдХреНрд╕реЗрд▓ рдкреНрд▓реЗрдЯреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ ( рд╕реЗрд╡рд╛ рдпрд╛ рднреВрдорд┐рдХрд╛рдУрдВ рдХреЗ рд▓рд┐рдП ) рдбреНрд░рд╛рдЗрд╡ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдФрд░ рдЯреИрд░рд┐рдлреНрдб рдЗрдХрд╛рдЗрдпреЛрдВ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдЖрдкрдХреЛ рдХрд┐рддрдиреА рдФрд░ рдХреНрдпрд╛ рдЬрд░реВрд░рдд рд╣реИ, рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рд╕рд┐рдлрд╛рд░рд┐рд╢реЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреА рд╣реЛрддреА рд╣реИрдВред

рдСрдмреНрдЬреЗрдХреНрдЯ рдХреИрд╢ рдореЗрдВ рдХреНрд░рдордмрджреНрдз рд░реВрдк рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП, рдХрд┐рд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдорд╛рддреНрд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╕реНрд╡рдпрдВ рдФрд░ рдЗрд╕рдХреА рдХреБрдВрдЬреА рдХреЛ рдХреНрд░рдордмрджреНрдз рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЖрдХрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

рдХреНрд░рдорд╛рдВрдХрди рдХреЗ рдмрд╛рдж рдХреИрд╢ рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдЖрдХрд╛рд░ 8 рдореЗрдЧрд╛рдмрд╛рдЗрдЯ рддрдХ рд╕реАрдорд┐рдд рд╣реИред рдпрджрд┐ рдЖрдк рд╕реАрдорд╛ рд╕реЗ рдкрд░реЗ рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдХреИрд╢ рдХреЗ рд▓рд┐рдП рд╕рдВрдкреАрдбрд╝рди рдХреЛ рд╕рдХреНрд╖рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдлрд┐рд░ рдХреИрд╢ рдореЗрдВ рдЖрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╕рдВрдкреАрдбрд╝рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд╕рдВрдкреАрдбрд╝рди рдХрд╛ рдХреИрд╢реЗ рдкреНрд░рджрд░реНрд╢рди рдкрд░ рд╕рдХрд╛рд░рд╛рддреНрдордХ рдкреНрд░рднрд╛рд╡ рдкрдбрд╝ рд╕рдХрддрд╛ рд╣реИ рдпрджрд┐ рдкреИрдХрд┐рдВрдЧ рдФрд░ рдЕрдирдкреИрдХрд┐рдВрдЧ рд▓рд╛рдЧрдд рдиреЗрдЯрд╡рд░реНрдХ рдЯреНрд░рд╛рдВрд╕рдорд┐рд╢рди рд▓рд╛рдЧрдд рд╕реЗ рдХрдо рд╣реЛред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдпрд╣ рдХреЗрд╡рд▓ рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рд░реВрдк рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдХреИрд╢ рдереНрд░реВрдкреБрдЯ рдХреЛ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдЗрд╕реЗ рдЕрдзрд┐рдХрддрдо рдХрдиреЗрдХреНрд╢рди рдХреЗ рд╕рд╛рде рдХрдиреЗрдХреНрд╢рди рдХреА рд╕рдВрдЦреНрдпрд╛ рдмрдврд╝рд╛ рд╕рдХрддреЗ рд╣реИрдВред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдХреЗрд╡рд▓ рдПрдХ рдХреИрд╢ рдХрдиреЗрдХреНрд╢рди рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдХреЛрдб рд╕реЗ рдХреИрд╢ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛


рдХреИрд╢ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕рдм рдХреБрдЫ Microsoft.ApplicationServer.Caching рдореЗрдВ рд░рд╣рддрд╛ рд╣реИред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдПрдХ рдХреИрд╢ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВ, рдФрд░ рдРрдб, рдкреБрдЯ, рдЧреЗрдЯ рдФрд░ рд░рд┐рдореВрд╡ рдХрдорд╛рдВрдбреНрд╕ рдХреЗ рд╕рд╛рде рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВред
 DataCache dc = new DataCache("default"); dc.Add("test", DateTime.Now); //    dc.Put("test", DateTime.Now); //   DateTime dt=(DateTime)dc.Get("test"); // dc.Remove("test"); // 


рджреМрдбрд╝

рджреМрдбрд╝ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП, GetAndLock, PutAndUnlock рдФрд░ Unlock рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред GetAndLock рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдПрдХ рдирд┐рдпрдорд┐рдд рдЧреЗрдЯ рдХреЛ рдмреНрд▓реЙрдХ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЧрдВрджреЗ рдкрдврд╝рдиреЗ рдореЗрдВ рд╣рд╕реНрддрдХреНрд╖реЗрдк рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
 try { DataCacheLockHandle lockHndl; object value = dc.GetAndLock("test", new TimeSpan(0, 0, 5), out lockHndl); //  dc.PutAndUnlock("test", value, lockHndl); // dc.Unlock("test", lockHndl)     } catch (DataCacheException de) { if (de.ErrorCode == DataCacheErrorCode.KeyDoesNotExist) { //  } } 

рдЕрджреНрдпрддрди рдкрдврд╝рдирд╛

рдРрд╕реЗ рдкрд░рд┐рджреГрд╢реНрдп рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЖрдкрдХреЛ рдХреИрд╢ рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрджрд▓рддреЗ рд╕рдордп рдХреБрдЫ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЖрдк рдСрдмреНрдЬреЗрдХреНрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╡рд░реНрддрдорд╛рди рдореВрд▓реНрдп рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрдк GetIfNewer рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреИрд╢ рд▓реЛрдб рдХреЛ рдХрдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
 object val = DateTime.Now; DataCacheItemVersion version = dc.Put("test", val); while (true) { val = dc.GetIfNewer("test", ref version); if (val != null) { //  } Thread.Sleep(1000); } 

рдпрджрд┐ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╣реАрдВ рдФрд░ рдХреИрд╢ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛, рддреЛ рдЖрдк DataCacheItem рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реЗ рдЗрд╕рдХрд╛ рд╕рдВрд╕реНрдХрд░рдг рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

 DataCacheItem dci = dc.GetCacheItem("test"); DataCacheItemVersion version = dci.Version; object val = dci.Value; 

рдХреНрд╖реЗрддреНрд░

рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╕рдореВрд╣рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдХреНрд╖реЗрддреНрд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрдкрд░реЛрдХреНрдд рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдзрд┐рдпреЛрдВ рдореЗрдВ, рджреВрд╕рд░рд╛ рддрд░реНрдХ рдХреНрд╖реЗрддреНрд░ рдХрд╛ рдирд╛рдо (рдЗрд╕реЗ рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рдж) рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЖрдк рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рдХреИрд╢ рдореЗрдВ рд╡рд╕реНрддреБрдУрдВ рдкрд░ рдкреБрдирд░рд╛рд╡реГрддрд┐ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИред
 if (dc.CreateRegion("region")) { //  ,   } dc.Put("test", DateTime.Now, "region"); foreach (KeyValuePair<string, object> kvp in dc.GetObjectsInRegion("region")) { //  } 

рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рдХреБрдЫ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЙрдирдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдКрдкрд░ рджрд┐рдП рдЧрдП рдХреЛрдб рдореЗрдВ рд╕реАрдзреЗ рдЙрд╕ рдХреНрд╖реЗрддреНрд░ рдХреА рд╡рд╕реНрддреБрдУрдВ рдкрд░ рдкреБрдирд░рд╛рд╡реГрддрд┐ рди рдХрд░реЗрдВред рдпрджрд┐ рдХреЛрдИ рдереНрд░реЗрдб рдЗрд╕рдореЗрдВ рдХрд┐рд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдЬреЛрдбрд╝рддрд╛ рдпрд╛ рд╣рдЯрд╛рддрд╛ рд╣реИ, рддреЛ рд╣рдо рдЕрдкрд╡рд╛рдж рдореЗрдВ рднрд╛рдЧ рд▓реЗрдВрдЧреЗ "рд╕рдВрдЧреНрд░рд╣ рдмрджрд▓ рдЧрдпрд╛ рд╣реИ"ред

рджреВрд╕рд░реА рд╡рд┐рд╢реЗрд╖рддрд╛: рдХреНрд╖реЗрддреНрд░ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рднреАрддрд░ рд░рд╣рддрд╛ рд╣реИред рдпрд╛рдиреА рдпрджрд┐ рдХреНрд╖реЗрддреНрд░ рджреНрд╡рд╛рд░рд╛ рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рд╡рд┐рддрд░рдг рдЕрд╕рдорд╛рди рд╣реИ, рддреЛ рдРрд╕реА рд╕реНрдерд┐рддрд┐ рдЙрддреНрдкрдиреНрди рд╣реЛ рд╕рдХрддреА рд╣реИ рдЬрдм рдкреНрд░рддрд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдмреЗрдХрд╛рд░ рд╣реИ рдФрд░ рджреВрд╕рд░рд╛ рд▓реЛрдб рдХреЗ рддрд╣рдд рдЙрдмрд▓ рд░рд╣рд╛ рд╣реИред

рдХреИрд╢ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдпрд╛рдж рд░рдЦрдиреЗ рдпреЛрдЧреНрдп рдмрд╛рддреЗрдВ


- рдХреИрд╢ рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдЖрдХрд╛рд░ 8 рдореЗрдЧрд╛рдмрд╛рдЗрдЯ рддрдХ рд╕реАрдорд┐рдд рд╣реИ
- рдпрджрд┐ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЙрдиреНрд╣реЗрдВ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рднрд░рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП
- рдЬрдм рднреА рд╕рдВрднрд╡ рд╣реЛ рд╕реНрдерд╛рдиреАрдп рд╕реНрддрд░ рдкрд░ рдХреИрд╢ рд╡рд╕реНрддреБрдУрдВред
- рдЙрдЪреНрдЪ рдЙрдкрд▓рдмреНрдзрддрд╛ рдХреЛ рдХреЗрд╡рд▓ рдЙрд╕реА рд╕реНрдерд╛рди рдкрд░ рд╕рдХреНрд╖рдо рдХрд░реЗрдВ рдЬрд╣рд╛рдБ рдЖрдкрдХреЛ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
- рдЬрд╣рд╛рдБ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рдХреЗрд╡рд▓ рддрд╛рд▓реЗ (GetAndLock) рдХрд╛ рдкреНрд░рдпреЛрдЧ рдХрд░реЗрдВ
- рдпрджрд┐ рд╡реЗ рдЕрджреНрдпрддрди рдирд╣реАрдВ рд╣реИрдВ рддреЛ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рди рдкрдврд╝реЗрдВ (GetIfNewer рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ)

рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рд▓реЗрдЦ рджреВрд╕рд░реЛрдВ рдХреЛ рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдПрдХрддреНрд░ рдХрд┐рдП рдЧрдП рдХрдо рд░реЗрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред рдЕрдкрдиреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд╕рд╛рде рд╢реБрднрдХрд╛рдордирд╛рдПрдВ, рдЕрдкрдиреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рддреЗрдЬ рд╣реЛрдиреЗ рджреЗрдВред

Google рдкреНрд▓рд╕

Source: https://habr.com/ru/post/In200744/


All Articles