• mysql死锁和分库分表问题详解

    2021-04-17 15:58:47

    记录生产mysql的问题点。业务场景与问题描述请求一个外部接口时,每天的请求量在900万左右。分为请求项目和回执这两个项目。请求是用来调用外部接口,回执是接收发送的接口。在发送请求前会先插入数据库。在请求后,如果接口返回调用失败,会更新数据库状态为失败。如果发送成功,则会等待上游给出回执消息后,然后更新数据库状态。而在生产运行过程中,半年出现过两次mysql导致的mq消费者堆积的问题。问题分析记录

  • mysql死锁和分库分表问题详解

    2021-04-17 15:58:47

    记录生产mysql的问题点。业务场景与问题描述请求一个外部接口时,每天的请求量在900万左右。分为请求项目和回执这两个项目。请求是用来调用外部接口,回执是接收发送的接口。在发送请求前会先插入数据库。在请求后,如果接口返回调用失败,会更新数据库状态为失败。如果发送成功,则会等待上游给出回执消息后,然后更新数据库状态。而在生产运行过程中,半年出现过两次mysql导致的mq消费者堆积的问题。问题分析记录

  • 浅析C++中的间接宏函数

    2021-04-02 11:54:03

    宏函数对于每个C++程序员都决不陌生,就算是初出茅庐的C++程序员也知道如何定义、使用宏函数。但是当初学者看到类似于以下这种宏函数嵌套的时候,可能还是会比较嘀咕,#define CONVERTSTR(x) #x#define CONVERTSTR2(x) CONVERTSTR(x)第二个宏函数所做的事情不就是再一次调用上面的宏函数吗,这难道不属于画蛇添足吗?这样做有什么意义呢?别急,我们慢慢来捋一

  • 浅析C++中的间接宏函数

    2021-04-02 11:54:03

    宏函数对于每个C++程序员都决不陌生,就算是初出茅庐的C++程序员也知道如何定义、使用宏函数。但是当初学者看到类似于以下这种宏函数嵌套的时候,可能还是会比较嘀咕,#define CONVERTSTR(x) #x#define CONVERTSTR2(x) CONVERTSTR(x)第二个宏函数所做的事情不就是再一次调用上面的宏函数吗,这难道不属于画蛇添足吗?这样做有什么意义呢?别急,我们慢慢来捋一

  • java关于并发模型中的两种锁知识点详解

    2021-04-02 11:54:03

    1、悲观锁悲观锁假设最坏的情况(如果果你不锁门,那么捣蛋鬼就会闯入并搞得一团糟),只有在确保其他线程不受干扰(获得正确的锁)的情况下才能执行。一般实现如独占锁等。安全性更高,但中低并发性效率更低。2、乐观锁乐观锁通过冲突检查机制判断更新过程中是否存在其他线程干扰。如果存在,操作将失败,重试(也可以不重试)。CAS等常见实现。一些乐观锁削弱了一致性,但在中低并发性下效率大大提高。知识点扩展:并行与分

  • java关于并发模型中的两种锁知识点详解

    2021-04-02 11:54:03

    1、悲观锁悲观锁假设最坏的情况(如果果你不锁门,那么捣蛋鬼就会闯入并搞得一团糟),只有在确保其他线程不受干扰(获得正确的锁)的情况下才能执行。一般实现如独占锁等。安全性更高,但中低并发性效率更低。2、乐观锁乐观锁通过冲突检查机制判断更新过程中是否存在其他线程干扰。如果存在,操作将失败,重试(也可以不重试)。CAS等常见实现。一些乐观锁削弱了一致性,但在中低并发性下效率大大提高。知识点扩展:并行与分

  • MySQL GTID主备不一致的修复方案

    2021-04-02 08:54:14

    方案一:重建 ReplicasMySQL 5.6及以上版在复制中引入了新的全局事务ID(GTID)支持。 在启用了GTID模式的情况下执行MySQL和MySQL 5.7的备份时,Percona XtraBackup会自动将GTID值存储在xtrabackup_binlog_info中。 该信息可用于创建新的(或修复损坏的)基于GTID的副本。前提条件MySQL 机器上需要安装 percona xt

  • MySQL GTID主备不一致的修复方案

    2021-04-02 08:54:14

    方案一:重建 ReplicasMySQL 5.6及以上版在复制中引入了新的全局事务ID(GTID)支持。 在启用了GTID模式的情况下执行MySQL和MySQL 5.7的备份时,Percona XtraBackup会自动将GTID值存储在xtrabackup_binlog_info中。 该信息可用于创建新的(或修复损坏的)基于GTID的副本。前提条件MySQL 机器上需要安装 percona xt

  • jdbc与druid连接池的使用详解

    2021-03-29 12:54:28

    使用jdbc实现对数据库的操作Ⅰ 获取数据库连接package org.example.utils;import java.sql.*;public class JavaDateConnection { /**  * 获取数据库连接  * @return Connection  */ public Connection getConn() { //project为数据库名  String url

  • jdbc与druid连接池的使用详解

    2021-03-29 12:54:28

    使用jdbc实现对数据库的操作Ⅰ 获取数据库连接package org.example.utils;import java.sql.*;public class JavaDateConnection { /**  * 获取数据库连接  * @return Connection  */ public Connection getConn() { //project为数据库名  String url

  • MongoDB 常用的数据类型和基本操作

    2021-03-26 10:54:32

    NO.1 MongoDB的常用数据类型    MongoDB中的文档类似json,我们知道,在json中,最常用的数据类型有null、bool、数组、字符串、数据、json对象等等。相对比较少,比如对于时间类型的数据,json是无法表示的,而MongoDB中对json进行了简单的优化,像json,但是又不是json。下面我们慢慢说     MongoDB的常用数据类型和MySQL比较像,你可以对比

  • MongoDB 常用的数据类型和基本操作

    2021-03-26 10:54:32

    NO.1 MongoDB的常用数据类型    MongoDB中的文档类似json,我们知道,在json中,最常用的数据类型有null、bool、数组、字符串、数据、json对象等等。相对比较少,比如对于时间类型的数据,json是无法表示的,而MongoDB中对json进行了简单的优化,像json,但是又不是json。下面我们慢慢说     MongoDB的常用数据类型和MySQL比较像,你可以对比

  • Redis 事务知识点相关总结

    2021-03-25 14:54:24

    Redis中的事务介绍    MySQL中的事务大家都不陌生,Redis中的事务和MySQL中的事务不同,今天看下Redis事务中的一些知识点吧。01 事务简介    Redis中的事务使用multi、exec来标记,其中multi代表事务开始,exec代表事务结束,multi和exec之间的命令是原子顺序执行的。下面是一个例子:127.0.0.1:7397> multiOK127.0.0.1:7

  • Redis 事务知识点相关总结

    2021-03-25 14:54:24

    Redis中的事务介绍    MySQL中的事务大家都不陌生,Redis中的事务和MySQL中的事务不同,今天看下Redis事务中的一些知识点吧。01 事务简介    Redis中的事务使用multi、exec来标记,其中multi代表事务开始,exec代表事务结束,multi和exec之间的命令是原子顺序执行的。下面是一个例子:127.0.0.1:7397> multiOK127.0.0.1:7

  • 详解MySQL 数据库隔离级别与MVCC

    2021-03-24 11:55:41

    Mysql是我们日常生产与学习中最常接触到的数据库之一,今天讲一讲在Mysql(或者说其他类似的数据库)中存在的隔离级别以及用来提高效率的多版本并发控制(MVCC)。一、隔离级别首先我们需要提到一个概念:事务。什么是事务?事务就是完成一个基础操作的一系列操作语句的一个集合。例如我要将200元从账户A转移到账户B,那么我可能会进行一下的操作:a.验证账户A中的余额是否大于200元。b.将账户A中的余

  • 详解MySQL 数据库隔离级别与MVCC

    2021-03-24 11:55:41

    Mysql是我们日常生产与学习中最常接触到的数据库之一,今天讲一讲在Mysql(或者说其他类似的数据库)中存在的隔离级别以及用来提高效率的多版本并发控制(MVCC)。一、隔离级别首先我们需要提到一个概念:事务。什么是事务?事务就是完成一个基础操作的一系列操作语句的一个集合。例如我要将200元从账户A转移到账户B,那么我可能会进行一下的操作:a.验证账户A中的余额是否大于200元。b.将账户A中的余

  • C# 文件安全管理需要注意的

    2021-03-19 12:55:03

    在实际的项目开发中,我们经常需要使用到文件的I/O操作,主要包含对文件的增改删查等操作,这些基本的操作我们都是很熟悉,但是较少的人去考虑文件的安全和操作的管理等方面,例如文件的访问权限管理,文件数据的彻底删除和数据的恢复等等,这一系列的操作需要我们对.NET的相关知识有一个深刻的学习。       在本文章主要介绍文件和目录的一些基本操作,以及文件目录的权限和安全设置的相关内容。一.

  • C# 文件安全管理需要注意的

    2021-03-19 12:55:03

    在实际的项目开发中,我们经常需要使用到文件的I/O操作,主要包含对文件的增改删查等操作,这些基本的操作我们都是很熟悉,但是较少的人去考虑文件的安全和操作的管理等方面,例如文件的访问权限管理,文件数据的彻底删除和数据的恢复等等,这一系列的操作需要我们对.NET的相关知识有一个深刻的学习。       在本文章主要介绍文件和目录的一些基本操作,以及文件目录的权限和安全设置的相关内容。一.

  • c# 如何对网络信息进行相关设置(ip,dns,网关等)

    2021-03-19 12:54:47

    网络的相关设置在项目开发中有较多的应用,有时候需要在项目中对网络信息进行相关设置。     现在提供提供几种相关的辅助方法类。(1).IP地址  /// <summary>  /// IP地址  /// </summary>  public string IpAddress  {   get   {    string ipAddress;    var address = GetAdd

  • c# 如何对网络信息进行相关设置(ip,dns,网关等)

    2021-03-19 12:54:47

    网络的相关设置在项目开发中有较多的应用,有时候需要在项目中对网络信息进行相关设置。     现在提供提供几种相关的辅助方法类。(1).IP地址  /// <summary>  /// IP地址  /// </summary>  public string IpAddress  {   get   {    string ipAddress;    var address = GetAdd

  • python3 中的几种除法介绍,小数的不同显示

    2021-03-16 11:54:56

    环境:python3.6.1一、python3 中的除法在python3中,一个算数表达式中遇到除法时,有两种不同的除法方式可以选择,分别是/ 和 // 。不同的表达式有不同的运行结果,在这里做个详细说明。1、 / 操作符(真除法)在python3中,/操作符在表达式中时运行的永远是真除法,无论接受任何类型,结果都会保持小数部分。print(4/2) # 2.0print(4/2.0) # 2.0

  • python3 中的几种除法介绍,小数的不同显示

    2021-03-16 11:54:56

    环境:python3.6.1一、python3 中的除法在python3中,一个算数表达式中遇到除法时,有两种不同的除法方式可以选择,分别是/ 和 // 。不同的表达式有不同的运行结果,在这里做个详细说明。1、 / 操作符(真除法)在python3中,/操作符在表达式中时运行的永远是真除法,无论接受任何类型,结果都会保持小数部分。print(4/2) # 2.0print(4/2.0) # 2.0

  • java必懂的冷知识点之Base64加密与解密

    2021-03-15 17:54:31

    为了安全地进行数据传输,就需要对数据进行加密与解密操作,Base64就是Java提供的加密处理器。本博客主要讲解Base64工具类的使用以及加密和解密信息操作实现。Base64是一种直接利用64个可打印字符来表示二进制数据的算法,也是网络传输中较为常见的一种加密算法。从JDK1.8版本开始提供java.util.Base64的工具类,同时提供了两个Base64的内部类实现数据加密与解密操作。【数据

  • java必懂的冷知识点之Base64加密与解密

    2021-03-15 17:54:31

    为了安全地进行数据传输,就需要对数据进行加密与解密操作,Base64就是Java提供的加密处理器。本博客主要讲解Base64工具类的使用以及加密和解密信息操作实现。Base64是一种直接利用64个可打印字符来表示二进制数据的算法,也是网络传输中较为常见的一种加密算法。从JDK1.8版本开始提供java.util.Base64的工具类,同时提供了两个Base64的内部类实现数据加密与解密操作。【数据

  • springAop实现权限管理数据校验操作日志的场景分析

    2021-03-15 12:54:54

    前言作为一个写java的使用最多的轻量级框架莫过于spring,不管是老项目用到的springmvc,还是现在流行的springboot,都离不开spring的一些操作,我在面试的时候问的最多的spring的问题就是我们在平常的项目中使用spring最多的有哪几个点在我看来无非就两个  spring的bean管理,说的高大上一点就是spring的ioc,di  spring的AOPspring是一

  • springAop实现权限管理数据校验操作日志的场景分析

    2021-03-15 12:54:54

    前言作为一个写java的使用最多的轻量级框架莫过于spring,不管是老项目用到的springmvc,还是现在流行的springboot,都离不开spring的一些操作,我在面试的时候问的最多的spring的问题就是我们在平常的项目中使用spring最多的有哪几个点在我看来无非就两个  spring的bean管理,说的高大上一点就是spring的ioc,di  spring的AOPspring是一

  • js利用cookie实现记住用户页面操作

    2021-03-15 12:54:33

    前言开发过程中,有时候会遇到一些类似需求,比如记住用户在浏览器层面所做的操作。之前做过一个功能,当时使用了一个拖拽插件展示一个类似九宫格的报表图,每个图形都可以显示和隐藏,如果用户点击了显示或隐藏按钮,那么下次进入系统时浏览器保留上一次的操作结果。核心部分是使用js对cookie进行操作,具体业务部分则是触发点击图形事件时,如果是隐藏,则将该图形对应的div从cookie中删除,点击显示时,将图形

  • js利用cookie实现记住用户页面操作

    2021-03-15 12:54:33

    前言开发过程中,有时候会遇到一些类似需求,比如记住用户在浏览器层面所做的操作。之前做过一个功能,当时使用了一个拖拽插件展示一个类似九宫格的报表图,每个图形都可以显示和隐藏,如果用户点击了显示或隐藏按钮,那么下次进入系统时浏览器保留上一次的操作结果。核心部分是使用js对cookie进行操作,具体业务部分则是触发点击图形事件时,如果是隐藏,则将该图形对应的div从cookie中删除,点击显示时,将图形

  • Python 常见加密操作的实现

    2021-03-12 19:54:48

    hashlib加密import hashlib # 有很多种加密方式,md5,sha1等等h = hashlib.md5()# 提交加密的内容,bytes形式h.update(b"satori")# 二进制形式print(h.digest())'''b'\x13\xd54\x0f:\xdf\x8e[\xe0\x83\xdd\xc6\xca\xd2G\xb8''''# 十六进制形式print(h.h

  • Python 常见加密操作的实现

    2021-03-12 19:54:48

    hashlib加密import hashlib # 有很多种加密方式,md5,sha1等等h = hashlib.md5()# 提交加密的内容,bytes形式h.update(b"satori")# 二进制形式print(h.digest())'''b'\x13\xd54\x0f:\xdf\x8e[\xe0\x83\xdd\xc6\xca\xd2G\xb8''''# 十六进制形式print(h.h

  • Pandas.DataFrame转置的实现 原创

    2021-03-09 20:54:31

    简述Motivation  sometimes,换一种获取数据的方式,可以提高数据获取的速度。  sometimes,由于预计爬取的数据长度不确定,只能这么先存储起来。  sometimes,有个给你的数据就是这样,但是没办法很方便的使用  …这些情况下,你可能就会需要遇到DataFrame行列转置的方法。Contribution提供了Pandas.DataFrame的行列转置的方法实验部分导入包

  • Pandas.DataFrame转置的实现 原创

    2021-03-09 20:54:31

    简述Motivation  sometimes,换一种获取数据的方式,可以提高数据获取的速度。  sometimes,由于预计爬取的数据长度不确定,只能这么先存储起来。  sometimes,有个给你的数据就是这样,但是没办法很方便的使用  …这些情况下,你可能就会需要遇到DataFrame行列转置的方法。Contribution提供了Pandas.DataFrame的行列转置的方法实验部分导入包

  • 用python 批量操作redis数据库

    2021-03-09 20:54:28

    方法一:使用 pipeline  使用pipelining 发送命令时,redis server必须部分请求放到队列中(使用内存)执行完毕后一次性发送结果,在 pipeline 使用期间,将“独占”链接,无法进行非“管道”类型的其他操作,直至 pipeline 关闭;如果 pipeline 的指令集很多很庞大,为了不影响其他操作(redis 最大时间lua-time-limit默认是5s),可以使

  • 用python 批量操作redis数据库

    2021-03-09 20:54:28

    方法一:使用 pipeline  使用pipelining 发送命令时,redis server必须部分请求放到队列中(使用内存)执行完毕后一次性发送结果,在 pipeline 使用期间,将“独占”链接,无法进行非“管道”类型的其他操作,直至 pipeline 关闭;如果 pipeline 的指令集很多很庞大,为了不影响其他操作(redis 最大时间lua-time-limit默认是5s),可以使

  • python中字符串最常用的十三个处理操作记录

    2021-03-09 20:54:27

    前言博主学习python有个几年了,对于python的掌握越来越深,很多时候,希望自己能掌握python越来越多的知识,但是,也意识很多时候熟练基础的东西,比了解更多的知识更重要。今天,我们来讲讲python字符串处理首先,我们先定义两个字符串,然后后面我们会对其进行一系列操作示范str1="sadf AVD"str2="JIK dojfa kldfj"1.把小写字母都转化为大写print(str

  • python中字符串最常用的十三个处理操作记录

    2021-03-09 20:54:27

    前言博主学习python有个几年了,对于python的掌握越来越深,很多时候,希望自己能掌握python越来越多的知识,但是,也意识很多时候熟练基础的东西,比了解更多的知识更重要。今天,我们来讲讲python字符串处理首先,我们先定义两个字符串,然后后面我们会对其进行一系列操作示范str1="sadf AVD"str2="JIK dojfa kldfj"1.把小写字母都转化为大写print(str

  • c# AcceptEx与完成端口(IOCP)结合的示例

    2021-03-09 15:54:30

    前言在windows平台下实现高性能网络服务器,iocp(完成端口)是唯一选择。编写网络服务器面临的问题有:1 快速接收客户端的连接。2 快速收发数据。3 快速处理数据。本文主要解决第一个问题。AcceptEx函数定义BOOL AcceptEx( SOCKET  sListenSocket, SOCKET  sAcceptSocket, PVOID  lpOutputBuffer, DWORD

  • c# AcceptEx与完成端口(IOCP)结合的示例

    2021-03-09 15:54:30

    前言在windows平台下实现高性能网络服务器,iocp(完成端口)是唯一选择。编写网络服务器面临的问题有:1 快速接收客户端的连接。2 快速收发数据。3 快速处理数据。本文主要解决第一个问题。AcceptEx函数定义BOOL AcceptEx( SOCKET  sListenSocket, SOCKET  sAcceptSocket, PVOID  lpOutputBuffer, DWORD

  • 基于pykeyboard的用法说明

    2021-03-09 12:55:46

    · 键盘操作k.type_string(‘abcdefg') --输入内容k.press_key(‘a') --按a键k.release_key(‘a') --松开a键k.tap_key(‘a') --点击a键k.tap_key(‘a', n=2, interval=5) --点击a键2次,每次间隔5秒k.tap_key(k.function_keys[5]) --功能键F5附 python模拟鼠

  • 基于pykeyboard的用法说明

    2021-03-09 12:55:46

    · 键盘操作k.type_string(‘abcdefg') --输入内容k.press_key(‘a') --按a键k.release_key(‘a') --松开a键k.tap_key(‘a') --点击a键k.tap_key(‘a', n=2, interval=5) --点击a键2次,每次间隔5秒k.tap_key(k.function_keys[5]) --功能键F5附 python模拟鼠

  • python基于paramiko库远程执行 SSH 命令,实现 sftp 下载文件

    2021-03-08 17:54:32

    楔子我们使用 Python 避免不了和 Linux 打交道,而有时我们需要执行一些 shell 命令。如果在本地的话,那么可以通过调用 os.system 或者 subprocess.Popen 来执行,但如果我们希望远程执行其它机器上的 shell 命令,这个时候该怎么做呢?下面我们就来推荐一个第三方库 paramiko,看看如何使用 Python 远程操作其它机器。paramiko网络传输是遵

  • python基于paramiko库远程执行 SSH 命令,实现 sftp 下载文件

    2021-03-08 17:54:32

    楔子我们使用 Python 避免不了和 Linux 打交道,而有时我们需要执行一些 shell 命令。如果在本地的话,那么可以通过调用 os.system 或者 subprocess.Popen 来执行,但如果我们希望远程执行其它机器上的 shell 命令,这个时候该怎么做呢?下面我们就来推荐一个第三方库 paramiko,看看如何使用 Python 远程操作其它机器。paramiko网络传输是遵

  • 解决python mysql insert语句的问题

    2021-03-06 19:54:45

    1、python 数据插入问题par=[]for a in params:if type(a) == list:par.append(‘“str(a)”')else:par.append(a)for b in par:print()cursor.execute(sql,tuple(par))解决 注意python中的 extend,append 的区别,在数据添加数据库中的时候,如果列表中列表一定

  • 解决python mysql insert语句的问题

    2021-03-06 19:54:45

    1、python 数据插入问题par=[]for a in params:if type(a) == list:par.append(‘“str(a)”')else:par.append(a)for b in par:print()cursor.execute(sql,tuple(par))解决 注意python中的 extend,append 的区别,在数据添加数据库中的时候,如果列表中列表一定

  • python 插入Null值数据到Postgresql的操作

    2021-03-06 19:54:43

    数据库中最好插入Null值。在python中,暂时没找到通过sql语句的方式插入Null值。推荐使用轮子的方法def insert_sample_data(self, values): # added self since you are referencing it below with self.con.cursor() as cur:  sql = "insert into sampleta

  • python 插入Null值数据到Postgresql的操作

    2021-03-06 19:54:43

    数据库中最好插入Null值。在python中,暂时没找到通过sql语句的方式插入Null值。推荐使用轮子的方法def insert_sample_data(self, values): # added self since you are referencing it below with self.con.cursor() as cur:  sql = "insert into sampleta

  • python中的bool数组取反案例

    2021-03-05 17:54:46

    python中bool数组取反操作由于Python中使用数字0,1 代表Flase,Ture 。所以bool数组不能像matlab一样直接进行取反操作。a=np.array([False,True,False,True,False])要想对a取反,最简单的操作是b=(a==False)print(b)[ True False True False True]补充:python 将布尔数组取反的方法

  • python中的bool数组取反案例

    2021-03-05 17:54:46

    python中bool数组取反操作由于Python中使用数字0,1 代表Flase,Ture 。所以bool数组不能像matlab一样直接进行取反操作。a=np.array([False,True,False,True,False])要想对a取反,最简单的操作是b=(a==False)print(b)[ True False True False True]补充:python 将布尔数组取反的方法

  • Pytorch之扩充tensor的操作

    2021-03-04 19:54:43

    我就废话不多说了,大家还是直接看代码吧~b = torch.zeros((3, 2, 6, 6))a = torch.zeros((3, 2, 1, 1))a.expand_as(b).size()Out[32]: torch.Size([3, 2, 6, 6])a = torch.zeros((3, 2, 2, 1))a.expand_as(b).size()Traceback (most re

  • Pytorch之扩充tensor的操作

    2021-03-04 19:54:43

    我就废话不多说了,大家还是直接看代码吧~b = torch.zeros((3, 2, 6, 6))a = torch.zeros((3, 2, 1, 1))a.expand_as(b).size()Out[32]: torch.Size([3, 2, 6, 6])a = torch.zeros((3, 2, 2, 1))a.expand_as(b).size()Traceback (most re

 878    1 2 3 4 5 6 7 8 9 10 下一页 尾页

分类点击榜

    栏目ID=0的表不存在(操作类型=0)

分类评论榜

    栏目ID=0的表不存在(操作类型=0)

微信扫一扫

易采站长站微信账号