提到本地缓存大家都不陌生,只要是个有点经验的后台开发人员,都知道缓存的作用和弊端。本篇文章我们就来简单聊聊在 golang 做业务开发的过程中,本地缓存的一些可选的开源方案。分析它们的特点,以及内部的实现原理。 1.本地缓存需求分析首先来梳理一下业务开发过程中经常面临的本地缓存的一些需求。我们一般做缓存就是为了能提高系统的读写性能,缓存的命中率越高,也就意味着缓存的效果越好。其次本地缓存
Golang 是一个不错的语言,尤其是做一个缓存中间层是非常非常容易的。比较常见的场景就是我们在读一个很大很大的文件的时候,我们是做不到一次加载文件到内存的,Golang 可以做到一点一点的将文件读至末尾,慢慢处理完,相信很多语言也很容易做到这个,那如果在处理这个文件的时候项目的主语言是 Golang 而需要用到一些用 C 写好的模块那又该如何呢?如果让一个程序员只用 C 来实现处理一个大文件,那
并发不安全的 Memo首先用一个例子演示函数记忆:// A Memo caches the results of calling a Func. type Memo struct { f Func cache map[string]result } // Func is the type of the function to memoize. type Func func(key s
1. Golang单元测试对文件名和方法名要求文件名必须以xx_test.go命名方法必须是Test[^a-z]开头方法参数必须 t *testing.T 2. go test 参数解读   go test是go语言自带的测试工具,其中包含的是两类,单元测试和性能测试。通过go help test可以看到go test的使用说明:格式go test [-c] [-i] [build flags]
编写单元测试,运行时报下面的错误haima@haima-PC:/media/haima/34E401CC64DD0E28/site/go/src/haimait/learn/base/cheshi01$ go test go: cannot find main module, but found .git/config in /media/haima/34E401CC64DD0E28/site/g
前言TDD(Test Driven Development),那么我们如何做到可反复、无遗漏、高效地测试我们自己写的的代码?实现敏捷开发呢?这就需要我们自己给自己写的代码写测试用例! 本文主要介绍下在Go语言中如何做单元测试、基准测试、非功能测试。 go test介绍想要测试Go代码需要依赖go test命令,go test命令更像1个框架:在包目录内所有测试文件必须以_tes
package main // o O func f1() { defer println("f1-start") f2() defer println("f1-end") } func f2() { defer println("f2-start") f3() defer println("f2-
转载 2017-12-25 17:31:00
79阅读
2评论
``` package main import ( "fmt" "time" ) func GetName() { //没事玩一下循环 for i := 0; i
原创 2022-08-10 17:39:39
34阅读
  上篇的JUnit学习笔记还留下点尾巴,最后要怎样启动Ant没有讲,恩,在命令窗中,就一句话:ant 。     一旦你在项目上使用了Ant,你就会注意到几乎所有的(或者是占相当比例)项目都要使用同一个Ant的脚本,而且每个项目包含着几个子项目,每个子项目都需要去创建和维护Ant项目。这变得非常的无聊,使人感觉生产力低下,Maven则从Ant停下来的地方继
背景:上周技术三面被面试官问道golang中如何做测试和性能优化,一时间没有反应过来, 不过还好没挂。 特此记录一贴,系统地讲解 golang 中如何做测试,如何查找性能瓶颈。测试的分类说到测试,一般有两种:单例测试和压力测试。所谓单例测试就是拿着一些测试用例依次去测试一下,强调的是通过与不通过的问题。而压力测试则是挑一些特别复杂,极端的测试用例多次重复地进行测试,强调地是性能上的问题。gola
本地缓存一、为什么要使用本地缓存提升性能,快速响应。 通常我们对于持久化数据都会放在数据库中,一般来说,我们都是直接访问数据库的,数据的性能瓶颈在于 1、网络连接 2、磁盘io,取决于sql 性能与数据量等等。 一般我们针对我们的应用程序会增加一层缓存,在选择缓存时,我们也会有很多选择、包括redis、memcache、这些都是作为进程独立部署的,可以用于分布式缓存。 如果从业务量出发,同时成本低
go test是go语言自带的测试工具,其中包含的是两类,单元测试和性能测试 通过go help test可以看到go test的使用说明: 格式形如: go test [-c] [-i] [build flags] [packages] [flags for test binary] 参数解读: -c : 编译go test成为可执行的二进制文件,但是不运行测试。 -i : 安装测试...
原创 2022-01-18 13:43:50
130阅读
# Go语言与Redis的测试钩子实现 在现代开发中,使用Redis来管理状态或缓存是非常常见的。同时,为了保证代码的质量与可靠性,我们需要进行充分的测试。本文将介绍如何在Go语言(Golang)中实现一个Redis测试钩子。我们将分步指导你完成这个流程,确保你能够理解每一个步骤。 ## 流程概览 下面的表格总结了实现“Golang Redis测试钩子”的步骤: | 步骤 | 描
原创 1月前
0阅读
本文的目的是对mymysql进行单元测试和性能测试 准备工作: 1 go get github.com/ziutek/mymysql/thrsafe 2 在mysql建表和初始化数据(db是test) drop table if exists admin;CREATE TABLE `admin` ( `adminid` INT(10) UNSIGNED NOT NULL AUTO_I...
原创 2022-01-18 13:42:51
271阅读
背景使用git来进行版本控制,发现自己多commit了个东西,然后想撤回。之前自己这块一直没有去看,当时忙也来不及去操作,操作了一下好像也没有操作对,所以都是复制自己修改的然后删除分支,这样又麻烦有浪费时间。解决今天抽了点时间来看一下这方面,就是关于自己commit但是还没有push的操作。具体在命令行操作和IDEA 页面操作给出结论。先来解释几个术语HEAD: 这是当前分支版本顶端的别名,也就是
简述:go-cache 是一个基于内存的、高速的,存储k-v格式的缓存工具。它适用于运行在单台机器上的应用程序,可以存储任何数据类型的值,并可以被多个goroutine安全地使用。 go-cache 不打算用作持久数据存储,但是可以将整个缓存数据保存到文件(或任何io.Reader/Writer)中,并且能快速从中指定数据源加载,快速恢复状态。 大家可以去看看go-cache的源码,提供了很多设置
   测试是编程工作中非常重要的一环,但很多人却忽视了这一点,又或者只是把测试看作是一种可有可无的补充手段。Go 语言提供了一些基本的测试功能,这些功能初看上去可能会显得非常原始。1,  Go 与测试       最主要的是testing 包。       net/http/httpte
go test -run TestHelloworld使用该方式跑的测试方法,会自动引入依赖包,不会出现undefine问题。
原创 2022-11-22 11:51:37
58阅读
maven docker 我想加快速度。 场景是这样的: 触摸/更改一些源代码 docker build Maven下载世界 Maven编译我的项目 docker run 触摸/更改一些源代码 docker build Maven下载世界 Maven编译我的项目 docker run 触摸/更改一些源代码 docker build Maven下载世界 Maven编译我的项目 docke
文章目录1.背景1.1.项目介绍1.2.使用方法2.源码分析2.1.项目结构2.2.数据结构2.3.API代码流程1.Cache2.Add3.Value4.Delete5.Flush3.总结 1.背景1.1.项目介绍cache2go是一款由golang实现的本地缓存库,提供并发安全的读写操作,具有过期时间控制等特性。项目地址:https://github.com/muesli/cache2go1
  • 1
  • 2
  • 3
  • 4
  • 5