package main

 import (
"fmt"
"github.com/astaxie/beego/logs"
"github.com/garyburd/redigo/redis"
"ha666/initial"
_ "ha666/initial"
"strconv"
"time"
) func main() {
defer func() {
if err := recover(); err != nil {
logs.Error("【main】ex:%v", err)
time.Sleep(time.Second)
}
}()
logs.Info("开始")
rc := initial.RedisClient.Get()
defer rc.Close()
for {
bytesresult, err := redis.ByteSlices(rc.Do("TIME"))
if err != nil {
fmt.Println(err.Error())
return
}
for _, v := range bytesresult {
_, err = strconv.ParseInt(string(v), , )
if err != nil {
fmt.Println(err.Error())
return
}
//fmt.Println(il)
}
time.Sleep( * time.Millisecond)
}
}

上面犯了两个错误:

1、defer使用错误
2、redis客户端从pool取出来以后要判断错误
修正后的代码是这样的:
 package main

 import (
"fmt"
"github.com/astaxie/beego/logs"
"github.com/garyburd/redigo/redis"
"github.com/pkg/errors"
"ha666/initial"
_ "ha666/initial"
"strconv"
"time"
) func main() {
for {
bytesresult, err := get_redis()
if err != nil {
fmt.Println(err.Error())
continue
}
for _, v := range bytesresult {
il, err := strconv.ParseInt(string(v), , )
if err != nil {
fmt.Println(err.Error())
continue
}
fmt.Println(il)
}
time.Sleep( * time.Millisecond)
}
} func get_redis() ([][]byte, error) {
rc := initial.RedisClient.Get()
if rc.Err() != nil {
return nil, rc.Err()
}
defer rc.Close()
bytesresult, err := redis.ByteSlices(rc.Do("TIME"))
return bytesresult, err
}

解决问题:当redis服务端断开的时候`进程会崩溃(转载6哥笔记)的更多相关文章

  1. 一个命令让redis服务端所有信息无所遁形~(收藏吃灰系列)

    1.info命令作用 在redis客户端执行INFO 命令以便于计算机解析和人工阅读的简单格式返回有关redis服务端的所有信息和统计数据. 可选参数可用于选择特定的信息部分: Server 服务器基 ...

  2. 怎样连接REDIS服务端

    怎样连接REDIS服务端 REDIS服务器是TCP/IP SERVER,因此客户端要访问,必须先同服务器建立SOCKET连接,然后才可以发送各种REDIS COMMAND(指令). 首先要引用单元文件 ...

  3. Redis01 Redis服务端环境搭建

    1 前提准备 下载 VM centos6 安装包,安装好虚拟系统 2 安装远程连接工具 工具获取 2.1 SecureCRT.Xshell 连接远程服务器 2.2 WinSCP 向远程服务器发送文件 ...

  4. 安装redis服务端

    1. redis服务端和客户端的安装 [root@xxx ~]# cd /usr/local/src [root@xxx src]# wget http://download.redis.io/rel ...

  5. Redis 服务端程序实现原理

    上篇我们简单介绍了 redis 客户端的一些基本概念,包括其 client 数据结构中对应的相关字段的含义,本篇我们结合这些,来分析分析 redis 服务端程序是如何运行的.一条命令请求的完成,客户端 ...

  6. Redis服务端的搭建(初级)

    前方低能,仅适合入门级菜鸟阅读,大神大牛通通闪开! 前言:redis经常被用来做缓存(原因自行科普),基于学习的需要自己搭建了一个redis服务器,考虑到项目的分布式部署,所以前期开始的时候,redi ...

  7. Redis 服务端配置——Could not connect to Redis at 127.0.0.1:6379: Connection refused

    [root@centoszang 桌面]# redis-cli Could : Connection refused Could : Connection refused not connected& ...

  8. windos 启动redis服务端与客户端

    服务端:1-win+R 打开命令行2-cd至redis目录,例如 G:\Redis63813-输入 redis-server.exe redis.windows.conf观察是否如图1:至此,已成功: ...

  9. Redis服务端相关

    全局命令: 查看所有键: keys * 键总数: dbsize 检查键是否存在: exists key 删除键: del key [key...] 键过期: expire key seconds 键的 ...

随机推荐

  1. python学习方法

    python学习体系 python相关书籍若干本 了解python基础数据类型 熟悉各种类型的操作方法 理解函数与类的概念 练习练习再练习 前期以被动学习为主,把每个知识点都认真的学过去,后期慢慢再把 ...

  2. Go语言项目中使用zap日志库(翻译)

    本文先介绍了Go语言原生的日志库的使用,然后详细介绍了非常流行的Uber开源的zap日志库,同时介绍了如何搭配Lumberjack实现日志的切割和归档. 在Go语言项目中使用Uber-go的Zap L ...

  3. HDU_4496_逆向并查集

    http://acm.hdu.edu.cn/showproblem.php?pid=4496 逆向并查集,先读取,然后从后向前join每次保存答案即可. #include<iostream> ...

  4. linux下手动安装/升级GCC到较高版本

    一.环境 VMWare+Centos7 二.写在前面的话 安装GCC最简单的方式当然是[yum -y install gcc]但是我的机器上安装下来后,其版本是4.8.5,感觉有点低,所以想升级一下( ...

  5. 《Python学习手册 第五版》 -第6章 动态类型

    本章主要讲述变量.对象.引用三者直接的关联及区别,详细说明了在变量赋值的操作中,计算机内部到底发生了什么,有哪些是不被人察觉和需要明确了解的 1.先从最简单的赋值语句开始 a=3 这一句,基本就能涵盖 ...

  6. DG参数 LOG_ARCHIVE_DEST_n

    DG参数 LOG_ARCHIVE_DEST_n This chapter provides reference information for the attributes of the LOG_AR ...

  7. T1飞跃树林 && 【最长等差子序列】

    solution by Mr.gtf 一道简单的递推 首先我们对树高从大到小排序 很容易得到递推式 ans[i]=Σans[j] (j<i && h[j]-h[i]<=K) ...

  8. spark读取文件机制 源码剖析

    Spark数据分区调研 Spark以textFile方式读取文件源码 textFile方法位于 spark-core_2.11/org.apache.spark.api.java/JavaSparkC ...

  9. Zookeeper 部署 配置文件

    Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式. ■ 单机模式:      Zookeeper只运行在一台服务器上,适合测试环境:■ 伪集群模式:就是 ...

  10. H5监听浏览器滚动条scrollbar

    监听滚动条scrollbar(适配手机) 1. document.documentElement.scrollHeight:整个html的高度,含被隐藏界面高度 2. window.pageYOffs ...