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. CCF_ 201403-4_无线网络

    分散点的bfs,先建立一个互相是否可达的二维数组,vis[i][j]代表到第i个点,走了j步的状态,注意判断新增路由器数量是否超过K. #include<cstdio> #include& ...

  2. (六)mybatis拦截器

    首先拦截器可以拦截mybatis四大核心对象:StatementHandler,ParameterHandler,ResultSetHandler,Executor,具体拦截时根据需求拦截一部分方法 ...

  3. Linux 服务器注意事项

    1.创建时  数据文件一定分盘挂载 2.LVM 虚拟磁盘卷是否创建    有争议??? 3.hosts 文件 最好添加本机映射          主机名  127.0.0.1      4.iptab ...

  4. K8S 容器挂载Windows 文件共享目录,访问出现Permission denied的解决办法

    K8S Pod,Docker 容器挂载Windows主机目录,访问相应的文件出现Premission denied的权限访问问题 Windows远程共享目录为//192.168.61.115/huas ...

  5. Java数据结构--单链表

    #java学习经验总结------单链表的建立与结点的增删 在该链表结点有data数据,并且还有cpu,分给cpu随机的时间片,根据时间片大小进行结点data的排序 链表结点的建立 class Lin ...

  6. mysql 使用 limit ,从指定条数读取完,-1失效

    , 原因很简单这种写法本身就是错的,虽然它可以在之前的版本中运行(低优先级),新版本的mysql对此做出了修复,现在的替代方法是第二个参数用一个较大的正数代替 比如你写个 , 感觉这方法很蠢,然鹅我并 ...

  7. lua学习之深入函数第一篇

    深入函数第一篇 函数是第一类值,具有特定的词法域 第一类值 第一类值的意思是函数与 lua 中的其他类型如数字,字符串具有相同的权力 函数可以存储到全局变量或局部变量变量,还可以存储到 table 中 ...

  8. PL/SQL不安装Oracle连接,Oracle instantclient安装

    ================================ ©Copyright 蕃薯耀 2020-01-07 https://www.cnblogs.com/fanshuyao/ 第一步: 下 ...

  9. MongoDB initial sync过程

    initial sync过程大致如下: (1)T1时间,从Primary同步所有数据库的数据,但不包括local的数据,复制时Mongo会扫描每个源数据库中的每个集合,并将所有数据插入对应的集合.通过 ...

  10. 吴裕雄--天生自然 R语言数据可视化绘图(1)

    par(ask=TRUE) opar <- par(no.readonly=TRUE) # make a copy of current settings attach(mtcars) # be ...