自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(83)
  • 收藏
  • 关注

原创 双向流式RPC调用和metadata

双向流式RPC即客户端和服务端均为流式的RPC,能发送多个请求对象也能接收到多个响应对象。3.客户端调用BidiHello方法,一边从终端获取输入的请求数据发送至服务端,一边从服务端接收流式响应。下面的代码片段演示了client端在服务端流式RPC模式下如何设置和获取metadata。下面的代码片段演示了server端在服务端流式RPC模式下设置和操作metadata。这里以双向流式RPC为例演示客户端和服务端如何进行metadata操作。这里我们还定义了一个处理数据的magic函数,其内容如下。

2023-03-13 14:40:34 438

原创 Go语言函数式编程

函数就是一段代码的集合go语言中至少要有一个 main函数函数需要有一个名字,独立定义的情况下。见名知意函数可能需要有一个结果,也可能没有函数和方法完全是不一样的东西,面向对象里面才有方法无参无返回值有一个参数的函数有两个 or 多个参数的函数有一个返回值的函数有两个 or 多个返回值的函数- 无参无返回值- 有一个参数的函数- 有两个 or 多个参数的函数- 有一个返回值的函数- 有两个 or 多个返回值的函数func 函数名(参数1,参数2) 返回值类型 {

2023-02-11 23:18:44 674

原创 Elasticsearch

介绍Elasticsearch(ES)是一个基于Lucene构建的开源、分布式、RESTful接口的全文搜索引擎。Elasticsearch还是一个分布式文档数据库,其中每个字段均可被索引,而且每个字段的数据均可被搜索,ES能够横向扩展至数以百计的服务器存储以及处理PB级的数据。可以在极短的时间内存储、搜索和分析大量的数据。通常作为具有复杂搜索场景情况下的核心发动机。Elasticsearch能做什么Elasticsearch基本概念Near Realtime(NRT) 几乎实时。

2022-12-15 22:21:18 594

原创 SQL语句的优化

使用索引字段和 ORDER BY子句 LIMIT M,N 实际上可以减缓查询在某些情况下,有节制地使用,在 WHERE 子句中使用 UNION 代替子查询,在重新启动的 MySQL,记得来温暖你的数据库,以确保数据在内存和查询速度快,考虑持久连接,而不是多个连接,以减少开销。一个关键的问题是否用到索引。基准查询,包括使用服务器上的负载,有时一个简单的查询可以影响其他查询,当负载增加在服务器上,使用 SHOW PROCESSLIST 查看慢的和有问题的查询,在开发环境中产生的镜像数据中测试的所有可疑的查询。

2022-12-12 22:51:06 334

原创 Cookie和Session

Cookie的由来HTTP协议是无状态的,这就存在一个问题。无状态的意思是每次请求都是独立的,它的执行情况和结果与前面的请求和之后的请求都无直接关系,它不会受前面的请求响应情况直接影响,也不会直接影响后面的请求响应情况。一句有意思的话来描述就是人生只如初见,对服务器来说,每次的请求都是全新的。状态可以理解为客户端和服务器在某次会话中产生的数据,那无状态的就以为这些数据不会被保留。会话中产生的数据又是我们需要保存的,也就是说要“保持状态”。因此Cookie就是在这样一个场景下诞生。

2022-12-11 22:42:31 329

原创 一对一,一对多,多对多

默认是关联创建或更新的。

2022-12-10 23:43:05 186

原创 Go语言基础面试题

一、选择题1.关于异常设计,下面说法正确的是()2.关于异常的触发,下面说法正确的是()3.关于函数返回值的错误设计,下面说法正确的是()4.下面关于recover使用正确的是?5.函数执行时,如果由于 panic 导致了异常,则延迟函数不会执行。这一说法是否正确?二、简答题1.写出下面代码的输出2.写出下面代码的执行结果3.下面代码的执行结果为?4.下面代码能正常编译吗?一、选择题1.关于协程,下面说法正确是?2.关于channel,下面语法正确的是()3.关于同步锁,下面说法

2022-12-05 00:10:12 647

原创 Go语言中的指针

指针就是地址,指针变量就是存储地址的变量。p是一个整型指针变量,&a存的是a当前空间的地址,&p存的是p当前空间的地址,&是取地址运算符,返回的是操作数的内存地址;使用new(type)函数初始化,默认为类型的默认值,在heap上申请一段空间;p存的是a的地址,*是间接寻址运算符,返回的是操作数所指定地址的变量的值。*p是解引用,或者称为间接引用 ,a是一个整型变量,空指针:未初始化的指针。传引用:将地址值作为函数参数,返回值传递。野指针:用一片无效的地址空间来初始化。传值:将实参的值拷贝一份给形参。

2022-12-01 00:00:21 323

原创 Go语言面试题

2.Printf()、Sprintf()、Fprintf()函数的区别用法是什么?2.关于main函数(可执行程序的执行起点),下面说法正确的是()4.interface{}是可以指向任意对象的类型()3.关于cap函数的适用类型,下面说法正确的是()3.关于接口和类的说法,下面说法正确的是。1.关于init函数,下面说法正确的是。4.关于函数声明,下面语法错误的是()2.关于类型转化,下面语法正确的是()1.关于接口,下面说法正确的是()下面对add函数调用正确的是()4.对于下面的代码,写出执行结果。

2022-11-30 23:39:21 857

原创 Go语言面试题

6.已申明的bool类型变量ok,关于其赋值,下面说法错误的是()12.ok是bool型变量,下面if表达式符合编码规范的是()13.value是整型变量,下面if表达式符合编码规范的是()3.关于局部变量的初始化,下面正确的使用方式是?4.对于以下的代码,获取成员变量正确的做法是?8.关于switch语句,下面说法正确的是()关于go vendor,下面说法正确的是()11.关于整型切片的初始化,下面正确的是()14.关于map,下面说法正确的是()6.下面代码的区别?2.定义全局变量,正确的做法是?

2022-11-29 14:23:14 542

原创 Go Web项目bluebell(3)

blueberr

2022-11-27 16:55:08 365

原创 Go Web项目bluebell(2)

JTW实现用户的认证。

2022-11-27 00:15:29 206

原创 Go语言Gin框架源码分析

gin框架使用的是定制版本的httprouter,其路由的原理是大量使用公共前缀的树结构,它基本上是一个紧凑的Trie tree(或者只是Radix Tree)。具有公共前缀的节点也共享一个公共父节点。Radix Tree基数树(Radix Tree)又称为PAT位树(Patricia Trie or crit bit tree),是一种更节省空间的前缀树(Trie Tree)。对于基数树的每个节点,如果该节点是唯一的子树的话,就和父节点合并。

2022-11-25 23:35:48 787

原创 狂神的MySQL(3)

当数据库比较复杂的时候,我们就需要设计了糟糕的数据库设计良好的数据库设计软件开发中,关于数据库的设计设计数据库的步骤(个人博客)收集信息,分析需求用户表(用户登录注销,用户的个人信息,写博客,创建分类)分类表(文章分类,谁创建的)文章表(文章信息)评论表友链表(友情链接信息)自定义表(系统信息,某个关键的字,或者一些主字段) 关注表(粉丝数)说说表(发表心情, id…content…create_time)标识实体(把需求落到每个字段)标识实体之间的关系(bbs / crm)为什么需要数据规范化?第一范式(

2022-11-25 23:19:30 98

原创 GoWeb项目bluebell(1)

bulebell come from LWZ

2022-11-25 22:41:28 438

原创 Go语言中操作Redis

Redis是一个开源的内存数据库,Redis提供了多种不同类型的数据结构,很多业务场景下的问题都可以很自然地映射到这些数据结构上。除此之外,通过复制、持久化和客户端分片等特性,我们可以很方便地将Redis扩展成一个能够包含数百GB数据、每秒处理上百万次请求的系统Redis支持的数据结构。

2022-11-24 23:56:28 1056

原创 狂神的MySQL(2)

要么都成功,要么都失败将一组sql放到一个批次中取执行事务原则:ACID原则 原子性 、一致性、隔离性、持久性 (脏读,幻读。。。)事务ACID理解原子性(Atomicity)要么都成功,要么都失败一致性(Consistency)事务前后的数据完整性要保持一致下图操作前和操作后的总和都是1000。

2022-11-23 23:50:52 96

原创 狂神的MySQL(1)

数据库(DB,database)概念:数据仓库,软件,安装在操作系统(window,linux,mac…)之上。SQL,可以存储大量的数据,500w!作用:存储数据,管理数据MySQL是一个**关系型数据库管理系统**前世:瑞典MySQL AB 公司开发今生:属于Oracle旗下产品MySQL是最好的RDBMS(Relational Database Management System,关系数据库管理系统) 应用软件之一。开源的数据库软件。

2022-11-23 23:43:25 289

原创 GO语言中的单列模式

在过去的几年中,Go语言的发展是惊人的,并且吸引了很多由其他语言(Python、PHP、Ruby)转向Go语言的跨语言学习者。Go语言太容易实现并发了,以至于它在很多地方被不正确的使用了。

2022-11-22 23:21:08 120

原创 gorm的增删改查

CRUD通常指数据库的增删改查操作,本文详细介绍了如何使用GORM实现创建、查询、更新和删除操作。创建默认值注意:通过tag定义字段的默认值,在创建记录时候生成的 SQL 语句会排除没有值或值为 零值 的字段。在将记录插入到数据库后,Gorm会从数据库加载那些字段的默认值。上面代码实际执行的SQL语句是INSERT INTO users(“age”) values(‘99’);,排除了零值字段Name,而在数据库中这一条数据会使用设置的默认值小王子作为Name字段的值。

2022-11-21 20:54:05 1101

原创 gorm的入门

在使用ORM工具时,通常我们需要在代码中定义模型(Models)与数据库中的数据表进行映射,在GORM中模型(Models)通常是正常定义的结构体、基本的go类型或它们的指针。如果模型有DeletedAt字段,调用Delete删除该记录时,将会设置DeletedAt字段为当前时间,而不是直接将记录从数据库中删除。如果模型有 CreatedAt字段,该字段的值将会是初次创建记录的时间。使用结构体声明模型时,标记(tags)是可选项。如果模型有UpdatedAt字段,该字段的值将会是每次更新记录的时间。

2022-11-20 23:39:45 238

原创 Go标准库Context

在 Go http包的Server中,每一个请求在都有一个对应的 goroutine 去处理。请求处理函数通常会启动额外的 goroutine 用来访问后端服务,比如数据库和RPC服务。用来处理一个请求的 goroutine 通常需要访问一些与请求特定的数据,比如终端用户的身份认证信息、验证相关的token、请求的截止时间。当一个请求被取消或超时时,所有用来处理该请求的 goroutine 都应该迅速退出,然后系统才能释放这些 goroutine 占用的资源。

2022-11-19 23:58:40 331

原创 MySQL库的基本操作

【代码】MySQL库的基本操作。

2022-11-16 23:31:23 119

原创 MySQL

描述事物的符号记录称为数据,描述事物的符号既可以是数字,也可以是文字、图片,图像、声音、语言等,数据由多种表现形式,它们都可以经过数字化后存入计算机1 psych,男,18,1996,四川单纯的一条记录并没有任何意义,如果我们按逗号作为分隔,依次定义各个字段的意思,相当于定义表的标题id,name,sex,age,birth,born_addr,company # 字段/列名1,psych,男,18,1996,四川,Tencent # 数据。

2022-11-16 23:25:24 636

原创 Go的设计模式之工厂模式

设计模式是面向对象软件的设计经验,是解决特定问题的一系列套路。它不是语法规定,而是一套用来提高代码可复用性、可维护性、可读性、稳健性以及安全性的解决方案。每一种设计模式系统的命名、解释和评价了面向对象中一个重要的和重复出现的设计。

2022-11-16 23:07:41 766

原创 xorm2

nil {fmt . Println("表结构同步失败") } else {fmt . Println("表结构同步成功") }

2022-11-15 22:23:12 250

原创 Go语言数据结构单双链表以及环形单链表

单向链表的缺点分析:单向链表,查找的方向只能是一个方向,而双向链表可以向前或者向后查找单向链表不能自我删除,需要靠辅助节点,而双向链表,则可以自我删除,所以前面我们单链表删除时节点,总是找到temp的下一个节点来删除的。package main import("fmt") // 定义猫的结构体 type CatNode struct {

2022-11-13 23:04:26 155

原创 xorm框架连接mysql实现crud

安装包。

2022-11-13 22:47:52 412

原创 Go语言基础天天练之并发编程

我们常常需要在后面一个时刻运行 Go 代码,或者在某段时间间隔内重复运行。Go 的内置 定时器 和 打点器 特性让这些很容易实现。

2022-11-12 22:39:59 143

原创 Go语言基础天天练之通道操作

超时对于一个连接外部资源,或者其它一些需要花费执行时间的操作的程序而言是很重要的。得益于通道和 select,在 Go 中实现超时操作是简洁而优雅的。使用这个 select 超时方式,需要使用通道传递结果。这对于一般情况是个好的方式,因为其他重要的 Go 特性是基于通道和select 的。接下来我们就要看到两个例子:timer 和 ticker。

2022-11-12 22:25:59 195

原创 Go基础天天练之通道

【代码】Golang基础天天练之通道。

2022-11-12 21:56:01 135

原创 Go数据结构队列

队列是一个有序列表,可以用数组或是链表来实现。遵循先入先出的原则。即:先存入队列的数据,要先取出。后存入的要后取出。

2022-11-11 23:24:22 515

原创 Go的数据结构(感谢韩老师)

当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组。稀疏数组的处理方法是:记录数组一共有几行几列,有多少个不同的值思想:把具有不同值的元素的行列及值记录在一个小规模的数组中,从而缩小程序的规模使用稀疏数组,来保留类似前面的二维数组(棋盘、地图等等)把稀疏数组存盘,并且可以从新恢复原来的二维数组数。

2022-11-11 22:52:42 334

原创 Go中的new的详解

Go语言中new和make都是用来内存分配的原语(allocation primitives)。简单的说,new只分配内存,make用于slice,map,和channel的初始化。newnew(T)函数是一个分配内存的内建函数。我们都知道,对于一个已经存在变量,可对其指针进行赋值。示例那么,如果不是已经存在的变量会如何呢?能对其直接赋值吗?示例结果会报如下错误如何解决?通过Go提供了new来初始化一地址就可以解决。那么我们来分析一下。

2022-11-10 23:08:18 3172

原创 Go语言channel的底层

指向底层循环数组,只有缓冲型的 channel 才有。,均指向底层循环数组,表示当前可以发送和接收的元素位置索引值(相对于底层数组)。,分别表示被阻塞的 goroutine,这些 goroutine 由于尝试读取 channel 或向 channel 发送数据而被阻塞。是用来保证每个读 channel 或写 channel 的操作都是原子的。例如,创建一个容量为 6 的,元素为 int 型的 channel 数据结构如下。

2022-11-10 00:17:57 319

原创 什么是CSP

在文章中,CSP 也是一门自定义的编程语言,作者定义了输入输出语句,用于 processes 间的通信(communicatiton)。大多数的编程语言的并发编程模型是基于线程和内存同步访问控制,Go 的并发编程的模型则用 goroutine 和 channel 来替代。在那篇文章发表的时代,人们正在研究模块化编程的思想,该不该用 goto 语句在当时是最激烈的议题。Go 一开始就把 CSP 的思想融入到语言的核心里,所以并发编程成为 Go 的一个独特的优势,而且很容易理解。

2022-11-10 00:07:23 2513

原创 Go语言Http编程

http 编写web应用。

2022-11-10 00:02:32 184

原创 Docker2(感谢狂神)

说明:我们有了镜像才可以创建容器,linux,下载一个centos镜像来测试学习新建容器并启动列出所有的运行的容器退出容器删除容器启动和停止容器的操作。

2022-11-08 19:02:11 927

原创 场景:有一个字符串,利用这个字符串生成二维码时,发现字符串越长,生成的二维码越密集,比较难识别

需求:想通过某种手段,缩短字符串后,使用缩短的字符串来生成二维码(就没那么密集,也容易识别),缩短后的字符串还要能解码还原。浏览器请求网页的时候,可以返回html,也可以返回文本浏览器请求网页的时候,可以返回html,也可以返回文本。场景:有一个字符串,利用这个字符串生成二维码时,发现字符串越长,生成的二维码越密集,比较难识别。我使用java或者go写一个请求,把文字的内容当做请求的内容返回给浏览器即可。二维码–放图片网络地址–直接打开图片。二维码–放文字–直接识别出来文字。二维码–放网页地址–直接跳转。

2022-11-08 16:03:19 948

原创 Docker(感谢狂神)

一款产品: 开发–上线 两套环境!应用环境,应用配置!开发 — 运维。问题:我在我的电脑上可以运行!版本更新,导致服务不可用!对于运维来说考验十分大?环境配置是十分的麻烦,每一个机器都要部署环境(集群Redis、ES、Hadoop…)!费事费力。发布一个项目( jar + (Redis MySQL JDK ES) ),项目能不能带上环境安装打包!之前在服务器配置一个应用的环境 Redis、MySQL、JDK、ES、Hadoop 配置超麻烦了,不能够跨平台。

2022-11-08 13:15:38 8481 9

MyBatis.md

MyBatis.md

2022-09-27

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除