随笔 - 934, 文章 - 0, 评论 - 247, 阅读 - 344万

导航

< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8

02 2015 档案

摘要:Qless是一个基于redis的分布式任务架构。相关代码在 https://github.com/seomoz/qless 它是完全有lua实现的,依靠 redis 对lua的支持,http://www.cnblogs.com/ghj1976/p/4298206.html 它实现了对redis的功能扩展。 有关lua的一些语法基础知识可以参考:http://www.cnblogs.c... 阅读全文

posted @ 2015-02-24 09:03 蝈蝈俊 阅读(617) 评论(0) 推荐(0) 编辑

摘要:Redis 2.6.0 内置的Lua Script支持,可以在Redis的Server端一次运行大量逻辑。 整个Script默认是在一个事务里的。 Script里涉及的所有Key尽量用变量,从外面传入,使Redis一开始就知道你要改变哪些key。 EVAL每次传输一整段Script比较费带宽,可以先用SCRIPT LOAD载入script,返回哈希值。然后用EVALHASH... 阅读全文

posted @ 2015-02-23 19:08 蝈蝈俊 阅读(1226) 评论(0) 推荐(0) 编辑

摘要:注释 在Lua中,你可以使用单行注释和多行注释。 单行注释中,连续两个减号"--"表示注释的开始,一直延续到行末为止。相当于C++语言中的"//"。 多行注释中,由"--[["表示注释开始,并且一直延续到"]]"为止。这种注释相当于C语言中的"/*…*/"。在注释当中,"[["和"]]"是可以嵌套的。 分割符 在Lua中,语句之间可以用分号";"隔开,也可以用空白隔... 阅读全文

posted @ 2015-02-23 17:57 蝈蝈俊 阅读(2835) 评论(0) 推荐(0) 编辑

摘要:从上图可以看到,TCP/IP是个协议组,可分为三个层次:网络层、传输层和应用层。 在网络层有IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议。 在传输层中有TCP协议与UDP协议。 在应用层有FTP、HTTP、TELNET、SMTP、DNS等协议。 下图也是描述这个关系的。 参考: https://krystalchisholm.wordpre... 阅读全文

posted @ 2015-02-17 16:52 蝈蝈俊 阅读(5999) 评论(0) 推荐(2) 编辑

摘要:RPC(Remote Procedure Call Protocol)——远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。 它的工作流程如下图: golang 使用 RPC的例子如下: 服务器端代码: 这里暴露了一个RPC接口,一个HTTP接口 package main import ( "fmt" ... 阅读全文

posted @ 2015-02-17 15:33 蝈蝈俊 阅读(1672) 评论(0) 推荐(0) 编辑

摘要:channel默认上是阻塞的,也就是说,如果Channel满了,就阻塞写,如果Channel空了,就阻塞读。阻塞的含义就是一直等到轮到它为止。单有时候我们会收到 fatal error: all goroutines are asleep - deadlock! 异常,这是如何呢? 代码例子: package main import "fmt" func main() { ... 阅读全文

posted @ 2015-02-17 11:26 蝈蝈俊 阅读(11787) 评论(1) 推荐(1) 编辑

摘要:先看例子, json文件中有些元素不是我们想要的,在反序列化时可以当它们不存在,下面例子抛弃了 aaa、ccc这两节。 package main import ( "encoding/json" "fmt" ) type Book struct { Title string Author []string ... 阅读全文

posted @ 2015-02-14 09:24 蝈蝈俊 阅读(338) 评论(0) 推荐(0) 编辑

摘要:我们在for多层嵌套时,有时候需要直接跳出所有嵌套循环, 这时候就可以用到go的label breaks特征了。 先看一个范例代码: package main import ( "fmt" ) func main() { fmt.Println("1") Exit: for i := 0; i 15 { ... 阅读全文

posted @ 2015-02-10 10:47 蝈蝈俊 阅读(2174) 评论(0) 推荐(0) 编辑

摘要:go 自带的 encoding/json 支持json的序列化和反序列化, 然而它是基于反射的,有下面几个缺点: 反射是性能差的代名词, 并且无法在编译时进行优化。 只有 Public 字段才可以,反射库只能反射出暴露出来的字段,这意味着你无法对private 字段进行JSON转化。 https://github.com/benbjohnson/megajson 针对这个问题做了... 阅读全文

posted @ 2015-02-09 16:50 蝈蝈俊 阅读(981) 评论(0) 推荐(0) 编辑

摘要:json 处理的例子代码, 解析结果看后面注释。 package main import "encoding/json" import "fmt" import "os" type Response1 struct { Page int Fruits []string } type Response2 struct { ... 阅读全文

posted @ 2015-02-09 16:13 蝈蝈俊 阅读(3935) 评论(1) 推荐(0) 编辑

摘要:不论应用是如何部署的,我们都期望能扑捉到应用的错误日志, 解决思路: 自己写代码处理异常拦截,甚至直接在main函数中写异常拦截。 stderr重定向到某个文件里 使用 syscall.Dup2 第一种方法比较简单, 我们这里主要看后两种: 使用 stderr替换的代码: package main import ( "fmt" "os"... 阅读全文

posted @ 2015-02-06 09:25 蝈蝈俊 阅读(9529) 评论(1) 推荐(0) 编辑

摘要:在实际项目中我们可能有下面的需求: 1、修改了配置文件后,希望在不重启进程的情况下重新加载配置文件; 2、当用 Ctrl + C 强制关闭应用后,做一些必要的处理; 这时候就需要通过信号传递来进行处理了。golang中对信号的处理主要使用os/signal包中的两个方法:一个是notify方法用来监听收到的信号;一个是 stop方法用来取消监听。 监听信号 notify... 阅读全文

posted @ 2015-02-04 15:16 蝈蝈俊 阅读(1831) 评论(0) 推荐(0) 编辑

摘要:OAuth(开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用。OAuth 2.0比起1.0关注客户端开发者的简易性,同时为Web应用,桌面应用和手机,和起居室设备提供专门的认证流程。2012年10月,OAuth 2.0协议正式发布为RFC 6749 。 OAuth2 的认证流程如下: ... 阅读全文

posted @ 2015-02-04 06:16 蝈蝈俊 阅读(360) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示