- 博客(53)
- 收藏
- 关注
原创 Ajax入门
Ajax是异步的JavaScript和XML(Asynchronous JavaScript And XML)。简单点说,就是使用XmlHttpRequest对象与服务器通信。它可以使用JSON,XML,HTML和text文本等格式发送和接收数据。Ajax最吸引人的就是它的“异步”特性,也就是说它可以在不重新刷新页面的情况下与服务器通信,交换数据或者更新页面。
2024-02-14 21:22:01 608
原创 go语言实现LRU缓存
设计和构建一个“最近最少使用”缓存,该缓存会删除最近最少使用的项目。缓存应该从键映射到值(允许你插入和检索特定键对应的值),并在初始化时指定最大容量。当缓存被填满时,它应该删除最近最少使用的项目。写入数据 put(key, value) - 如果密钥不存在,则写入其数据值。当缓存容量达到上限时,它应该在写入新数据之前删除最近最少使用的数据值,从而为新的数据值留出空间。获取数据 get(key) - 如果密钥 (key) 存在于缓存中,则获取密钥的值(总是正数),否则返回 -1。
2024-02-09 07:54:26 986
原创 Go语言中的乐观锁与悲观锁
修改数据时不加锁,正常进行1、2步,在进行第3步的时候,确认一下数值是否进行了修改,如果被修改过,放弃修改,重新走一遍1、2、3步(或者放弃对数值进行修改)。当锁被解除了,自己在数值也加一把锁,然后开始三步走,在三个步骤走完了,也把锁解除。如果在做第2步时,有另一个过程(进程或线程)对同一个数值进行同样的操作(取值、修改),那么当这两个过程都要做第3步的时候,就肯定有一个过程是白干活的。如果想修改一个数值,立马给这个数值上一把锁,标明这个数值正在被修改,谁也不能修改了;
2024-01-04 15:26:23 927
原创 go语言go func(){select{}}()的用法
具体来说,这段代码创建了一个无限循环,然后使用select关键字监控任意数量的channel,一旦其中有一个channel准备好了,就会执行其对应的代码块。这种代码模式可以帮助实现高效的事件循环,在同时处理多个事件的情况下保持高效且不卡住整个程序,很适合在高并发、网络编程等场景中使用。是使用Goroutine和Channel的一个例子,也是Go语言中异步编程的标志之一。
2023-12-22 11:48:09 463
原创 python爬虫-使用selenium自动登录微博
我的python版本是3.11.3,所以我默认下载的selenium版本号是 selenium 4.11.2。首先查看本地anaconda的python环境和selenium版本号(不同版本的api接口可能不同)环境准备:anaconda、pycharm编辑器、chromedriver(记得下载)最后运行这个脚本文件即可自动登录微博。
2023-08-28 13:45:59 2089 1
原创 Windows下报错:go install: cannot install cross-compiled binaries when GOBIN is set
原因可能是之前手动设置了GOBIN,使用。查看一下go环境配置,果然不出所料。依旧查找不到,可能是将插件安装到了。文件夹里,需要手动将插件拉出来放到。安装各种go插件时报错,如下图。查看环境,GOBIN不再被设置。重新设置一下即可解决这个问题。查看插件是否安装成功,这里以。windows平台上使用。注意,如果安装完毕后打开。
2023-05-31 13:36:39 1182
原创 gRPC入门
项目目录如下首先新建proto文件夹,新建文件,写入内容如下在终端输入下列指令和在终端使用整理一下接着编写main.go= nil {= nil {项目目录如下首先新建proto文件夹,新建文件,写入内容如下注意到go_package变成了client端的路径了接着和之前一样,在终端输入指令和在终端使用整理一下接着编写main.go= nil {= nil {
2023-04-24 00:55:22 131
原创 go语言的[]*int和*[]int
得到切片里的元素(本质上是指针/地址)对应的值。从右往左读,最后一个符号是。简易记法:从右往左读,最后一个符号是。,只不过切片里面存放的元素是指针;,说明是切片,倒数第二个符号是。,说明是指针,倒数第二个符号是。说明指针指向一个切片类型。获得切片里面的指针,并通过。是一个指向指针的切片,是一个指向切片的指针,
2023-03-31 15:58:24 449
原创 Go语言使用sqlx查询多条数据并返回给前端
GET方法访问:http://localhost:8080/community,就可以查看到返回的数据了。在这里我们默认在数据库mydb中创建了一个叫。(注意:这里的数据库配置要改成自己的)
2023-03-31 14:58:38 798
原创 windows下C++连接本地MySQL数据库
文件夹下,这两个文件在我的mysql路径如下:D:\mysql\mysql-8.0.30-winx64\lib\libmysql.dll 和 D:\mysql\mysql-8.0.30-winx64\lib\libmysql.lib。这是我数据库里的数据(db1数据库里的user表)首先将本地MySQL的lb文件夹里的。运行项目,输出select查询内容。
2023-03-24 10:12:19 587
原创 Gin框架参数c *gin.Context
在使用 Gin 框架编写路由处理函数的时候,处理函数通常会接受一个 c *gin.Context 参数。这个参数实际上是一个结构体类型的指针,代表了客户端的 HTTP 请求和服务器向客户端发送的 HTTP 响应。通过 Gin 框架提供的 c *gin.Context 对象,我们可以方便地获取请求参数、设置响应头和响应内容、执行重定向,以及抛出错误信息。c *gin.Context 参数包含了大量的关于请求和响应的信息,可以用于获取客户端传递过来的请求参数、设置响应头等操作。
2023-03-16 18:52:31 1210
原创 gin框架使用代码r.Use(logger.GinLogger(), logger.GinRecovery(true))
接着,我们添加了一个简单的路由来响应根路径。通过使用 r.Use(logger.GinLogger(), logger.GinRecovery(true)) 添加中间件,我们可以实现更强大和可靠的应用程序,更好地追踪和监视每个请求及其处理过程,并及时发现并处理潜在的错误和异常。在 Gin 框架中使用 r.Use(logger.GinLogger(), logger.GinRecovery(true)) 可以将日志记录器和恢复中间件添加到路由器中,以便在每个请求处理之前都会经过这两个中间件的处理。
2023-03-16 18:08:56 356
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人