Redis 客户端

扫码查看

web.config 配置

//连接Redis的服务器地址和密码配置

<add key="redispath" value="124.128.87.13:16378,allowadmin=true,abortConnect = FALSE,Password=1f29c59648136e1a6d3ef650b0188362" />

//保存Redis点击量
string redispath = ConfigurationManager.AppSettings["redispath"].ToString();
RedisHelper redis = new RedisHelper(0, redispath);
string now = DateTime.Now.ToString("yyyy-MM-dd");

//第一个参数是key  第二个参数是 ,第三个参数是自增量
redis.HashIncrement(now, "base", 1);

       //获取Redis里面的hash数据 要执行的任务
        private void doAt1AM(object state)
        {
            //保存数据
            jg_clicknum_Server clicknumBll = new jg_clicknum_Server();
            string redispath = ConfigurationManager.AppSettings["redispath"].ToString();
            RedisHelper redis = new RedisHelper(0, redispath);
            //DateTime now = DateTime.Now.AddDays(-1);
            DateTime now = DateTime.Now;
            string timeStr = now.ToString("yyyy-MM-dd");

            RedisValue[] rediskeys = redis.HashKeys(timeStr);//获取所有value

            string valueStr = string.Empty;
            foreach (var item in rediskeys)
            {
                string clicknum = redis.HashGet(timeStr, item.ToString());//获取所有value
                valueStr += "('"+ timeStr + "','"+ item.ToString() + "',"+ clicknum + "),";
            }
            if (valueStr.Length > 0)
            {
                valueStr = valueStr.TrimEnd(',');
                string sqlFormat = "INSERT INTO jg_clicknum (daytime,name,clicknum) VALUES "
                + valueStr +
                " ON DUPLICATE KEY UPDATE  clicknum = clicknum + VALUES(clicknum) ";
                clicknumBll.exeSql(sqlFormat);

                //清除计时器,启动新计时器
                bool dd = redis.KeyDelete(timeStr);
                taskIsRunning = false;
                LogHelper.info(DateTime.Now + "----now:我更新了");
            }
             

       

          //设定定时执行
          //setTaskAtFixedTime();

          private bool taskIsRunning = false;
          /// <summary>
          /// 当前任务是否处于忙的状态
          /// </summary>
          public bool TaskIsRunning { get { return taskIsRunning; } }

          System.Threading.Timer timer = null;


//定时器零点更新
public void setTaskAtFixedTime() { if (!TaskIsRunning) { taskIsRunning = true; DateTime now = DateTime.Now; DateTime oneOClock = DateTime.Today.AddHours(0.0); //凌晨0:00 //DateTime oneOClock = DateTime.Today.AddHours(11); //测试 if (now > oneOClock) { oneOClock = oneOClock.AddDays(1.0); } int msUntilFour = (int)((oneOClock - now).TotalMilliseconds); //处理关闭其他的线程 LogHelper.info(oneOClock + "----now:开始启动了"); timer = new System.Threading.Timer(doAt1AM); timer.Change(msUntilFour, Timeout.Infinite); } }
12-27 16:25
查看更多