- 博客(68)
- 资源 (7)
- 收藏
- 关注

原创 windows下MongoDB的安装及配置
一、先登录Mongodb官网https://www.mongodb.com/download-center#community 下载 安装包。32、64位的都行。二、安装MongoDB下载后的安装包:安装比较简单,类似于普通QQ软件,中间主要是选择“Custom”自定义 安装路径修改下:D:\software\MongoDB然后不断“下一步”,安装至结束。安
2017-09-01 19:43:43
202138
36
原创 GO 协程池的浅探
## 为啥需要协程池go语言支持多协程并发,具有Goroutine调度的特性。当处理并发问题时 可以开辟多个Goroutine去解决。虽然go语言在调度Goroutine已经优化的非常完善,开启一个Goroutine的代价非常小。但是,如果无休止的开辟Goroutine会出现高频率的调度Goroutine,那么依然会浪费很多上下文切换的资源。并且每个Goroutine都有一定内存的开销,当量足够大的时候系统内存会承担不住 服务会被自动OOM。## 先聊聊并发问题![image-2021072
2021-07-24 22:47:05
489
原创 Go之热重启
一、背景生产环境对持续性和稳定性要求比较高如果按照跟开发环境的杀死进程关闭服务、再重启服务会有一定的影响。未处理完的请求,被迫中断,数据的一致性会被破坏,甚至逻辑出现错误或者产生脏数据。 服务关闭且重新启动期间,需要一定的时间,会出现服务不可用现象处理三种方案:生产环境通过网关服务,通过流量调度的方式实现平滑重启 k8s管理 程序自身完成二、热重启释义热重启(Hot Restart),是一项保证服务可用性的手段。它允许服务重启期间,不中断已经建立的连接,老服务进程不..
2021-06-06 21:59:35
983
原创 Go之Benchmark
一、概念基准测试(benchmark)是 go testing 库提供的,用来度量程序性能,算法优劣的利器。指定一个时间(默认是1秒),看测试对象在达到时间上限时,最多能被执行多少次和在此期间测试对象内存分配情况。二、特点基准测试的代码文件必须以_test.go结尾 基准测试的函数必须以Benchmark开头 基准测试函数必须接受一个指向Benchmark类型的指针作为唯一参数 基准测试函数不能有返回值 b.ResetTimer是重置计时器,这样可以避免for循环之前的初始化代.
2021-06-04 11:49:26
4476
原创 python 简单文件读写函数
python作为脚本性语言,加上它的简便易用性。会经常当作脚本用来处理一下数据和格式。其中处理文件就是频繁用处之一。简单编写几个常用的xls和txt读写函数,以后可以快速复用。用到xlrd库函数需要预先install命令:pip install xlrd直接贴源码:#! /usr/bin/python# coding:utf-8import jsonimport xlrdimport sysreload(sys)sys.setdefaultencoding('utf-8')
2021-02-23 19:32:34
377
1
原创 Go之reflect标准库
反射能让我们更简便地获得一个对象的类型、值,如果对象是结构体还能获得它的属性、方法。type Type interface { Align() int FieldAlign() int Method(int) Method MethodByName(string) (Method, bool) NumMethod() int Name() string PkgPath() string Size() uintptr String(
2021-02-01 01:24:25
292
原创 Go之strings标准库
1. EqualFold函数:func EqualFold(s, t string) bool释义: 判断两个utf-8编码字符串(将unicode大写、小写、标题三种格式字符视为相同)是否相同。例子: s := "hello" fmt.Println("string: ", s) // 1、EqualFold 判断两个utf-8编码字符串 是否相同。 f := strings.EqualFold(s, "Hello") fmt.Println("EqualFold:...
2021-01-16 21:42:20
1096
原创 Go之零值判断
python判断零值很简单,因为是弱类型,所以会内置自动装箱判断处理。只需要 if x : 即可。但是go如何判断?这里可以借助反射reflect处理。func IsZeroOfInterface(x interface{}) bool { if x == nil { return true } value := reflect.ValueOf(x) switch value.Kind() { case reflect.String: return value.Len() ==
2021-01-13 12:51:43
1292
原创 Go之数组实现反转
// 数组倒序func reverse(arr *[]string) { length := len(*arr) var temp string for i := 0; i < length/2; i++ { temp = (*arr)[i] (*arr)[i] = (*arr)[length-1-i] (*arr)[length-1-i] = temp }}// 使用dirList := []string{"a","b","c"}reverse(&dirLi.
2021-01-08 18:16:24
1306
原创 Go之filepath标准库
1. ToSlash函数:func ToSlash(path string) string释义: 将 path 中平台相关的路径分隔符转换为 '/'例子: s := "F:\\golang_workspace\\leetcode\\aa.js" fmt.Println("path: ", s) // 1、ToSlash 将 path 中平台相关的路径分隔符转换为 '/' s = filepath.ToSlash(s) fmt.Println("ToSlash: ", s)
2021-01-08 17:37:03
2701
1
原创 python 中os.path常用方法含义
os.path.abspath(path) #返回绝对路径os.path.basename(path) #返回文件名os.path.commonprefix(list) #返回list(多个路径)中,所有path共有的最长的路径。os.path.dirname(path) #返回文件路径os.path.exists(path) #路径存在则返回True,路径损坏返回Falseos.path.lexists #路径存在则返回True,路径损坏也返回Trueos.path.expa.
2021-01-05 10:08:11
632
原创 gin的渲染(三)
一、各种数据格式的响应1、json2、结构体3、XML4、YAML二、HTML模板渲染html代码go代码LoadHTMLGlob()方法加载模板文件三、重定向四、同步异步启动新的goroutine时,不应该使用原始上下文,必须使用它的只读副本。...
2020-12-21 10:10:38
183
原创 gin的数据解析和绑定(二)
一、json数据解析和绑定1、定义一个绑定结构体 modeljson 表示json传参字段名称required 表示必传字段2、路由3、解析和绑定使用ShouldBindJSON函数,可以解析并绑定二、表单数据解析和绑定1、定义一个绑定结构体 modelform 表示form传参字段名称required 表示必传字段2、路由3、解析和绑定Bind()默认解析并绑定form格式。根据请求头中content-typ.
2020-12-21 09:55:05
657
3
原创 gin简介和路由(一)
一、Gin 特性1、快速:路由不使用反射,基于Radix树,内存占用少。2、中间件:HTTP请求,可先经过一系列中间件处理,例如:Logger,Authorization,GZIP等。这个特性和 NodeJs 的Koa框架很像。中间件机制也极大地提高了框架的可扩展性。3、异常处理:服务始终可用,不会宕机。Gin 可以捕获 panic,并恢复。而且有极为便利的机制处理HTTP请求过程中发生的错误。4、JSON:Gin可以解析并验证请求的JSON。这个特性对Restful API的开发尤其有..
2020-12-17 10:20:43
2894
原创 gin之router
gin的是路由算法其实就是一个Trie树(也就是前缀树)一、注册路由1、普通注册2、使用中间件3、使用Group(路由组)在预处理阶段1、在调用中间件的时候, 是将某个路由的handler处理函数和中间件的处理函数都放在了Handlers的数组中2、在调用Group的时候, 是将路由的path上面拼上Group的值. 也就是/user/:name, 会变成v1/user:name最后都需要handle的addRoute注册到e...
2020-12-13 18:38:34
1808
1
原创 gin之context设计
Gin封装的最好的地方就是context和对response的处理一、contextContext的最佳运用场景就是对Http的处理Context是Gin最重要的部分。它允许我们在中间件之间 传递变量,管理流程,验证请求的JSON 并 呈现JSON响应。1、Metadata Managementtype Context struct {...Keys map[string]interface{}...}gin获取或设置Context的Key-Value(键值对).
2020-12-10 21:03:42
2983
原创 gin之基本介绍
一、常见的几种GO语言Web框架1、Beego面向Go编程语言的开源高性能web框架https://github.com/astaxie/beego https://beego.me2、Buffalo使用Go语言快速构建Web应用https://github.com/gobuffalo/buffalo https://gobuffalo.io3、Echo高性能、极简Go语言Web框架https://github.com/labstack/echo https://echo.l...
2020-12-09 18:13:39
6001
原创 gin之go的原生net/http
一、go自带net/http处理 http接口的应用func main() { // 注册路由 http.HandleFunc("/", func(write http.ResponseWriter, request *http.Request) { _, _ = write.Write([]byte("Hello World!")) }) // 服务监听 if err := http.ListenAndServe(":8080", nil); err !=
2020-12-08 10:47:08
840
原创 linux下Xshell打印Tomcat实时日志中文乱码 解决
一、背景:在linux上部署了一个tomcat容器,用来运行服务。其中tomcat是7版本,也是官网刚下的。二、问题:部署服务完成后,Xshell 启动服务,啪啦啪啦。。。程序的日志打印出来,控制台 出现大量的中文日志乱码。三、解决:1、首先看下服务器系统的编码执行命令:echo $LANG是美版 UTF-8格式,所以要去检查 Xshell 终端的编码格式...
2018-08-02 09:23:09
21428
原创 mysql:创建包含时间格式字段的表报错
问题:MySQL:ERROR 1067 (42000): Invalid default value for 'bid_time'原因: 表中的第一个TIMESTAMP列(如果未声明为NULL或显示DEFAULT或ON UPDATE子句)将自动分配DEFAULT CURRENT_TIMESTAMP和ON UPDATECURRENT_TIMESTAMP属性 第一个之后的...
2018-08-02 09:05:26
2902
原创 oracle 异常杂症 之 SYSTEM表空间不足问题 (二)
杂症二、SYSTEM表空间不足报错一、杂症:PLSQL登录,报错:ORA-00604: 递归 SQL 层 出现错误ORA-01653: 表.无法通过(在表空间中)扩展ORA-02002: 写入审记线索时出错二、病理:1、表空间不足2、数据库的审计功能已经开启引起(SYS.AUD$表)三、病因定位:先连接上数据库:# su oracle# sqlplus /nologSQL> conn /a...
2018-07-03 15:56:39
7056
原创 oracle 异常杂症 之 死锁问题 (一)
【前言】遇到 oracle 异常 和 解决实践 系列文章 整理分享杂症一、oracle死锁一、症状:执行SQL或程序时,程序没有响应或SQL执行一直处于执行状态,没有成功,也没有报错。二、病理:当对数据库某个表的某一记录做更新或删除等操作,执行完毕后该条语句不提交事务,假如其他人同时也对该数据库执行一条对于这一记录做更新操作的语句。则在执行的时候就会处于等待状态,便陷入死锁,一直没有执行成功,也没...
2018-05-23 16:39:24
3559
1
原创 javaWeb: springmvc ajax发送请求 返回乱码 问题解决
【问题】:使用spingmvc,在JS里面通过ajax发送请求,并返回json格式的数据;从数据库拿出来是正确的中文格式,展示在页面上就是乱码。乱码格式都是???后台断点调试:中文格式正常显示。前端控制台显示:【原因】:spring mvc的一个bug,spring MVC有一系列HttpMessageConverter去处理用@ResponseBody注解的返回值。如:返回list或其它,使用 ...
2018-05-22 19:53:09
883
原创 mysql: navicat for mysql 执行快捷键
ctrl+q 打开查询窗口 ctrl+/ 注释sql语句 ctrl+shift +/ 解除注释 ctrl+r 运行查询窗口的sql语句 ctrl+shift+r 只运行选中的sql语句 F6 打开一个mysql命令行窗口 ctrl+d (1):查看表结构...
2018-04-01 10:18:34
16709
原创 SQL 主键和索引的区别
(1)创建表时,不能在同一个字段上建立两个索引(主键默认建立唯一索引),在需要经常查询的字段上建立索引(如:deal_id已经是主键,不能再次执行:create index tmp_table_index on tmp_table(deal_id),会报错); a) 主键:该字段没有重复值,且不允许为空 惟一索引:该字段没有重复值,但允...
2018-04-01 10:18:21
34631
1
原创 SQL 修改已有数据表的字段数据类型 的方式
如果要修改表的一个字段 数据类型,若表里有数据了,oracle是不能修改,需清空表才行。若不想清空表的数据,则可通过以下方案:先对表数据进行备份表,再删除表数据,修改表结构,将备份表数据重插回原表中,最后删除备份表。//先对表数据进行备份表create table f10_dividend_bak as select * from f10_dividend;//再删除表数据delete from...
2018-04-01 10:17:57
23466
原创 oracle的编码格式,解决乱码问题:
修改oracle的编码格式,解决乱码问题://查询客户端字符集select userenv('language') from dual 1、管理员用户连接 SQL>connsys/密码 assysdba; 2、关闭数据库。SQL>shutdownimmediate;3、启动数据库到Mount状态下。SQL>STARTUPMOUNT;SQ...
2018-04-01 10:17:42
2734
原创 oracle数据库名称
db_name为数据库名,(Oracle database)的唯一标识,一个数据库只有一个db_name。db_name在数据库创建后就不能再更改。Global_name=db_name.Db_domain后来分布式数据库普及,若数据库名一样,管理上混乱,为了解决引入Db_domain参数(域)。所以数据库的表示变成 db_name.Db_domain标识——Global_name,也就是db.n...
2018-04-01 10:17:32
11124
原创 oracle: linux下修改sys或system用户的密码
SYS用户是Oracle中权限最高的用户,而SYSTEM是一个用于数据库管理的用户。在数据库安装完之后,应立即修改SYS,SYSTEM这两个用户的密码,以保证数据库的安全。注:SYS和SYSTEM用户之间可以相互修改口令一、安装完后的修改口令:1、先登录服务器后,切换到oracle用户状态下: su oracle2、进入sqlplus,命令:sqlplus /nolog3、管理员sysdba权限...
2018-04-01 10:17:19
9336
原创 oracle: linux下启动、关闭oracle服务
1、先登录服务器后,切换到oracle用户状态下: su oracle2、检查oracle监听器运行状态:lsnrctl status命令查看。表示监听没有启动。3、执行启动监听,通过命令:lsnrctl start (lsnrctl stop 关闭监听)表示端口已启动成功。4、如果启动报错,listener.ora文件打开,调整HOST IP5、进入sqlplus,命令:sqlplus /n...
2018-04-01 10:16:46
49639
4
原创 oracle 解决:ORA-01552 :非系统表空间 ‘xxxx‘不能使用系统回退段 问题
SQL> select open_mode from v$database;SQL> show parameter undoSQL> alter system set undo_management=auto scope=spfile;SQL> shutdown immediateSQL> startupSQL> shutdown abortSQL> co...
2018-04-01 10:16:12
3922
原创 oracle: linux下oracle小知识
1、oracle 安装下的/u01/diag/rdbms/orcl/HOF/incident目录下是什么文件?答:每当一个错误发生的时候,oracle会创建一个incident,并且分配一个INCIDENT_ID号,同时在ADR HOME的INCIDENT目录中创建相应的INCIDENT 目录,每个错误号一个INCIDENT目录,目录被命名为incdir_<INCIDENT_ID>。在...
2018-04-01 10:15:58
477
原创 SQL 的DML 和 DDL
一、结构化查询语言(SQL)结构化查询语言(Structured Query Language)是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统二、数据操作语言 (DML) 对数据操作查询和更新指令构成了 SQL 的 DML 部分:SELECT - 从数据库表中获取数据UPDATE - 更新数据库表中的数据DELETE - 从数据库表中删除数...
2018-03-31 21:58:18
303
原创 SQL 结构化查询语言 6部分
1、数据查询语言(DQL:Data Query Language):其语句称为“数据检索语句”,用以从表中获得数据,确定数据怎样在应用程序给出。保留字SELECT是DQL(也是所有SQL)用得最多的动词,其他DQL常用的保留字有WHERE,ORDER BY,GROUP BY和HAVING。这些DQL保留字常与其他类型的SQL语句一起使用。2、 数据操作语言(DML:Data Manipulati...
2018-03-31 21:56:49
3856
原创 DB DBS 和DBMS区别
DB:是指datebase(数据库)DBS:是指datebase systerm (数据库系统)DBMS:是指datebase mangement systerm(数据库管理系统)区别:数据库就是存放数据的仓库,数据库管理系统就是用来管理数据库的,其中数据库系统是一个通称,包括数据库、数据库管理系统、数据库管理人员等的统称,是最大的范畴。...
2018-03-31 21:55:26
13063
原创 mysql: Navicat for mysql 执行sql文件
1、打开navicat for mysql并打开连接和数据库,注意数据库的状态是打开的,关闭状态下是无法运行sql脚本的2、点击上边【表】,并在底下空白处 右键 ——》运行SQL文件3、选择SQL文件,并执行...
2018-03-31 21:49:40
17894
2
原创 oracle: PLSQL登录遇到TNS-12520问题
报错:ORA-12520: TNS: 监听程序无法找到需要的服务器类型的可用句柄报错:TNS-12520: TNS: 监听程序无法为请求的服务器类型找到可用的处理程序原因:第一种错:服务端的数据库是专用服务器,但是在客户端的tnsname.ora里配置中设置了连接方式为shared第二种错:由于参数process值不够引起的解决:该次报错是第二种;1、切换用户:su oracle2、进入sqlpl...
2018-03-31 21:45:36
1709
原创 oracle:linux下 oracle怎么导出dmp文件
dmp文件:oracle的逻辑备份文件,常用于数据库逻辑备份,数据库迁移等操作。1、先给导出的路径 赋予权限:chmod 777 /home/userct/oss-shanxi2、切换用户su oracle3、连接数据库并导出exp 用户名/密码@orcl file=/home/userct/oss-shanxi/oss_api.dmp full=y;报错:没有写dmp的权限。先ctrl + d ...
2018-03-31 21:42:32
28542
原创 oracle: linux下 oracle怎么导入dmp文件
先创建数据库用户:create user XXX identified by xxx default tablespace XXXXX; grant connect,resource,dba to XXX ;数据库:用户名:XXXX密码:XXXX服务器连接地址和SID:10.XX.XX.XXX:1521/orcl1、给dmp文件加权限chmod 777 /home/userct/oss-shan...
2018-03-31 21:37:35
44102
4
jre-7u21-windows-i586.tar.gz
2017-09-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人