1. package main
  2.  
  3. import (
  4. "fmt"
  5. "github.com/astaxie/beego/logs"
  6. "github.com/garyburd/redigo/redis"
  7. "ha666/initial"
  8. _ "ha666/initial"
  9. "strconv"
  10. "time"
  11. )
  12.  
  13. func main() {
  14. defer func() {
  15. if err := recover(); err != nil {
  16. logs.Error("【main】ex:%v", err)
  17. time.Sleep(time.Second)
  18. }
  19. }()
  20. logs.Info("开始")
  21. rc := initial.RedisClient.Get()
  22. defer rc.Close()
  23. for {
  24. bytesresult, err := redis.ByteSlices(rc.Do("TIME"))
  25. if err != nil {
  26. fmt.Println(err.Error())
  27. return
  28. }
  29. for _, v := range bytesresult {
  30. _, err = strconv.ParseInt(string(v), , )
  31. if err != nil {
  32. fmt.Println(err.Error())
  33. return
  34. }
  35. //fmt.Println(il)
  36. }
  37. time.Sleep( * time.Millisecond)
  38. }
  39. }

上面犯了两个错误:

1、defer使用错误
2、redis客户端从pool取出来以后要判断错误
修正后的代码是这样的:
  1. package main
  2.  
  3. import (
  4. "fmt"
  5. "github.com/astaxie/beego/logs"
  6. "github.com/garyburd/redigo/redis"
  7. "github.com/pkg/errors"
  8. "ha666/initial"
  9. _ "ha666/initial"
  10. "strconv"
  11. "time"
  12. )
  13.  
  14. func main() {
  15. for {
  16. bytesresult, err := get_redis()
  17. if err != nil {
  18. fmt.Println(err.Error())
  19. continue
  20. }
  21. for _, v := range bytesresult {
  22. il, err := strconv.ParseInt(string(v), , )
  23. if err != nil {
  24. fmt.Println(err.Error())
  25. continue
  26. }
  27. fmt.Println(il)
  28. }
  29. time.Sleep( * time.Millisecond)
  30. }
  31. }
  32.  
  33. func get_redis() ([][]byte, error) {
  34. rc := initial.RedisClient.Get()
  35. if rc.Err() != nil {
  36. return nil, rc.Err()
  37. }
  38. defer rc.Close()
  39. bytesresult, err := redis.ByteSlices(rc.Do("TIME"))
  40. return bytesresult, err
  41. }

解决问题:当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. 视觉slam十四讲课后习题ch3-7

    题目回顾: 设有小萝卜一号和小萝卜二号位于世界坐标系中,小萝卜一号的位姿为:q1=[0.35,0.2,0.3,0.1],t2=[0.3,0.1,0.1]^T (q的第一项为实部.请你把q归一化后在进行 ...

  2. lua学习之语句篇

    语句 赋值 修改一个变量或者修改 table 中的一个字段的值 多重赋值,lua 先对等号右边的所有元素进行求值,然后再赋值 值的个数小于变量的个数,那么多余的变量就置为 nil 初始化变量,应该为每 ...

  3. 简化 Spring Boot 项目部署,Flyway 搞起来

    虽然我之前录了一个微人事(https://github.com/lenve/vhr)部署视频(新版微人事部署教程来啦),但是由于这次升级涉及到了 Redis 和 RabbitMQ,所以在本地跑微人事还 ...

  4. ## springboot 下策略模式的简单使用

    1.灵魂三问 接手前人(已跑路)项目快乐否? 前人项目不写注释懵逼否? 一个方法中一堆if/else,且业务判断条件用简单数字(或英文字母),不带注释,想打人否?     所以,对于上述三个问题,我写 ...

  5. this的使用情况

    this的几种使用情况 1.在普通函数内部,this指向的是window,在严格模式下,this的值是undefined function fun(){ console.log(this); } fu ...

  6. 如何在 Linux 中找出 CPU 占用高的进程

    1) 怎样使用 top 命令找出 Linux 中 CPU 占用高的进程 在所有监控 Linux 系统性能的工具中,Linux 的 top 命令是最好的也是最知名的一个.top 命令提供了 Linux ...

  7. linux下的cron定时任务知识梳理

    1 cron定时任务 1.1 cron介绍 为什么需要cron定时任务? 1)cron服务在安装完Linux系统后就默认就存在,主要用来定期执行命令或定期执行指定的应用程序; 2)cron服务默认情况 ...

  8. [MacOS-Memcached]安装

    查看memcached信息 $ brew info memcached memcached: stable 1.5.22 (bottled), HEAD High performance, distr ...

  9. 杭电1007-----C语言实现

    这道题花了好久的时间才做出来,刚开始没有思路,最后看了网上的解答,好难得样子,每次都没有看完,但是掌握了大概思想,今天试着做了一下,已ac 主要思想:先将点对按照x排序,再在x排好序的基础上按照y来排 ...

  10. 【大白话系列】MySQL 学习总结 之 COMPACT 行格式的设计原理

    如果大家对我的 [大白话系列]MySQL 学习总结系列 感兴趣的话,可以点击关注一波. 一.回顾 MySQL 学习总结系列至此已经第七节了. 从大方向:我们已经学习了 MySQL 的架构设计.Inno ...