-
Insert into select语句竟然也会引发的生产事故?
前言 Insert into select请慎用。这天xxx接到一个需求,需要将表A的数据迁移到表B中去做一个备份。本想通过程序先查询查出来然后批量插入。但xxx觉得这样有点慢,需要耗费大量的网络I/O,决定采取别的方法进行实现。通过在Baidu的海洋里遨游,他发现了可以使用insert into select实现,这样就可以避免使用网络I/O,直接使用SQL依靠数据库I/O...
-
redis的五种数据结构和应用场景:微博微信点赞+加购物车等
Redis五种数据结构如下:1.String 字符串类型是redis中最基本的数据类型,一个key对应一个value。String类型是二进制安全的,意思是 redis 的 string 可以包含任何数据。如数字,字符串,jpg图片或者序列化的对象。2.Hash (哈希)是一个Mapmap,指值本身又是一种键值对结构,如 value={{field1,value1},........
-
javascript数组求和的实际应用
javascript有下面一组数据const data = [ { name:'小明', score:'90',age:10 }, { name:'小王', score:'100',age:9 }, { name:'小赵', score:'80',age:9 }, { name:'小强', score:'97',age:8 }]我们现在的需求是对score和age两列进行求和计...
-
Elasticsearch数据迁移方案
前言最近要去给客户部署一套系统涉及到了Mysql和ES数据的迁移,下面就给大家分享一下ES数据迁移的几套方案,根据具体的使用场景来选择不同的迁移方案能使你事倍功半,话多说下面就一一介绍。Elasticsearch-dump(工具)这里有很多版本需要大家注意:Elasticdump的1.0.0版更改了转储创建的文件的格式。使用此工具的版本0.x.x创建的文件可能不适用于以后的版本...
-
表格设计:掌握表格设计方法
编辑导读:如何对海量的信息进行统计,最常见的方法就是进行表格整理。表格是职场人士最常用到的工具之一,是数据呈现的载体。本文从设计的角度,对如何进行表格设计展开分析,希望对你有帮助。在我的上一篇文章中,详细的对【表单设计】进行了总结,沉淀了表单设计中需要注意的体验问题,今天按照同样思路对【表格】 进行整理,这是我写的第二篇文章,希望能对大家有帮助。首先了解下表格的构成:顶栏、表格...
-
分布式事务2阶段提交理论的落地方案seata的项目实战演示
背景看过我上一篇文章的小伙伴应该对seata 项目有了一个大概的认识,这一篇我就拿实际案例用户下订单->扣减库存->扣减用户余额,来演示。前期准备下载好seata-server 本示例以1.4.0版为例业务系统: 订单系统 仓储系统 用户系统所用框架 springboot , mybaits, httpclient项目调用结构实战引入jar包,spring-clou...
-
Spring @Autowired注解提示警告
Field injection is not recommended 警告的主要原因是:使用变量的依赖注入不被推荐。 @Autowired private REListingRepository reListingRepository; 可能很多人都会使用上面代码来进行依赖注入,因为上面的代码最简单,也是可以用的,但有时候你会遇到 IJ 的提示。原因和处理这个代码...
-
动态代理JDK和CGLib
我们在生活场景中处处都是代理:租房买房找中介、购买商品找商城、吃饭点外卖等。今天就和勾勾一起来学习代理设计模式,并通过代码理解静态代理和动态代理。代理设计模式代理模式(Proxy Pattern)就是当一个对象A对另一个对象B的访问无法或者不想直接访问时,可以在两个对象添加代理对象C,A通过访问C而间接的访问B对象。代理模式一般包含3个角色:抽象主题角色(ISubject):它...
-
分布式系统中的限流器实现
限流器相关算法一般限流器有五种算法,分别是:令牌桶,漏斗桶,固定窗口,滑动日志(指的其实是广义上的滑动窗口),滑动窗口( 这里指的是滑动日志+固定窗口结合的一种算法 )。1. 令牌桶(Token bucket)令牌桶算法用来控制一段时间内发送到网络上的数据的数目,并允许突发数据的发送。算法大概是:假设允许的请求速率为 r 次每秒,那么每过 1/r 秒就会向桶里面添加一个令牌。桶...
-
Linux用户和用户组解析及管理命令
Linux是一个多用户、多任务的操作系统,系统管理员可以通过分配不同的角色,赋予不同用户各自的权限以及可执行的任务。用户Linux中每个用户都拥有属于自己的用户ID(UID)和组ID(GID),其中UID是唯一识别一个用户的标识。系统中主要有三种类型的用户:管理员用户:root用户,UID为0,拥有至高无上的权限。虚拟用户:UID 分配范围为1-999,不能登录系统,主要是一些...
-
JS简单的二级联动菜单
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>JS简单的二级...
-
前端iframe的属性及优缺点解析
一、什么是 iframeiframe 用于在页面内显示页面,使用 <iframe> 会创建包含另外一个文档的内联框架(即行内框架)<iframe src="URL"></iframe>二、iframe 的常用属性1、width定义 iframe 的宽度2、height定义 iframe 的高度3、name规定 iframe 的名称4、fram...
-
深入理解JavaScript作用域、作用域链
变量(变量作用于又称上下文)和函数生效(能被访问)的区域或集合。换句话说,作用域决定了代码区块中变量和其他资源的可见性。我们来看个例子:function myFunction() { let inVariable = "函数内部变量"; } myFunction();//要先执行这个函数,否则根本不知道里面是啥 console.log(i...
-
SpringCloud2020替换Netflix套件实践一
Spring Cloud 2020版已经发布了,因为网飞Netflix套件进入维护期,替代方案也出来了,本着“就新不就旧”的原则,个人的知识结构也要更新,所有就有了下面的内容。按照官方给出的推荐替代品,主要是:网关由Gateway替换Zuul,断路器由Resilience4j和Sentinel替代Hystrix,负载均衡LoadBalance替换Ribbon。还有例如从Feig...
-
微信官方开源自家优化二维码引擎!3行代码让你拥有微信扫码能力
十天前,微信官方开发团队在 opencv_contrib 开源了自家优化9年的二维码引擎!各位读者可编译最新版OpenCV及opencv_contrib ,直接使用!2011年12月微信3.5版本正式上线“扫一扫”二维码,历经9年蜕变,“扫一扫”从二维码名片到扫码支付、从小程序码到健康码,二维码已经成为一种生活方式,连接着数字与现实。现在,在腾讯WeChatCV团队的贡献下,微...
-
Centos ssh 服务配置
Openssh是ssh开源的实现配置文件/etc/ssh 两个配置文件:ssh_config 客户端工具的配置文件(基本用不着因为现在都是使用工具链接较多,xshell,等工具) sshd_config 服务器端的配置文件配置文件/etc/ssh/sshd_config常用参数解释#Port 22 ...
-
一个支持将html转为PDF、图片,且支持PDF加水印的项目
今天给大家推荐的这个开源项目是来自于读者的投稿,我超级喜欢这个开源项目。尤其是做小程序开发的时候,经常遇到将内容生成图片分享到朋友圈。这个开源项目就能够解决你的问题,可以将 html 转为图片,还可以转为 PDF ,还支持加水印。这个开源项目就是:Doctron,它是基于 Docker、无状态、简单、快速、高质量的文档转换服务。目前支持将 html 转为 pdf、图片 (使用 ...
-
Synchronized的原理及其实现
我们知道 Java内存模型为了保证多线程安全访问有三个特征:1.原子性(Atomicity):JMM保证单个变量读写操作的原子性但是在多CPU环境引入多级缓存后,写操作的原子性意义扩大了,对一个变量的写,不能实时刷新至主内存,导致别的CPU缓存内的数据是旧的,volatile修饰的变量保证多CPU下读写操作的原子性注:与synchronized的原子性不同,因为volatile...
-
微服务失败的 11 个原因
微服务是当前流行的架构。简单地说,微服务就是一种面向服务的软件架构,在这种架构中,服务器端应用程序是通过组合许多单用途、小容量的网络服务来构建的。微服务架构让边界设计良好的服务的失效互不影响成为可能。但是,微服务和所有的分布式系统一样,也会存各种各样的问题。Shekhar Gulati 给我们分享了微服务失败的 11 个原因,这些原因还算比较常见,我们相信,他总结的心得对于想要...
-
容器运行时:从Docker到Containerd
虽然Docker不是最早的容器技术,但却把容器技术推向了应用的高峰。从Docker中拆分而来的Containerd容器运行时,成为了CNCF毕业的第5个项目(前面4个分别是K8s、Prometheus、Envoy和CoreDNS)。本文将介绍容器技术从Docker到Containerd这一路的发展历程。Docker的拆分Docker 诞生于 2013 年,Docker 最开始的...
-
详解 spring data jpa,全方位总结,干货分享
谈一谈 jpa什么是 jpa ? jpa 的全称是 Java Persistence API , 中文的字面意思就是 java 的持久层 API , jpa 就是定义了一系列标准,让实体类和数据库中的表建立一个对应的关系,当我们在使用 java 操作实体类的时候能达到操作数据库中表的效果(不用写sql ,就可以达到效果),jpa 的实现思想即是 ORM (Object Rela...
-
PHP8的注解
PHP8.0增加了注解的支持, 虽然 PHP的注解没用过, 但是咱用过JAVA的注解呀.注解这玩意怎么用? 简单说就下面几步:定义注解类使用注解提取注解到了PHP中, 也基本上换汤不换药.使用定义注解类#[Attribute(Attribute::TARGET_CLASS | Attribute::TARGET_FUNCTION)] class MyAttribute{ ...
-
MySQL如何加锁控制并发
目录前言一、乐观锁添加version字段二、悲观锁读锁全表锁(LOCK TABLE 表 READ)行锁(SELECT ... LOCK IN SHARE MODE)写锁全表锁(LOCK TABLE 表 WRITE)行锁(SELECT ... FOR UPDATE)前言锁总体可以分为乐观锁和悲观锁,简单说,乐观锁用版本号控制,悲观锁用锁控制。下面是待会要用来测试的数据# 添加一个...
-
「数据治理」数据质量工具和正确工具的标准「2021年更新」
数据清理是实现业务决策和操作中可能使用的最高数据质量的更大努力的一部分。它需要整个企业的组织努力和参与,如果做得正确,可以帮助提供有价值的见解和决策分析。与数据清理相关的一些其他好处包括:简化的业务实践提高生产力更快的销售周期更好的分析考虑到许多业务的数据量不断增长,数据清理需要自动化。正确的数据工具可以填补这些空白,并在一些问题有机会成为真正的问题之前自动管理它们。这最终可以...
-
用PHP写Web Service
大多数的Web Service是使用Java语言的,因此在PHP中很少用到Web Service,用PHP写Web Service程序也就成为了比较冷门的知识点,其实仔细研究一下,似乎没有想象中复杂。下面我们就来用PHP写Web Service程序:1、Server端首先,定义一个类,在其中实现方法,然后用SoapServer将此类发布出去。data_service.php:c...
-
CentOS7环境下Redis安装部署
安装包下载1、网上搜索redis,查找下载连接连接为http://download.redis.io/releases/redis-6.0.3.tar.gz2、使用wget下载gz包,安装成功如图所示wget http://download.redis.io/releases/redis-6.0.3.tar.gz3、下载完毕之后进行解压tar -zxvf redis-6.0.3...
-
php基础-设计模式
大家好今天要给大家分享的是设计模式。首先来了解下什么是设计模式。其实所谓设计模式,就是前辈们在编程中遇到了些坑,为了使后人避免入坑所以写了写方法与套路——即设计模式。对于初学者来说,可能无法体会设计模式给编程带来的好处。以下就结合每个设计模式及其给编程带来什么好处来讲解设计模式。一 简单工厂模式请看如下代码无模式简单工厂模式<?phpclass Op{ function...
-
Nginx访问日志和错误日志入门
1.Nginx日志分类:访问日志和错误日志访问日志:记录发起请求的客户端的IP地址、发起请求的时间、发起请求的方法(GET\POST等)、发起请求的HTTP协议(HTTP/1.1等)、浏览器相关信息、响应状态结果等。错误日志:记录发起请求的客户端的IP地址、发起请求的时间、发起请求的方法(GET\POST等)、发起请求的HTTP协议(HTTP/1.1等)、服务器的调试信息、异常...
-
5分钟搭建公网https网页文件服务器,免费权威TLS证书
前言本文主要讲解如何快速搭建一个https网页文件服务器,并免费申请权威机构颁发的tls证书。5分钟搭建公网https网页文件服务器,免费权威TLS证书最终成果:通过浏览器打开指定网页,可以浏览和下载页面上的文件,并且通过tls协议加密传输。部署前提条件:带公网IP的服务器熟悉基本的命令行操作具有相关域名的DNS控制,可以做域名与IP地址的映射具有系统的root账号权限组件介绍...
-
Redis 之哈希
命令hset key field value 设置值,成功返回1,失败返回0,hash提供了 hsetnx 命令 只有key不存在才会设置成功hget key value 获取值hdel key field [field ...] 删除filed,返回删除成功的个数hlen key 统计field个数hmget key field [field ...] 批量获取field v...