public class ElectronicCertificationCommon
{
private static object _o = new object();
private static ElectronicCertificationCommon _instance = null;
private string[] _config = null;
private ElectronicCertificationCommon()
{
_config = getCSRedisConfig();
RedisHelper<RedisHelper>.Initialization(new CSRedisClient(null, _config));
}
public static ElectronicCertificationCommon Instance()
{
try
{
if (_instance == null)
{
lock (_o)
{
if (_instance == null)
{
_instance = new ElectronicCertificationCommon();
return _instance;
}
return _instance;
}
}
return _instance;
}
catch
{
return _instance;
}
}
private static string[] getCSRedisConfig()
{
SerialNumberConfig val = new SerialNumberConfig();
return val.GetDBConn();
}
public string GrantNum(string key)
{
try
{
long num = RedisHelper<RedisHelper>.IncrBy(key, 1);
if (num == 1)
{
DateTime now = DateTime.Now;
DateTime d = DateTime.Now.AddDays(1.0).AddMonths(1);
TimeSpan expire = d - now;
RedisHelper<RedisHelper>.Expire(key, expire);
}
return num.ToString();
}
catch (Exception ex)
{
throw ex;
}
}
public string QueryNum(string key)
{
try
{
string value = RedisHelper<RedisHelper>.Get(key);
if (value == null)
{
return null;
}
return int.Parse(value).ToString();
}
catch (Exception ex)
{
throw ex;
}
}
public bool SaveNum(string key, string valueNum)
{
try
{
if (RedisHelper<RedisHelper>.Set(key, valueNum))
{
return true;
}
return false;
}
catch (Exception ex)
{
throw ex;
}
}
}
参考链接:C# 单例模式的多种简单实现