首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >与C#:LastCommand一起使用Redis时出现的错误:值不是整数或超出范围,sPort: 51410,LastCommand:

与C#:LastCommand一起使用Redis时出现的错误:值不是整数或超出范围,sPort: 51410,LastCommand:
EN

Stack Overflow用户
提问于 2014-12-30 07:26:59
回答 2查看 503关注 0票数 0

下面的代码在redis中设置了一个键,如果它不存在,那么它的终止期就会增加,如果该键已经存在,则每次都会增加它的值,当我尝试增加一个键的现有值时,即当它进入' if '块时,该代码会给出一个异常。

异常消息:值不是整数或超出范围,sPort: 51814,LastCommand:

代码语言:javascript
复制
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;
    }
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-01-02 17:05:51

想出了解决方案:

我使用了所有所需Redis的ServiceStack dll的旧版本,下载了所有所需dll的新版本,现在它运行得完美无缺。

票数 1
EN

Stack Overflow用户

发布于 2014-12-30 09:16:31

英克罗瓦期望增量是一个浮动,而不是一个双。

传递float amount,而不是double amount,因为这个命令可能不支持double。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27701276

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档