木子林_
码龄7年
关注
提问 私信
  • 博客:179,757
    社区:1
    动态:61
    179,819
    总访问量
  • 72
    原创
  • 872,556
    排名
  • 1,571
    粉丝

个人简介:博客是用来做笔记的

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:北京市
  • 加入CSDN时间: 2018-03-10
博客简介:

小贱的博客

博客描述:
笔记
查看详细资料
  • 原力等级
    当前等级
    4
    当前总分
    554
    当月
    4
个人成就
  • 获得417次点赞
  • 内容获得128次评论
  • 获得470次收藏
  • 代码片获得1,336次分享
创作历程
  • 8篇
    2024年
  • 2篇
    2023年
  • 2篇
    2022年
  • 22篇
    2021年
  • 40篇
    2020年
  • 1篇
    2019年
  • 2篇
    2018年
成就勋章
TA的专栏
  • 一起学go
    8篇
  • mysql
    8篇
  • docker
    3篇
  • k8s
    2篇
  • python
    27篇
  • redis
    10篇
  • 错误集锦
    6篇
  • 文档
    2篇
  • 工具
    9篇
  • django
    9篇
  • springboot
    1篇
  • 设计模式
    2篇
  • java
    1篇
  • 网络协议
    2篇
  • kafka
    4篇
兴趣领域 设置
  • 大数据
    mysqlredis
  • 运维
    运维开发graylogelk
创作活动更多

2024 博客之星年度评选报名已开启

博主的专属年度盛宴,一年仅有一次!MAC mini、大疆无人机、华为手表等精美奖品等你来拿!

去参加
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

golang并发安全-sync.Once

sync.Once 是 Go 语言中的一种同步原语,用于确保某个操作或函数在并发环境下只被执行一次。它只有一个导出的方法,即 Do,该方法接收一个函数参数。在 Do 方法被调用后,该函数将被执行,而且只会执行一次,即使在多个协程同时调用的情况下也是如此。
原创
发布博客 2024.02.04 ·
682 阅读 ·
3 点赞 ·
0 评论 ·
4 收藏

简单说说redis分布式锁

分布式锁(多服务共享锁)在分布式的部署环境下,通过锁机制来让多客户端互斥的对共享资源进行访问/操作。分布式锁不是百分百安全,我们要根据实际使用情况来考虑锁的使用(解决效率问题还是正确行问题),在使用分布式锁的时候我们需要考虑锁的续期,锁归属,集群数据一致性,操作院子行,GC,时钟飘逸,网络延迟等等的问题。在cap 理论里, redis保证了ap, zk和etcd保证cp ,所以实际使用中根据业务的情况,选择redis/zk/etcd之一来实现分布式锁。
原创
发布博客 2024.02.02 ·
1163 阅读 ·
24 点赞 ·
0 评论 ·
29 收藏

简单说说-docker网络类型

容器网络是指容器之间或非 Docker 工作负载之间连接和通信的能力。容器默认启用网络,并且可以建立传出连接。容器不知道它所连接的网络类型,容器只能看到带有 IP 地址、网关、路由表、DNS 服务和其他网络详细信息的网络接口。也就是说,除非容器使用none网络驱动程序。
原创
发布博客 2024.02.01 ·
1011 阅读 ·
13 点赞 ·
0 评论 ·
13 收藏

简单说说mysql的日志

今天我们通过mysql日志了解mysqld的错误日志、慢查询日志、binlog,redolog, undolog等。揭示它们的作用和用途,让我们工作中更能驾驭mysql。
原创
发布博客 2024.02.01 ·
1266 阅读 ·
21 点赞 ·
0 评论 ·
19 收藏

golang并发安全-select

简单总结下select对case处理逻辑:1- 空的case 会被golang监听到无法唤醒的协程,会panic2- 如果只有一个case, 根据操作类型转换成
原创
发布博客 2024.01.10 ·
1417 阅读 ·
21 点赞 ·
0 评论 ·
21 收藏

docker-简单说说cgroup

cgroup(control groups)是Linux下的一种将进程按组进行管理的机制,在用户层看来,cgroup技术就是把系统中的所有进程组织成一颗一颗独立的树,每棵树都包含系统的所有进程,树的每个节点是一个进程组,而每颗树又和一个或者多个subsystem关联,树的作用是将进程分组,而subsystem的作用就是对这些组进行操作。
原创
发布博客 2024.01.04 ·
1561 阅读 ·
25 点赞 ·
0 评论 ·
16 收藏

docker-简单说说namespace

Linux Namespace 是一种 Linux Kernel 提供的资源隔离方案。使得处于不同namespace的进程拥有独立的全局系统资源,改变一个namespace中的系统资源只会影响当前namespace里的进程,对其他namespace中的进程没有影响。我们可以通过 ls -l /proc/$$/ns 查看服务器有哪些 namespace。
原创
发布博客 2024.01.04 ·
926 阅读 ·
20 点赞 ·
0 评论 ·
21 收藏

golang并发编程-channel

在golang 并发编程里,经常会听到一句话:不要通过共享内存进行通信,通过通信来共享内存。下面我们会介绍下channel, 通过源码的方式去了解channel是怎么工作的。
原创
发布博客 2024.01.02 ·
1366 阅读 ·
24 点赞 ·
1 评论 ·
19 收藏

golang并发安全-sync.map

1- sync.map 结构体加了readOnly 和 dirty 来实现读写分离,load,store, delete,range 每次都会优先访问read,后面访问dirty都会双重检测以防加锁前Map.dirty可能已被提升为read2- sync.map不适合写多读少,从store 代码中可以看出会频繁加锁访问dirty,双重检测等等,这些都会导致性能下降3- sync.map 没有提供对read, dirty 的长度方法,这个对象使用在于并发场景下,会额外带来锁竞争的问题。
原创
发布博客 2023.12.27 ·
1381 阅读 ·
23 点赞 ·
1 评论 ·
21 收藏

golang项目目录推荐

逛GitHub的时候发现有个4.5k对goalng项目结构的推荐的项目,这里就简单的推荐下。
原创
发布博客 2023.12.21 ·
1360 阅读 ·
18 点赞 ·
0 评论 ·
23 收藏

centos服务器搭建k8s集群

我这里用到了CentOS7.6服务器3台(2核4G),我是自己在我windows的虚拟机弄了三台centos,我后面会把我安装的文档放在下面,需要的话自己下去看看。这里多啰嗦一句,搭建好一台,后面两台直接克隆,这样比较节约时间和精力。看笔记的时候要仔细,一步一步来肯定可以搭建好的。
原创
发布博客 2022.04.11 ·
1651 阅读 ·
2 点赞 ·
0 评论 ·
8 收藏

Kubernetes 单机安装---kubeadm

最近在看云原生,安装Kubernetes(以下简称k8s)出现了不少的问题,这里将我的安装步骤和可能出现的问题进行整理,如有问题可以在下面留言相互学习。另提醒我用的是阿里云服务器(centos)。
原创
发布博客 2022.04.11 ·
1477 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

一起学Go之计时器(Timer/Tick)

前言上篇文章写了关于context 源码解读,里面涉及到不少的计时器,所以我们这篇文章就简单了解下go的计时器。Go的计时器主要Timer和Ticker两种,下面我们开始一起学习下计时器主要结构go的计时器基于Go运行时计时器runtime.timer实现的,rumtime.timer的结构体表示如下type runtimeTimer struct { pp uintptr when int64 period int64 f f
原创
发布博客 2021.10.04 ·
3336 阅读 ·
0 点赞 ·
0 评论 ·
6 收藏

一起学go之Context

前言在go开发中经常使用到context,使用的时候感觉和其他语言(py的flask)上下文有点类似,所以激起我的好奇心,看看go的context都干了啥。看了下源码不多,所以花了点时间,把源码稍微看了看。什么是Context?Context 也叫作“上下文”,一般理解为程序单元的一个运行状态、环境、快照等信息。其中上下是指存在上下层的传递,上会把内容传递给下,程序单元则指的是 Goroutine。Context的作用context 主要用来在 goroutine 之间传递上下文信息,包
原创
发布博客 2021.10.04 ·
801 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

Context源码简单阅读后做的笔记.md

发布资源 2021.10.04 ·
md

centos7安装redis5.0

最近趁优惠买了台阿里服务器,需要装一些组件,所以顺便就把安装的流程记录一下,今天我们安装下redis。安装部署redis下载redis的安装包wget http://download.redis.io/releases/redis-5.0.3.tar.gz解压下载的压缩包tar -zxvf redis-5.0.3.tar.gz进入redis文件夹,进行编译在执行编译之前,需要确认有没有安装gcc确认有没有gcc 环境,没有的话可以执行yum install -y gcc.
原创
发布博客 2021.07.10 ·
830 阅读 ·
1 点赞 ·
3 评论 ·
1 收藏

centos7安装mysql教程

最近买了台阿里云服务器,要装一些组件,网上文章一篇不能解决问题,所以把自己安装的顺序整理下来,写一篇笔记下载和安装mysql第一步:下载rpm包wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm下载成功:第二步:通过yum安装之前安装的包yum -y install mysql57-community-release-el7-10.noarch.rpm下载成功:
原创
发布博客 2021.07.10 ·
194 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

内存中多版本并发控制的实证评价pdf

发布资源 2021.07.04 ·
pdf

一起学GO之map

什么是mapMap是一种通过key来获取value的一个数据结构,其底层是散列表,在存储时key不能重复,当我们给定 key,就可以迅速找到对应的 value,不过我们要知道Map 是无序的,我们无法决定它的返回顺序。声明map1-因为map是引用类型,可以使用: var mapname map[keyType]valType2- 通过make内置函数可以创建 map,语法:make(map[keyType] valType) languageMap := map[string]int{"Go":
原创
发布博客 2021.07.04 ·
292 阅读 ·
1 点赞 ·
2 评论 ·
1 收藏

一起学GO之数组和切片

数组数组定义数组是一个由固定长度的特定类型元素组成的序列,一个数组可以由零个或多个元素组成。因为数组的长度是固定的,所以在Go语言中很少直接使用数组。数组的声明声明语法: var 变量名 [元素数量]类型,默认情况下,一个新的数组中元素的初始值为元素类型的零值,对于数字类型来说就是0 。下面我们来看一个简单的例子package mainimport ( "fmt")func main() { var listName [5]int fmt.Println(lis
原创
发布博客 2021.07.04 ·
261 阅读 ·
0 点赞 ·
2 评论 ·
0 收藏
加载更多