自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 mysql索引命名规则

另外,MySQL还支持自动命名索引,如果没有显式指定索引名称,则MySQL会根据表名、列名和索引顺序自动生成索引名称。但是,建议显式命名索引,以便更好地管理和理解索引的用途。需要注意的是,索引命名规则没有严格的规定,可以根据个人或团队的偏好和约定进行自定义。关键是保持一致性和可读性,使得其他开发人员能够轻松理解和维护代码。MySQL索引的命名规则通常是根据一些约定和最佳实践来命名,以提高索引的可读性和维护性。

2023-06-19 11:53:54 2387

原创 golang redis set集合使用

Set 是一个无序的字符串集合,每个元素都是唯一的。这个例子展示了如何使用 Go 语言的 github.com/go-redis/redis 库来操作 Redis Set。如果删除成功,返回删除的元素数量。3、判断元素是否存在:使用 SISMEMBER key element 命令检查一个元素是否存在于 Set 中。4、获取 Set 中的所有元素:使用 SMEMBERS key 命令获取 Set 中的所有元素。5、获取 Set 中的元素数量:使用 SCARD key 命令获取 Set 中的元素数量。

2023-04-18 11:08:39 509

原创 gorm update返回受影响行数

在这个示例中,我们定义了一个 updateUserEmail 函数,该函数接受数据库连接、用户 ID 和新的电子邮件地址作为参数。然后,我们使用 db.Model(&user) 指定要更新的模型,并使用 Where(“id =?接下来,我们调用 Updates 方法并传入一个包含要更新的字段的映射。如果 RowsAffected 等于 0,表示没有行受到影响,可能是因为没有找到具有指定 ID 的用户。在 GORM 中,你可以使用 Updates 方法更新数据库记录并获取受影响的行数。

2023-04-12 09:59:18 1135

原创 prometheus client_golang 使用详解

在这里,我们引入了 Prometheus 客户端库,并定义了一个简单的 HTTP 服务器。接下来,我们将定义一些 Prometheus 指标,例如计数器(Counter)、仪表(Gauge)和直方图(Histogram)。// Counter 示例 var httpRequestsTotal = prometheus . NewCounterVec(prometheus . CounterOpts {

2023-03-31 14:31:32 1823

原创 golang应用程序使用prometheus监控

Prometheus 是一个开源的监控和警报工具包,用于收集和处理应用程序和系统的指标数据。Go 语言(Golang)是一种快速、简洁和并发友好的编程语言,非常适合开发高性能的后端服务。为了使用 Prometheus 监控 Go 语言编写的应用程序,你需要用到 Go 客户端库。

2023-03-30 14:29:16 928

原创 Prometheus 和 Grafana使用

Prometheus 和 Grafana 是两个用于监控和分析系统性能的流行工具。它们通常一起使用,以便更好地收集、可视化和理解系统指标。

2023-03-30 11:58:56 420

原创 开发面试题

记录一下:https://git.ucloudadmin.com/block/udisk_doc/-/issues/891

2021-11-17 23:18:50 206

原创 RPC和HTTP的区别

RPC调用和HTTP调用协议RPC是通常基于TCP/IP协议HTTP基于HTTP协议效率RPC 比 HTTP效率高复杂度RPC 比 HTTP复杂。涉及RPC框架,服务注册与发现,服务治理。长链接,不必每次通信都要像http一样去3次握手什么的,减少了网络开销;其次就是RPC框架一般都有注册中心,有丰富的监控管理;发布、下线接口、动态扩展等,对调用方来说是无感知、统一化的操作。RPC 通常在大型网站中使用。小型网站直接使用HTTP就可以...

2021-11-04 18:35:36 219

原创 DeprecationWarning: count is deprecated. Use Collection.count_documents instead

python警告: 提示count方法已经过时,更换为count_documents原写法:count = udisk_db["t_chunk_repair_task"].find({"id":id}).count()修改后的写法:count = udisk_db["t_chunk_repair_task"].count_documents({"id":id})警告消失

2021-08-06 18:26:20 927

原创 Linux安装JDK1.8(附安装包下载地址!)

Linux-jdk1.8下载地址点击下载 jdk1.8-linux提取码:h40h1、将安装包上传至Linux服务器2、创建安装文件夹创建install mkdir -p /export/install3、解压到install文件夹中tar -zxvf /jdk-8u144-linux-x64.tar.gz -C /export/install/4、配置环境变量4.1 编辑文件vim /etc/profile.d/java.sh4.2 将内容复制到文件中export J

2021-07-08 11:40:49 14963 4

原创 实现mongodb远程连接

1、配置mongodb.conf查看是否有mongodb.conffind / -name mongodb.conf如果没有,在mongodb安装目录下创建mongodb.confvi mongodb.conf插入下列内容:dbpath = /usr/local/mongodb/data/db #数据文件存放目录 logpath = /usr/local/mongodb/logs/mongodb.log #日志文件存放目录 port = 27017 #端口 fork = tru

2021-06-18 18:30:05 771 1

原创 Mac版Idea完全卸载

解决方法如下:删除~/Library/Preferences/jetbrains.jetprofile.asset.plist删除~/Library/Caches/JetBrains删除~/Library/Application\ Support/JetBrains删除~/Library/Logs/JetBrains总结:删除操作使用 rm -rf,所有的代码如下(xxx替换成自己的用户名):rm -rf /Users/xxx/Library/Preferences/jetbrains.

2021-06-09 14:13:32 2057

原创 git合并某次提交到当前分支

有的时候,在develop分支开发,是大家公用的开发分支,但是只想合并自己提交的到master,如何操作呢?那就要用cherry-pick了。语法 :git cherry-pick commitid首先,git log查看自己提交的log,找到版本号,如最近的版本号是 9caedb2313425a953cb59bf36878f539465e2b20例如:git cherry-pick 9caedb2313425a953cb59bf36878f539465e2b20如果想合并多个提交到当前分

2021-01-28 13:49:38 377

原创 supervisor常用命令使用

简介supervisor是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具。可以很方便的监听、启动、停止、重启一个或多个进程。用supervisor管理的进程,当一个进程意外被杀死,supervisor监听到进程死后,会自动将它重启,很方便的做到进程自动恢复的功能,不再需要自己写shell脚本来控制。1.启动任务supervisorctl start 【服务名】2.查看单个任务状态supervisorctl status 【服务名】3.

2021-01-05 16:25:39 360 1

原创 go语言:go(goroutine)如何控制异步

Go 语言是一种并发编程语言,在 Go 里有一个非常重要的关键字 go(goroutine),一般我们可以用它做一些异步,并发的任务。goroutine 用来调用函数,当某个函数被 go 关键字调用后,go 就会创建一个类似协程的东西,来执行这个函数,这样可以轻易的实现并发。示例:package mainimport ( "fmt")func main() { go work1() go work2() fmt.Println("[全部完成]")}func work1(){ fmt

2020-12-16 16:34:22 6554 1

原创 sync.WaitGroup用法说明

WaitGroup在go语言中,用于线程同步,单从字面意思理解,wait等待的意思,group组、团队的意思,WaitGroup就是指等待一组,等待一个系列执行完成后才会继续向下执行。WaitGroup能够一直等到所有的goroutine执行完成,并且阻塞主线程的执行,直到所有的goroutine执行完成。WaitGroup总共有三个方法:Add(delta int),Done(),Wait()。简单的说一下这三个方法的作用。Add:添加或者减少等待goroutine的数量;Done:相当于Add(

2020-12-16 16:01:24 4602

原创 Docker删除镜像

1、通过 ID 删除镜像docker rmi (image id)如:docker rmi 62aa7aaf9ba02、删除镜像的限制docker rmi 62aa7aaf9ba0报这个错的时候,说明通过该镜像创建的容器未被销毁,镜像是无法被删除的~此时,需要停止容器docker stop 64023b01b7e7然后删除容器最后再删除镜像这样,镜像就被正常删除了3、清理镜像我们在使用 Docker 一段时间后,系统一般都会残存一些临时的、没有被使用的镜像文件,可以通过以下命

2020-09-10 15:52:43 433

转载 group by和select的使用

GROUP BY的用法1、group by概述:简单来说:将数据库的数据用’by’后面接的规则进行分组,即将一个大数据库分成一个个相同类型数据在一起的小区域。2、group by的语法:SELECT column_name, function(column_name) //此处的function()函数是指SQL中的一些聚合函数,例如:MAX(),MIN(),SUM(),AVG(),COUNT()等等FROM table_nameWHERE column_name operator value

2020-08-14 15:04:32 8732

转载 golang 遍历时元素指针问题(转载)

问题golang 执行for 遍历时取value的指针时容易出错代码实现package mainimport (“log”“time”)type student struct {Name stringAge int}func main() {m := make([]*student, 3)stus := []student{student{Name: “sa”, Age: 10},student{Name: “sb”, Age: 11},student{Name: “sc

2020-07-06 17:24:27 521

原创 Mysql大小写敏感引发的bug

首先对大小写敏感的情况如下:MySQL 在 Linux 下数据库名、表名、列名、别名大小写规则是这样的:   1、数据库名与表名是严格区分大小写的;   2、表的别名是严格区分大小写的;   3、列名与列的别名在所有的情况下均是忽略大小写的;   4、变量名也是严格区分大小写的;MySQL 在 Windows 下都不区分大小写。...

2020-07-01 16:34:21 126

原创 Eureka注册中心

服务治理是微服务架构体系中,不可或缺的重要的一部分。SpringCloud 中对 Netflix Eureka 进行了再封装,将其作为默认的推荐的服务注册中心。Spring Cloud Eureka 是一个基于 Rest 的服务,提供了基于 Java 的客户端,非常方便快捷的使用。 **它主要包括两个组件:Eureka Server 和 Eureka Client** Eureka C...

2020-01-09 17:24:14 89

原创 oracle死锁级别locked_mode

1级锁有:Select,有时会在v$locked_object出现。2级锁有:Select for update,Lock For Update,Lock Row Shareselect for update当对话使用for update子串打开一个游标时,所有返回集中的数据行都将处于行级(Row-X)独占式锁定,其他对象只能查询这些数据行,不能进行update、delete或select f...

2019-12-31 11:51:52 14039

原创 oracle数据库死锁解决

第一步:查询是哪张表死锁,确认你要操作的表是否死锁select b.owner,b.object_name,a.session_id,a.locked_mode from vKaTeX parse error: Expected 'EOF', got '#' at position 120: …,b.sid,b.serial#̲,logon_time fro…locked_object a,v$...

2019-12-31 11:47:44 341

原创 java同步与异步的异同

Java中交互方式分为同步和异步两种,异同情况如下:同步交互:指发送一个请求,需要等待返回,然后才能够发送下一个请求,有个等待过程;异步交互:指发送一个请求,不需要等待返回,随时可以再发送下一个请求,即不需要等待。 区别:一个需要等待,一个不需要等待,在部分情况下,我们的项目开发中都会优先选择不需要等待的异步交互方式。Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C...

2019-08-16 10:35:53 206

转载 HashMap原理深入理解

hashing(散列法或哈希法)的概念散列法(Hashing)是一种将字符组成的字符串转换为固定长度(一般是更短长度)的数值或索引值的方法,称为散列法,也叫哈希法。由于通过更短的哈希值比用原始值进行数据库搜索更快,这种方法一般用来在数据库中建立索引并进行搜索,同时还用在各种解密算法中。对比:Hashtable、HashMap、TreeMapHashtable 是早期Java类库提供的一个哈希...

2019-07-23 10:23:54 68

原创 JVM运行原理详解

https://blog.csdn.net/Luomingkui1109/article/details/72820232

2019-07-11 19:37:39 80

转载 HBase详解(很全面)

【转自:http://jiajun.iteye.com/blog/899632】一、 简介historystarted by chad walters and jim2006.11 G release paper on BigTable2007.2 inital HBase prototype created as Hadoop contrib2007.10 First useable...

2019-06-18 11:31:43 176

原创 关于TCP三次握手,这是我见过最好的解读了,通俗易懂

关于TCP协议三次握手的问题,在面试中是最为常见的知识点之一,得到了很多面试官的青睐,如果这个知识点没有掌握好,面试官要是问得深入一点,求职者往往会不知所措。为什么建立连接需要三次握手?首先非常明确的是两次握手是最基本的。第一次握手,客户端发了个连接请求消息到服务端,服务端收到信息后知道自己与客户端是可以连接成功的,但此时客户端并不知道服务端是否已经接收到了它的请求,所以服务端接收到消息后的应...

2019-06-04 11:23:58 609 1

原创 面试系列:JVM工作原理

答题:对于JVM的理解,在我看来有两个重要部分:第一是Java代码编译和执行的整个过程:开发人员编写Java代码(.java文件),然后将之编译成字节码(.class文件),再然后字节码被装入内存,一旦字节码进入虚拟机,它就会被解释器解释执行,或者是被即时代码发生器有选择的转换成机器码执行。Java代码编译和执行的整个过程包含了以下三个重要的机制:1)Java源码编译机制:Java代码编译...

2019-06-03 17:59:02 1035

原创 Oracle表中有数据情况下修改某个字段的精度

一开始建表时候没注意精度问题,后来需求中要求保留三位小数(之前两位),在有数据情况下不能直接使用alter解决思路:先在该表中新增一个临时字段,将之前是需要修改的字段的值赋给临时字段,然后删除需要修改的字段后重新新增三位小数的字段,再将临时字段中的值赋给它,删除临时字段实例:表名-T_AP_DISTRI_SCALE需要修改的字段-N_ACCOUNT_PRICE临时字段-col1alte...

2019-05-31 10:39:22 765

转载 高性能数据库连接池的内幕

大家可能会有这样疑问:连接池类似于线程池或者对象池,就是一个放连接的池子,使用的时候从里面拿一个,用完了再归还,功能非常简单,有什么可讲的。可能还会有这样的疑问:高性能这么高大上,一个小小的连接池,如何跟高大上靠上边的。本主题将会全面介绍连接池原理,高性能的设计,优化实践,现有连接池的瓶颈及解决方案。同时也会介绍唯品会自研数据库连接池产品(代号:Caelus)为什么要有连接池先看一下连接池...

2019-05-29 11:35:11 139

原创 Linux远程管理协议

RFB、RDP、Telnet和SSH目前,常用的远程管理协议有以下 4 种:RDP(remote desktop protocol)协议:远程桌面协议,大部分 Windows 系统都默认支持此协议,Windows 系统中的远程桌面管理就基于该协议。RFB(Remote FrameBuffer)协议:图形化远程管理协议,VNC 远程管理工具就基于此协议。Telnet:命令行界面远程管理协议,...

2019-05-22 20:12:54 955

转载 什么是高并发 ,详细讲解

个人分类: java编程中的问题所属专栏: JAVA结合其他开发语言做项目一、什么是高并发高并发(High Concurrency)是互联网分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计保证系统能够同时并行处理很多请求。高并发相关常用的一些指标有响应时间(Response Time),吞吐量(Throughput),每秒查询率QPS(Query Per Second),并发用...

2019-05-17 11:14:46 178

原创 oracle查询表中所有列

select * from user_tab_columns where table_name = ‘表名’查询表中列数select count(*) from user_tab_columns where table_name = ‘表名’向表中添加列alter table 表名 add (列名 字段属性 null(不为空,默认可为空))...

2019-05-09 10:27:29 3092

原创 线程池ThreadPoolExecutor实现原理

一、 为什么要使用线程池在实际使用中,线程是很占用系统资源的,如果对线程管理不善很容易导致系统问题。因此,在大多数并发框架中都会使用线程池来管理线程,使用线程池管理线程主要有如下好处:1、降低资源消耗。通过复用已存在的线程和降低线程关闭的次数来尽可能降低系统性能损耗;2、提升系统响应速度。通过复用线程,省去创建线程的过程,因此整体上提升了系统的响应速度;3、提高线程的可管理性。线程是稀缺资...

2019-05-07 13:51:20 141

原创 CountDownLatch计数器使用

CountDownLatch是JAVA提供在java.util.concurrent包下的一个辅助类,可以把它看成是一个计数器,其内部维护着一个count计数,只不过对这个计数器的操作都是原子操作,同时只能有一个线程去操作这个计数器,CountDownLatch通过构造函数传入一个初始计数值,调用者可以通过调用CounDownLatch对象的cutDown()方法,来使计数减1;如果调用对象上的a...

2019-05-07 13:43:21 601

原创 Java--Callable与返回值future

package com;import java.util.concurrent.*;/**Callable and Future用法Callable可以被ExecutorService的submit方法使用,可以取线程执行的返回值;Future是返回值的封装类型:get()方法阻塞当前线程直到获取到返回值isDone()方法判断线程是否执行完成isCanc...

2019-05-07 13:40:30 683

转载 JAVA多线程实现的四种方式

Java多线程实现方式主要有四种:继承Thread类、实现Runnable接口、实现Callable接口通过FutureTask包装器来创建Thread线程、使用ExecutorService、Callable、Future实现有返回结果的多线程。其中前两种方式线程执行完后都没有返回值,后两种是带返回值的。1、继承Thread类创建线程Thread类本质上是实现了Runnable接口的一个实...

2019-05-05 16:28:53 86

原创 存储过程的优缺点

优点1. 运行速度:对于很简单的sql,存储过程没有什么优势。对于复杂的业务逻辑,因为在存储过程创建的时候,数据库已经对其进行了一次解析和优化。存储过程一旦执行,在内存中就会保留一份这个存储过程,这样下次再执行同样的存储过程时,可以从内存中直接调用,所以执行速度会比普通sql快。2. 减少网络传输:存储过程直接就在数据库服务器上跑,所有的数据访问都在数据库服务器内部进行,不需要传输数据到其它...

2019-05-05 16:27:28 133

原创 如何判断线程运行结束

1.join()如果是一个线程,可以使用此方法,多个不合适2.CountDownLatch此为并发计数器,每个线程结束后减一(countDown()),countDownLatch.await();//等待所有子线程执行完3.线程池ThreadPoolExecutor的shutdown与awaitTermination方法executor.shutdown();//只是不能再提交新任务,...

2019-05-05 11:03:42 2526

空空如也

空空如也

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

TA关注的人

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