using System; using System.Collections.Generic; using System.Threading;
namespace Icometrue { class Program { private static Dictionary<string, object> CacheDictionary = new Dictionary<string, object>();
/// <summary> /// 添加缓存 /// </summary> public static void Add(string key, object value) { CacheDictionary.Add(key, value); }
/// <summary> /// 获取缓存 /// </summary> public static T Get<T>(string key) { return (T)CacheDictionary[key]; }
/// <summary> /// 判断缓存是否存在 /// </summary> /// <param name="key"></param> /// <returns></returns> public static bool Exsits(string key) { return CacheDictionary.ContainsKey(key); }
static void Main(string[] args) { //缓存
Console.WriteLine("Hello World!"); //for (int i = 1; i < 6; i++) //{ // Console.WriteLine($"------第{i}次请求------"); // //int result = DataSource.GetDataByDB(666); // int result = 0; // //key的名字一定要确保请求的准确性 DataSource GetDataByDB 666缺一不可 // string key = "DataSource_GetDataByDB_666"; // if (Exsits(key)) // { // //缓存存在,直接获取原数据 // result = Get<int>(key); // } // else // { // //缓存不存在,去生成缓存,并加入容器 // result = DataSource.GetDataByDB(666); // CacheDictionary.Add(key, result); // } // Console.WriteLine($"第{i}次请求获得的数据为:{result}"); //}
}
}
public class DataSource { /// <summary> /// 模拟从数据库读取数据 /// 耗时、耗CPU /// </summary> /// <param name="count"></param> public static int GetDataByDB(int count) { Console.WriteLine("-------GetDataByDB-------"); int result = 0; for (int i = count; i < 99999999; i++) { result += i; } Thread.Sleep(2000); return result; } } }