自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 MYSQL主从同步

当主库读取事件的时候,会在binlog 上加锁,读取完成后,再将锁释放掉。slave节点上的SQL线程会读取relaylog 中的binlog 日志,将其解析成具体的增删改操作,把这些在master节点上进行过的操作重新在slave节点上重做一遍,达到数据还原的效果,这样可以保证master节点和slave节点的数据保持一致了。数据备份其实是冗余的机制,通过冗余的方式可以换取数据库的高可用性,当服务器出现故障、宕机等无可用的情况下,可以迅速进行故障切换,让从库当主库,保证服务正常运行。

2024-12-04 10:56:19 490

原创 Java 对象头、Mark Word、monitor与synchronized关联关系以及synchronized锁优化

否则说明多个线程竞争锁,轻量级锁就要膨胀为重量级锁,锁标志的状态值变为“10”,Mark Word中存储的就是指向重量级锁(互斥量)的指针,后面等待锁的线程也要进入阻塞状态。(1)在代码进入同步块的时候,如果同步对象锁状态为无锁状态(锁标志位为“01”状态,是否为偏向锁为“0”),虚拟机首先将在当前线程的栈帧中建立一个名为锁记录(Lock Record)的空间,用于存储锁对象目前的Mark Word的拷贝,官方称之为 Displaced Mark Word。(4)如果CAS获取偏向锁失败,则表示有竞争。

2024-11-22 10:24:24 1472 1

原创 什么是MESI缓存一致性协议?怎么解决并发的可见性问题?

什么是MESI协议的四种状态?: 该缓存行有效, 数据被修改了,但未同步回内存。即数据只存在于本缓存行中,和内存中的数据不一样。: 该缓存行有效,数据未被修改,和内存中的数据一致,并且数据只存在本缓存行中。:该缓存行有效,数据未被修改,和内存中的数据一致,并且数据同时存在于其他缓存中。:该缓存行数据无效,数据已过时。

2024-11-20 15:10:41 291

原创 线程同步的几种方法?

synchronized 底层实际上通过JVM来实现的,同一时间只能有一个线程去执行synchronized 中的代码块,那么这个操作就是不能被其它线程打断的,所以这里天然就具有原子性了。也就是通过monitorenter指令之后,synchronized内部的共享变量,每次读取数据的时候被强制从主内存读取最新的数据。这样通过这种方式,数据修改之后立即刷新回主内存,其他线程进入synchronized代码块后,使用共享变量的时候强制读取主内存的数据,上一个线程对共享变量的变更操作,它就能立即看到了。

2024-11-20 11:28:46 398

转载 Java中的四种引用类型

强引用是 Java 的默认引用形式,使用时不需要显示定义,是我们平时最常使用到的引用方式。它们的区别是被弱引用关联的对象在垃圾回收时总是会被回收,被软引用关联的对象只有在内存不足时才会被回收。Java提供给了我们四种引用方式,以便我们控制对象的生存周期,引用强度从强到弱分别为:强引用、软引用、弱引用、虚引用。任何通过强引用所使用的对象不管系统资源有多紧张,Java GC都不会主动回收具有强引用的对象。软引用和弱引用的特性基本一致, 主要的区别在于软引用在内存不足时才会被回收。

2024-11-19 16:06:40 62

转载 慢SQL优化思路+经典案例分析

in查询在进行cost代价计算时(代价 = 元组数 * IO平均值),是通过将in包含的数值,一条条去查询获取元组数的,因此这个计算过程会比较的慢,所以MySQL设置了个临界值(eq_range_index_dive_limit),5.6之后超过这个临界值后该列的cost就不参与计算了。就好像看书一样,上次看到哪里了,你就折叠一下或者夹个书签,下次来看的时候,直接就翻到啦。中的数据,放到临时磁盘文件,等到所有满足条件数据都查完排完,再用归并算法把磁盘的临时排好序的小文件,合并成一个有序的大文件。

2024-11-18 15:47:09 91

转载 日常工作中,你是如何优化SQL的?

in 查询会先执行内部查询部分 SELECT customer_id FROM orders,获得 orders 表(大表)中的所有 customer_id,然后在 customers 表(小表)中查找匹配的 id。如果没有的话,可以在自己搞个深分页,或者因为数据量、或者因为没加索引等原因,导致的慢SQL,然后按照这个思路去排查一遍。因此,应考虑在where的条件列,建立索引,尽量避免全表扫描。const:通过一次索引就能找到数据,一般用于主键或唯一索引作为条件,这类扫描效率极高,,速度非常快。

2024-11-18 15:43:25 58

转载 延迟双删,要延迟多久呢?

它们又有个很大的不同:Read/Write-Through是同步更新缓存和数据的,Write-Behind则是只更新缓存,不直接更新数据库,通过批量异步的方式来更新数据库。” 但是,通过一些方案优化处理,是可以保证弱一致性,最终一致性的。:根据业务读取数据的平均耗时,设置一个休眠时间(如1秒),以确保在此期间内所有可能的读请求都已经结束,并且可能因读取旧数据而写入的脏数据已经被缓存。:这种一致性级别是最符合用户直觉的,它要求系统写入什么,读出来的也会是什么,用户体验好,但实现起来往往对系统的性能影响大。

2024-11-18 14:29:04 127

转载 图解分库分表

如果你的系统处于快速发展时期,如果每天的订单流水都新增几十万,并且,订单表的查询效率明变慢时,就需要规划分库分表了。方案,比如订单id在0~4000万的区间,划分为订单库1,id在4000万~8000万的数据,划分到订单库2,将来要扩容时,id在8000万~1.2亿的数据,划分到订单库3。水平分库是指,将表的数据量切分到不同的数据库服务器上,每个服务器具有相同的库和表,只是表中的数据集合不一样。当然,有时候我们也可以按时间范围来划分,如不同年月的订单放到不同的表,它也是一种range的划分策略。

2024-11-18 10:51:55 54

原创 23 种设计模式详解

定义:确保一个类最多只有一个实例,并提供一个全局访问点单例模式可以分为两种:预加载和懒加载定义:定义了一个创建对象的类,由这个类来封装实例化对象的行为。定义:定义了一个创建对象的抽象方法,由子类决定要实例化的类。工厂方法模式将对象的实例化推迟到子类。定义:定义了一个接口用于创建相关或有依赖关系的对象族,而无需明确指定具体类。简单工厂模式:建立一个实例化对象的类,在该类中对多个对象实例化。工厂方法模式:定义了一个创建对象的抽象方法,由子类决定要实例化的类。

2024-11-13 16:57:24 967

转载 图文并茂讲解Mysql事务实现原理

前面说过原子性,隔离性,持久性的目的都是为了要做到一致性,但隔离型跟其他两个有所区别,原子性和持久性是为了要实现数据的可性保障靠,比如要做到宕机后的恢复,以及错误后的回滚。下面我首先讲实现事务功能的三个技术,分别是日志文件(redo log 和 undo log),锁技术以及MVCC,然后再讲事务的实现原理,包括原子性是怎么实现的,隔离型是怎么实现的等等。undo log主要记录的是数据的逻辑变化,为了在发生错误时回滚之前的操作,需要将之前的操作都记录下来,然后在发生错误时才可以回滚。

2024-11-12 14:55:22 68

转载 MVCC 原理

事务,由一个有限的数据库操作序列构成,这些操作要么全部执行,要么全部不执行,是一个不可分割的工作单位。假如 A 转账给 B 100 元,先从 A 的账户里扣除 100 元,再在 B 的账户上加上 100 元。如果扣完 A 的 100 元后,还没来得及给 B 加上,银行系统异常了,最后导致 A 的余额减少了,B 的余额却没有增加。所以就需要事务,将 A 的钱回滚回去,就是这么简单。为什么要有事务呢?就是为了保证数据的最终一致性。MVCC,即。

2024-11-12 10:19:21 76

原创 docker安装及配置RabbitMQ

5672, 5671 (AMQP 0-9-1 without and with TLS 消息队列协议是一个消息协议)15672 (if management plugin is enabled.管理界面 )4369 (epmd) epmd 代表 Erlang 端口映射守护进程。docker update --restart=always 容器ID。15671 management监听端口。设置容器开机自动启动。

2024-10-28 10:26:32 128

原创 suse操作系统安装gaussdb数据库

本数据库安装方式是通过先在虚拟机中安装suse操作系统,再在suse操作系统中安装gaussdb数据库的方式安装,以下是安装步骤:14.

2024-10-10 10:22:32 1789

原创 docker安装oceanbase_mysql

1.远程拉取镜像:latest如下信息则启动数据库成功5.系统租户登录6.创建资源单元7.8.创建租户 使用lower_case_table_names参数区分数据库是否大小写敏感。

2024-10-08 15:14:09 673

原创 oracle sqlload 导入数据

【代码】oracle sqlload 导入数据。

2024-01-31 16:39:57 1233 1

原创 docker安装informix

1.1 拉取镜像。

2024-01-31 11:07:03 535 1

原创 MaxCompute数据库客户端

百度网盘链接: https://pan.baidu.com/s/1JfXKuKXqGRrkkpMsfous5A提取码: ycn7。

2024-01-31 10:51:35 434 1

原创 Mac 杀死占用某个端口的进程

lsof -i:8010kill -9 pid

2024-01-30 14:08:37 517 1

原创 gbaseV95安装

将GBase8a_MPP_Cluster-NoLicense-9.5.3.26.6-centos7-aarch64.tar.bz2传入opt目录下安装包百度网盘提取链接: https://pan.baidu.com/s/1cVfvGODOc3mqBTHX5-Wkrg提取码: fwph。

2024-01-29 17:50:27 449

原创 oracle11g安装

8.创建Oracle安装目录1.获得安装包百度网盘安装包提取链接: https://pan.baidu.com/s/1gAppPUon9CzgImh2IT9IuQ提取码: nnq32.关闭防火墙操作用户:root3.安装依赖包操作用户:root注:中途若有碰到选择的(y/n),直接输入y就行4.验证依赖包操作用户:root正常所有包都会显示已安装,自己注意是否有未安装的包5.创建oracle用户操作用户:root到最后一步会提示设置密码设置密码为oracle,随意自己想设啥设啥。

2024-01-29 16:40:36 709

原创 linux安装tesseract支持tess4j图片识别

usr/local/libarchive/libarchive-3.3.3/build/pkgconfig为安装的libarchive的pkconfig路径。/usr/local/leptonica/lib/pkgconfig为安装的leptonica的pkconfig路径。注意:/usr/local/icu4c-52/lib/pkgconfig为安装的icu的pkconfig路径。链接: https://pan.baidu.com/s/1OoSi23ES1zmWlYMIKeq3MQ。

2024-01-19 17:55:30 829 1

原创 linux安装opencv库

链接: https://pan.baidu.com/s/1Pi6zR29LjD3UFgvR9b4T6w。以上两条也会在: /usr/local/opencv/share/java/opencv4下。在build/lib目录下有: libopencv_java480.so文件。在build/bin目录下有: opencv-480.jar文件。如果没有出现以上内容,则编译出错。

2024-01-19 17:12:22 519 1

原创 oracle sqlldr命令安装

19版本可向下兼容所有oracle版本数据库输入y回车输入y回车执行:sqlldr(在sqlldr命令文件路径下。

2024-01-19 16:56:27 1242 1

原创 linux_arm架构GLIBC升级

链接: https://pan.baidu.com/s/1eNpwJbF5qZVn-_G1x0tG-A。版本4.8.5 低于6.2需要升级,我升级到了11.2.0版本。版本3.82低于4需要升级,我升级到了4.3版本;版本高于3.02无需升级安装;

2024-01-17 16:57:48 1824

原创 Linux_aarch64系统PaddleOCR基于PaddleHub Serving的离线服务部署

适用于:linux操作系统-arm架构环境要求:glibc版本 > 2.26。

2024-01-17 16:45:19 750

原创 linux_x86-64环境PaddleOCR基于PaddleHub Serving的离线服务部署

链接: https://pan.baidu.com/s/1J3tYgO7Kp_--XCcGCnic9w。显示当前有base和paddle_env环境,则conda已加入环境变量。该环境下有我们需要的paddleocr的所有依赖。

2023-11-10 18:27:54 666 4

原创 db2、dm、gbase、greenplumn、postgresql、gaussdb_T、hive、Informix、kingbase、mongodb、mysql、oceanbase、osc数据库驱动

链接: https://pan.baidu.com/s/1HEt7EJz0k1MhikxCZm0OvA。以上数据库驱动百度网盘自取。

2023-11-10 18:07:30 134 1

原创 mysql版本升级

root用户执行命令:rpm -i /home/mysqllib/mysql-community-*.rpm --force --nodeps。alter user 用户名@'%' identified with mysql_native_password by '密码';mysqldump -u 用户名 -p 备份的数据库名> /home/mysqlbak/备份的文件名.sql。create user 用户名@'%' IDENTIFIED BY '密码';执行命令:rm -rf /etc/my.cnf。

2023-11-10 17:35:40 78 1

原创 服务器抓包命令

tcpdump -i any port 1521 -w /root/xxxx.cap

2023-11-10 17:25:40 117 1

原创 centos7环境不能联外网问题解决

2.在服务器ping一下这个ip,能ping通就是域名解析有问题。添加完后重新ping www.baidu.com就可以上网啦。1.在本地ping www.baidu.com返回一个ip。解决方案打开/etc/resolv.conf,添加如下两行。如果ping这个ip,ping不通那就是服务器不能上网。

2023-11-10 17:24:07 491 2

原创 PaddleOCR基于PaddleServing的在线服务化部署

使用paddlepaddle需要先安装python环境,可以通过anaconda一键安装python环境 anaconda下载地址:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/?使用PaddleServing做服务化部署时,需要将保存的inference模型转换为serving易于部署的模型。调整 config.yml 中的并发个数获得最大的QPS, 一般检测和识别的并发数为2:1。基于PaddleServing的部署:代码路径为"

2023-11-10 17:21:18 2283 3

原创 PaddleOCR基于PaddleHub Serving的在线服务部署

paddle是2.5.1 gpu,Linux运行时cannot import name 'RNNCell' from 'paddle.fluid.layers',这是因为2.5.0后没有fluid了,这时不用降版本(因为我将版本后出现了另一个错误,这时只需要把/root/anaconda3/envs/paddle_env/lib/python3.8/site-packages/paddlehub/compat/task/text_generation_task.py这个文件。:可视化结果保存路径,默认为。

2023-11-10 15:04:13 1564 5

空空如也

空空如也

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

TA关注的人

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