国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 服務(wù)器 > Web服務(wù)器 > 正文

緩存服務(wù)器的建立原理分析第1/2頁(yè)

2024-09-01 13:46:22
字體:
供稿:網(wǎng)友
 1概述
通常情況下我們運(yùn)行程序的過程中會(huì)產(chǎn)生一些中間數(shù)據(jù),這些中間數(shù)據(jù)需要在將來的某個(gè)時(shí)間讀取。這就要求我們要把它存在一個(gè)提供高速存取的地方,最好的選擇就是內(nèi)存中?;谶@個(gè)以及多個(gè)原因需要我們把這部分存儲(chǔ)到其他機(jī)器上,這樣就產(chǎn)生了分布式緩存的問題。
實(shí)際上分布式緩存根本上就是提供一個(gè)附加內(nèi)存讓另一臺(tái)機(jī)器幫忙存儲(chǔ)和查找數(shù)據(jù)。
2實(shí)現(xiàn)方法
首先建立一個(gè)集合對(duì)象,該集合對(duì)象應(yīng)保證線程安全。代碼如下所示
Code
1 public static class MemObject
2 {
3 static MemObject()
4 {
5 MemObjl = new Dictionary<string, object>();
6 }
7
8 public static Dictionary<string, object> Get()
9 {
10 if (MemObjl == null)
11 MemObjl = new Dictionary<string, object>();
12 return MemObjl;
13 }
14
15 public static void Add(string key, object obj)
16 {
17 Dictionary<string, object> obg = Get();
18 if (!obg.ContainsKey(key))
19 obg.Add(key, obj);
20 }
21
22 public static void Remove(string key)
23 {
24 Get().Remove(key);
25 }
26
27 public static int Count()
28 {
29 return Get().Count;
30 }
31
32 public static object Get(string key)
33 {
34 Dictionary<string, object> obg = Get();
35 if (obg.ContainsKey(key))
36 return obg[key];
37 return null;
38 }
39
40 public static bool Exits(string key)
41 {
42 return Get().ContainsKey(key);
43 }
44
45 private static Dictionary<string, object> MemObjl;
46 }
接著我們把它包裝起來可以通過遠(yuǎn)程調(diào)用,代碼如下
Code
1 public class DataCatcher : MarshalByRefObject, ICarrier.ICarrier
2 {
3 public void Set(string key, object value)
4 {
5 //if (Exits(key))
6 // Remove(key);
7 //MemObjl.Add(key, value);
8 MemObject.Add(key, value);
9 }
10
11 public bool Exits(string key)
12 {
13 return MemObject.Exits(key);
14 }
15
16 public void Remove(string key)
17 {
18 MemObject.Remove(key);
19 }
20
21 public int Count()
22 {
23 return MemObject.Count();
24 }
25
26 public object Get(string key)
27 {
28 return MemObject.Get(key);
29 }
30 }
為了避免我們的業(yè)務(wù)邏輯泄露我們向客戶端提供接口以便調(diào)用
Code
1 public interface ICarrier
2 {
3
4 void Remove(string key);
5
6 bool Exits(string key);
7
8 void Set(string key,object value);
9
10 object Get(string key);
11
12 int Count();
13 }
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 峨眉山市| 博罗县| 闽侯县| 林州市| 华亭县| 桂阳县| 嘉禾县| 闽侯县| 浮山县| 台中县| 林州市| 陆河县| 淳安县| 淅川县| 黔东| 孝昌县| 竹溪县| 漳平市| 商城县| 郯城县| 民勤县| 积石山| 应城市| 平陆县| 荣昌县| 旅游| 大埔区| 麻城市| 永州市| 普兰店市| 喀什市| 顺昌县| 酒泉市| 方山县| 大新县| 安阳县| 阳江市| 宜都市| 靖州| 巨鹿县| 黄陵县|