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