下面的代码在redis中设置了一个键,如果它不存在,那么它的终止期就会增加,如果该键已经存在,则每次都会增加它的值,当我尝试增加一个键的现有值时,即当它进入' if '块时,该代码会给出一个异常。
异常消息:值不是整数或超出范围,sPort: 51814,LastCommand:
public bool SetKeyInRedis(string Id, double Amount)
{
bool b = false;
try
{
string Key = "Id:" + Id;
using (var redisClient = new RedisClient(RedisIPAddress,RedisPortNo))
{
if (redisClient.Exists(Key) == 1)
{
redisClient.IncrByFloat(Key, Amount);
b = true;
}
else if (redisClient.Exists(Key) == 0)
{
DateTime Today = DateTime.Now;
DateTime EndOfMonth = new DateTime(Today.Year, Today.Month, DateTime.DaysInMonth(Today.Year, Today.Month));
b = redisClient.Set<double>(Key, Amount, EndOfMonth);
}
else
{
//to-do
}
}
}
catch (Exception Ex)
{
Console.WriteLine(Ex.Message);
}
return b;
}发布于 2015-01-02 17:05:51
想出了解决方案:
我使用了所有所需Redis的ServiceStack dll的旧版本,下载了所有所需dll的新版本,现在它运行得完美无缺。
发布于 2014-12-30 09:16:31
英克罗瓦期望增量是一个浮动,而不是一个双。
传递float amount,而不是double amount,因为这个命令可能不支持double。
https://stackoverflow.com/questions/27701276
复制相似问题