110,566
社区成员
发帖
与我相关
我的任务
分享
public void main()
{
isrun = true;
Thread[] tlist = new Thread[1000];
for (int i = 0; i < 1000; i++)
{
tlist[i] = new Thread(yalitest);
tlist[i].IsBackground = true;
tlist[i].Start();
}
}
private void yalitest()
{
while (isrun)
{
//压测行为
RedisUtility.GetInstance().HashSet<DateTime>(TPS.RedisRepository.RedisKeyPre.DeviceStatus + "0", "LastUpdateTime", DateTime.Now);
RedisUtility.GetInstance().HashGet<DateTime>(TPS.RedisRepository.RedisKeyPre.DeviceStatus + "0", "LastUpdateTime");
Thread.Sleep(500);
}
}
public static RedisUtility GetInstance(int expirationTime = -1)
{
if (instance == null)
{
lock (_lock)
{
if (instance == null)
{
instance = new RedisUtility(configuration);
if (expirationTime > 0)
{
RedisUtility.expirationTime = expirationTime;
}
}
}
}
return instance;
}
private RedisUtility(string configuration)
{
//这个方式支持集群 直接ConnectionMultiplexer.Connect(configuration)的不支持2种redis集群 codis 和 Twemproxy
string[] EndPoint = configuration.Split(',').Where(a => a.Contains(".") && a.Contains(":")).Select(a => a.Trim()).ToArray();
var options = new ConfigurationOptions
{
Proxy = Proxy.Twemproxy
};
foreach (string item in EndPoint)
{
try
{
options.EndPoints.Add(item);
}
catch (Exception oe)
{
string err = oe.Message + oe.StackTrace;
}
}
redis = ConnectionMultiplexer.Connect(options);
}
public T HashGet<T>(string key, string field, int databaseNumber = -1, object asyncState = null)
{
try
{
IDatabase db = redis.GetDatabase(databaseNumber, asyncState);
return jil.Deserialize<T>(db.HashGet(key, field));
}
catch
{
if (typeof(T).IsPrimitive)
{
throw new ArgumentNullException("相关内容不存在"); // throw
}
return default(T);
}
}