ICode9

精准搜索请尝试: 精确搜索
  • go-redis分布式锁2022-04-17 16:32:58

    redis分布式锁 package main import ( "fmt" "log" "sync" "time" "github.com/go-redis/redis" ) // 声明一个全局的rdb变量 var rdb *redis.Client var mutex sync.Mutex // 初始化连接 func initClient() (err error) { rdb = r

  • 【LeetCode】二叉树的中序遍历(非递归形式:栈模拟递归,标记模拟递归,莫里斯遍历)2022-04-11 18:32:18

    二叉树的中序遍历 题目链接:https://leetcode-cn.com/problems/binary-tree-inorder-traversal/ 面试的时候问这道题基本都是考察非递归的写法,但还是贴一下递归写法: 方法1:递归 var result []int func f(root *TreeNode) { if root==nil{ return } f(root.Left) result=appen

  • [golang]批量修改名称2022-04-10 14:35:06

    package main import ( "fmt" "io/fs" "log" "os" "path/filepath" "regexp" "strconv" ) func myWalkFunc(path string, info fs.FileInfo, err error) error { ext := ".rmvb"

  • 6-网络编程之-Socket2022-04-10 00:33:09

    一 TCP编程 1.1 TCP协议 TCP/IP(Transmission Control Protocol/Internet Protocol) 即传输控制协议/网间协议,是一种面向连接(连接导向)的、可靠的、基于字节流的传输层(Transport layer)通信协议,因为是面向连接的协议,数据像水流一样传输,会存在黏包问题。 1.2 TCP服务端 一个TCP服务端

  • gorm查询时间去掉时区问题2022-04-07 16:01:51

    gorm查询的时间格式是2022-03-03T14:32:05+08:00,这种格式不符合我们日常使用习惯,尤其是前端展示会额外占用单元格宽度 gorm不提供时间格式的配置,只能自定义个一个类型,继承time.Time,上代码,这个是网上一搜一堆的代码,没啥可以说的 package utils import ( "database/sql/driver"

  • golang操作rocketmq2022-04-06 14:03:48

    下载 go get github.com/apache/rocketmq-client-go/v2 代码 func main() { // 1. 创建主题 //CreateTopic("test-04", 10909) // 2. 生产者向主题中发送消息 //SendSyncMessage("hello world0002") // 3. 消费者订阅主题并消费 SubscribeMessage() } func Create

  • golang操作mysql简单例子2022-04-06 13:01:12

    ==表结构== CREATE TABLE `point_info` ( `id` BIGINT(19) NOT NULL COMMENT '自增ID', `product_key` VARCHAR(50) NOT NULL COMMENT '产品标识' COLLATE 'utf8mb4_general_ci', `device_name` VARCHAR(50) NOT NULL COMMENT '设备名称&#

  • 高级2022-04-05 01:34:44

    52、使用指针作为方法的 receiver 只要值是可寻址的,就可以在值上直接调用指针方法。即是对一个方法,它的 receiver 是指针就足矣。 但不是所有值都是可寻址的,比如 map 类型的元素、通过 interface 引用的变量: type data struct { name string } type printer interface {

  • postgresql model Jsonb格式存储 gorm2.02022-03-29 14:33:44

    type JSON json.RawMessage // Scan scan value into Jsonb, implements sql.Scanner interface func (j *JSON) Scan(value interface{}) error { bytes, ok := value.([]byte) if !ok { return errors.New(fmt.Sprint("Failed to unmarshal JSONB val

  • P6136 【模板】普通平衡树(数据加强版) 非旋转treap算法指针版2022-03-27 18:34:45

    P6136 【模板】普通平衡树(数据加强版) //非旋转的Treap树 #include<bits/stdc++.h> using namespace std; const int INF=0x7fffffff; struct Node *nil; // 自定义的空指针,防止翻车(RE) struct Node { Node *ch[2]; // 结点的左右孩子。为什么不分开写成lc,rc呢?往后就知道了 i

  • BSTree-二叉查找树2022-03-26 16:31:12

     BSTree的全称: Binary Search Tree   【规则】 # 左子节点的值总是小于父节点 # 右子节点的值总是大于父节点   【添加,查找】 # 添加和查找相对简单,按着规则来就可以,比当前值小左边(蓝色),大在右边(黄色)  【删除】 # 首先是要找到要删除的节点,然后再按下面的情况来删除 (a) 待

  • 解决TCP通信的黏包2022-03-26 14:32:02

    1、为什么会出现黏包? 主要原因就是tcp数据传递模式是流模式,在保持长连接的时候可以进行多次的收和发。   2、如何解决黏包? 出现”粘包”的关键在于接收方不确定将要传输的数据包的大小,因此我们可以对数据包进行封包和拆包的操作。 封包:封包就是给一段数据加上包头,这样一来数据包

  • Kubernetes集群中Pod间文件拷贝2022-03-20 14:30:27

    如何在Pod间拷贝文件? 具体代码如下: /* copy file to pod */ package cp import ( "archive/tar" "context" "fmt" "io" "io/ioutil" "log" "os" "path" "strings" corev1 "

  • Go微服务三 Go-RPC2022-03-20 14:03:55

    RPC 1. 简介 什么是RPC? 远程过程调用(Remote Procedure Call, RPC)。计算机的一个通信协议 该协议允许一台计算机的程序调用另一台计算机的程序。 如果涉及的软件采用的面向对象编程,远程调用也可以叫做远程调用或远程方法调用 2. Go实现RPC 2.1 如何实现 go使用官方提供的n

  • golang 文件Seek和Truncate的结合使用2022-03-20 12:35:16

    在需要分步写入整条信息时做回滚操作时使用 /* * @Description: * @Author: gphper * @Date: 2021-11-06 20:11:56 */ package main import ( "fmt" "io" "log" "os" ) func main() { f, err := os.OpenFile(`file.txt`, os.O_RDWR, os.ModeP

  • 自己动手写Docker系列 -- 3.2增加容器资源限制2022-03-20 11:00:11

    简介 继上篇的Run命令容器的实现,本章节中将实现增加容器资源限制,已内存限制为例,展示如果现在容器的内存使用 源码说明 同时放到了Gitee和Github上,都可进行获取 Gitee: https://gitee.com/free-love/docker-demoGitHub: https://github.com/lw1243925457/dockerDemo 本章节对

  • TinyKV lab4完成总结2022-03-19 15:37:26

    lab4是实现一个基于Percolator模型的分布式事务。 lab4a lab4a是介绍三种Column Family的作用和协作,分别包括CfDefault, CfWrite, CfLock。 CfDefault是暂存实际数据的cf, CfWrite是写入时间的记录,CfLock是该数据的锁。数据版本(事务)由一个全局递增的ts表示,ts越大越新,数据在数据库

  • TinyKV lab2b完成总结2022-03-19 13:33:04

    lab2b 集群视图下的日志的复制和状态的写入。 与lab2a相比,lab2b需要阅读大量代码了解整个集群是怎么工作的。首先,我们要对整个集群有个大概的了解(可以看文档)。 node和store看作等价的就行 可以看到,一个node上面可以跑多个Raft实例(叫做Peer/RaftGroup),每个Peer属于不同的Region,每

  • LRUCache2022-03-19 02:03:56

    # LRU: Least recently used,最近最少使用   【一般使用链表+map这两个数据结构来实现】 # 使用map来加快缓存数据的查找 # 使用链表来记录最近的访问情况,最近被访问了(Get和Put都属于是最近访问了),就会被移到链表头 # 当Put进去的数据超过缓存容量时,链表尾部的元素就会被移出缓存

  • 判断链表是否包含环2022-03-18 21:03:14

    func hasCycle(head *ListNode) bool { if head==nil||head.Next==nil{ return false } p1,p2:=head,head.Next for p2!=nil{ p1=p1.Next p2=p2.Next if p2!=nil{ p2=p2.Next } if p1==p2{

  • 一文读懂 MongoDB驱动程序 API2022-03-11 13:59:38

    回调API和核心API 回调 API: 启动一个事务,执行指定的操作,并提交(或出错时中止)。 自动包含 "TransientTransactionError" 和 "UnknownTransactionCommitResult" 的错误处理逻辑。 核心 API: 需要显式调用来启动事务并提交事务。 不包含 "TransientTransactionError" 

  • Golang 本地或远程云服务器Docker操作2022-03-10 01:34:12

    本地操作Docker 环境准备 安装 SDK $ go get github.com/docker/docker/client 初始化客户端对象 使用如下方式直接连接本地的 Docker Daemon,不需要过多配置,直接用环境变量的参数初始化客户端即可。 // NewEnvClient 直接使用环境变量中的 DOCKER_HOST, DOCKER_TLS_VERIFY, DOCKE

  • [算法]剑指offer p26复杂链表的复制 golang2022-03-03 13:00:15

    [算法]剑指offer p26复杂链表的复制 golang 题目 题目:请实现函数Clone,复制一个复杂链表。在复杂链表中,每个结点除了有一个next指针指向下一个结点外,还有一个sub指向链表中的任意结点或者NULL。结点的 golang 定义如下: type ComplexLinkNode struct { Value int Next *Com

  • Swift 之 init?2022-03-01 19:02:56

    init?:初始化可能失败,会返回 nil

  • Hello Go(二十一)、GoMock测试框架2022-03-01 09:06:51

    一、GoMock简介  1、GoMock简介 GoMock是由Golang官方开发维护的测试框架,实现了较为完整的基于interface的Mock功能,能够与Golang内置的testing包良好集成,也能用于其它的测试环境中。GoMock测试框架包含了GoMock包和mockgen工具两部分,其中GoMock包完成对桩对象生命周期的管理,moc

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有