- 博客(30)
- 资源 (5)
- 收藏
- 关注
原创 Google Perf Tools安装以及使用
Google Performance Tools安装以及使用这边文章都记录在github:https://github.com/NIGHTFIGHTING/gperftools-tutorial一个优化的内存管理算法—tcmalloc性能优于malloc。一个用于CPU profile的工具,用于检测程序的性能热点,这个功能和gprof类似。一个用于堆检查工具,用于检测程序在是够有内存泄露...
2020-03-09 00:40:47 2171
原创 647. 回文子串
https://leetcode-cn.com/problems/palindromic-substrings/class Solution { public: int countSubstrings(string s) { int len = s.size(); int count = 0; vector<vecto...
2020-03-30 22:07:34 94
原创 clientv3 github.com与go.etcd.io冲突 /github.com/coreos/etcd/clientv3/auth.go:166:106: too many errors
编译出现下面错误,github.com/coreos/etcd/clientv3…/github.com/coreos/etcd/clientv3/auth.go:121:72: cannot use auth.callOpts (type []“github.com/coreos/etcd/vendor/google.golang.org/grpc”.CallOption) as type ...
2020-03-30 15:27:35 1030
转载 Linux下安装mysql
Mysql数据库的安装对于开发者来说,是我们必然会面对的问题,它的安装过程其实并不复杂,并且网络上的安装教程也非常多,但是对于新手来说,各种不同形式的安装教程,又给新手们带来了要选择哪种方式进行安装的难题,而且很多时候按照教程也没有能够安装成功,安装过程出现各种各样的错误。下面记录了我在Linux环境下安装Mysql的完整过程,实操记录,绝非水文,如有错误或遗漏,欢迎指正。本文档讲解安装版...
2020-03-25 23:05:22 119
原创 protobuf与protoc-gen-go
一、protobuf安装下载地址 :https://github.com/protocolbuffers/protobuf/releases新直接./configure就行,这个是protobuf 3版本tar zvxf protobuf-all-3.6.1.tar.gzcd protobuf-3.6.1./configure -–prefix=/usr/local/sudo ...
2020-03-25 15:07:39 1616 3
原创 IDEA使用lombok时warn:Generating equals/hashCode implementation but without a call to superclass
Generating equals/hashCode implementation but without a call to superclass1、lombok 警告,没有注入父类的字段当我们给一个继承了父类的子类上使用@Data @ToString @EqualsAndHashCode 注解时,IDE 会警告Generating equals/hashCode implemen...
2020-03-22 21:03:42 19423
原创 4-2 数据模型的生成
4-2 数据模型的生成xorm使用可以查看:https://blog.csdn.net/INGNIGHT/article/details/104957116cdgithub.com/go-xorm/cmd/xormsudo xorm reverse mysql "root:liuqi@tcp(127.0.0.1:3306)/lottery?charset=utf8" te...
2020-03-18 23:39:57 311
原创 使用xorm工具,根据数据库自动生成 go 代码
引入使用 golang 操作数据库的同学都会遇到一个问题 —— 根据数据表结构创建对应的 struct 模型。因为 golang 的使用首字母控制可见范围,我们经常要设计 struct 字段名和数据库字段名的对应关系。久而久之,这是一个非常繁琐的过程。事情变得繁琐了,我们都会想,有没有好的办法自动生成 model 呢?今天,记录一种自动生成代码的方法 —— xorm 工具。关于 xorm...
2020-03-18 23:28:53 1549
原创 mysql for mac
一、下载MySQL这里我们需要下载的是MySQL Community Server 选择适合自己的操作系统,这里我用的是Mac二、安装双击打开pkg文件,一路下一步直到安装成功出现这里切记保存上述信息,上面找到root@localhost: ** 这行,这里的root为默认用户名,localhost:后面的为默认随机密码.保存好后面需要用.如何检测我们是否安装成功呢?...
2020-03-18 22:39:35 246
原创 通过lua操作http请求头
一、如何通过openresty操作http头http头分请求头和,响应头,在nginx的access_by_lua阶段操作请求头,操作请求头涉及两个函数。1、ngx.req.get_headers,第一个参数请求头个数,默认分析100个头,防止恶意攻击,第二个参数默认将头域信息转为小写,如果设置为true会关闭掉。2、ngx.req.set_headers对头的域信息作一些设置操作,并...
2020-03-17 18:05:54 10093
转载 luajit官方性能优化指南和注解
luajit是目前最快的脚本语言之一,不过深入使用就很快会发现,要把这个语言用到像宣称那样高性能,并不是那么容易。实际使用的时候往往会发现,刚开始写的一些小test case性能非常好,经常毫秒级就算完,可是代码复杂度一上去了,动辄几十上百毫秒的情况就会出现,性能表现非常飘忽。为此luajit的mailling list也是有不少人咨询,作者mike pall的一篇比较完整的回答被放在了官方w...
2020-03-17 09:44:00 569
原创 openresty组成和技术特点
一、组成openresty包含4个部分,第一个部分lua-nginx-module,ngx的c module,将lua协程的唤醒和挂起纳入nginx事件驱动模块中,并提供丰富的lua api,使得开发者可以使用lua语言可以完成http层操作第二个部分,测试集,对lua-ngx-module做全面测试,工作量,复杂度高第三部分,resty库,lrucache,beanstalkd,...
2020-03-17 09:25:56 311
原创 Lua语言面向对象之函数闭包的方式面向对象
function People(name) local self = {} local function init() self.name = name end self.sayHi = function () print("Hello "..self.name) end init() return selfend--local p = People("Zhan...
2020-03-15 20:06:00 209
原创 Lua语言面向对象之复制表的方式面向对象
// clone表tablefunction clone(tab) -- 构造一个空table local ins = {} for key, var in pairs(tab) do ins[key] = var end return insendfunction copy(dist,tab) for key, var in pairs(tab) do dis...
2020-03-15 19:28:31 378
原创 lua语言介绍
一、lua简介lua官网:https://www.lua.org/lua下载:https://www.lua.org/download.html下载lua:wgethttps://www.lua.org/ftp/lua-5.3.5.tar.gz;tar -zxvf lua-5.2.5.tar.gz;cdlua-5.3.5;make linux;编译后生成两个可执行文件,lua和...
2020-03-15 12:16:47 312
原创 执行阶段
一、ngx_lua执行顺序下面这个图是 ngx_lua 各个指令的执行顺序。执行阶段说明:set_by_lua*: 流程分支处理判断变量初始化 rewrite_by_lua*: 转发、重定向、缓存等功能(例如特定请求代理到外网) access_by_lua*: IP 准入、接口权限等情况集中处理(例如配合 iptable 完成简单防火墙) content_by_lua*: 内容生...
2020-03-15 00:14:52 360
原创 子查询
一、子查询子查询只是模拟 HTTP 接口的形式, 没有 额外的 HTTP/TCP 流量,也 没有 IPC (进程间通信) 调用。所有工作在内部高效地在 C 语言级别完成。子查询只能在一个location里调用其它 一个或多个 `location。二、captureres = ngx.location.capture(uri, options?)发起子查询 返回一个包含四个元...
2020-03-14 23:11:02 171
原创 FFI和第三方模块
一、FFIFFI是LuaJIT中的一个扩展库,它允许我们使用 Lua 代码调用C语言的数据结构和函数。FFI库在很大程度上避免了在C中编写繁琐的手动Lua/C绑定的需要。无需学习单独的绑定语言 - 它解析普通的C声明!这些可以从C头文件或参考手册中剪切粘贴。如何调用外部C库函数呢?1、加载FFI库。2、为函数添加C声明。3、调用命名的C函数。看一个官方提供的简单示例:...
2020-03-14 21:13:48 717
原创 OpenResty缓存
一、使用 Lua shared dict官方文档:https://github.com/openresty/lua-nginx-module#ngxshareddict使用的话首先需要在 nginx.conf 加上一句:lua_shared_dict my_cache 128m;这个缓存是 Nginx 所有 worker 之间共享的,内部使用的 LRU 算法(最近最少使用)来判...
2020-03-14 00:24:57 1920
原创 连接数据库
连接数据库我们需要使用到ngx_lua的第三方库:lua-resty-redislibrary based on ngx_lua cosocket. lua-resty-mysqllibrary based on ngx_lua cosocket.这两个库都是基于cosocket实现的,特点是异步非阻塞。代码风格是同步的写法。更多第三方库详见:See Also。一、连接Mysql...
2020-03-13 22:54:45 332
原创 ngx lua API介绍
本节主要是带着大家简单的过一下常用的ngx_lua API。一、nginx lua directives和apingx_lua 有60多个指令(Directive),140多个API(截止到2019-3-26)。官方lua文档:https://www.nginx.com/resources/wiki/modules/lua/https://github.com/openres...
2020-03-13 12:21:17 2222
原创 OpenResty入门
一、lua代码:nginx/conf/lua/get_random_string.lua-- 实现随机字符串local args = ngx.req.get_uri_args()local salt = args.saltif not salt then ngx.exit(ngx.HTTP_BAD_REQUEST)endlocal str = ngx.m...
2020-03-13 11:30:28 696
原创 OpenResty HelloWorld
以 CentOS 为例:mkdir -p /opt# download openrestywget https://openresty.org/download/openresty-1.13.6.2.tar.gztar zxvf openresty-1.13.6.2.tar.gzcd openresty-1.13.6.2# configure./configure --pr...
2020-03-12 17:11:57 237
原创 openresty简介
OpenResty 简介OpenResty®是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。OpenResty 基于Nginx开发,可以简单认为是Nginx+lua-nginx-module的组合版。官网:ht...
2020-03-12 16:38:35 452
原创 静态库与共享库
一、头文件和库文件1、在使用C语言和其他语言进行程序设计的时候,我们需要头文件来提供对常数的定义和对系统及库函数调用的声明。2、库文件是一些预先编译好的函数集合,那些函数都是按照可重用原则编写的。它们通常由一组互相关联的用来完成某项常见工作的函数构成。比如用来处理屏幕显示情况的函数(ncurses库)和数据库访问例程(dbm库)等。二、头文件与库文件位置1、usr/include及...
2020-03-09 22:14:38 260
原创 02-05 从c到c++
1. bool布尔类型变量true表示1;但是把string(4字节)转化为bool(1字节),会截断,举个例子:bool result = true;print result;(答案:1)bool result = true;result = 100;print result;(答案: 1,因为截断只保留1字节)2. constconst定义时,常量必须初...
2020-03-07 14:48:38 140
原创 2-6 刮刮乐和双色球
代码:https://github.com/NIGHTFIGHTING/lottery/tree/master/src/ticket
2020-03-01 14:19:48 256
原创 2-7 微信摇一摇_实现分析
代码:https://github.com/NIGHTFIGHTING/lottery/tree/master/src/wechatShake
2020-03-01 14:18:28 371
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人