-
如何开启MacOS11系统的自带的PHP环境
我们都知道MacOS系统内置了Apahce服务,而且还内置php环境,今天在这里教大家如何开启apache服务和php环境!开启apache服务的方法打开终端,在终端里输入"sudo apachectl start",按回车键,输入密码检查apache开启的方法打开Safari浏览器输入"localhost",出现It works!页面就代表它启动好了开启/etc/apache...
-
京东搜索引擎-ES入门篇
一.简介Elasticsearch是一个基于Lucence的搜索服务器。它提供了一个分布式的搜索引擎,基于restful web接口。广泛应用于云计算中,能够实时搜索,具有稳定,可靠,快速的特点。二.为啥要学习Elasticsearch?它其实也是一种数据库的优化方案,它的强大之处在于模糊查询。如果是普通数据库查询 like%xxxx%,其实是不走索引的。只要你的数据库的量很大...
-
如何设计API接口,实现统一格式返回?
目录前言接口交互返回格式控制层Controller美观优化优雅优化实现方案总结前言在移动互联网,分布式、微服务盛行的今天,现在项目绝大部分都采用的微服务框架,前后端分离方式,(题外话:前后端的工作职责越来越明确,现在的前端都称之为大前端,技术栈以及生态圈都已经非常成熟;以前后端人员瞧不起前端人员,那现在后端人员要重新认识一下前端,前端已经很成体系了)。一般系统的大致整体架构图如...
-
轻量级的原生JavaScript的Excel插件——JExcel
介绍jExcel是一个轻量级的原生javascript插件,用于创建与Excel或任何其他电子表格软件兼容的基于Web的交互式表格和电子表格。可以从JS数组,JSON,CSV或XSLX文件创建在线电子表格表。可以从excel复制并直接粘贴到jExcel电子表格,反之亦然。集成任何第三方javascript插件非常容易,可以创建自己的自定义列,自定义编辑器,并在应用程序中自定义任...
-
有了Git这个功能,再也不需要依赖IDE了
大家好,今天给大家介绍一个隐藏的功能——搜索。我们在写代码的时候经常遇到的一种情况就是,我们想要知道某一个函数是怎么定义的,这样我们才能知道该如何调用它。如果代码少的话我们当然可以自己人肉查找,但是如果代码量很大的话,人肉查找显然就不行了。如果使用IDE的话,现在的IDE当中当然一般都继承了这个功能,如果你像我一样喜欢编辑器而不喜欢IDE的话,可能就会麻烦一点。这个时候我们可以...
-
“12306”的架构到底有多牛逼?
每到节假日期间,一二线城市返乡、外出游玩的人们几乎都面临着一个问题:抢火车票!虽然现在大多数情况下都能订到票,但是放票瞬间即无票的场景,相信大家都深有体会。尤其是春节期间,大家不仅使用12306,还会考虑“智行”和其他的抢票软件,全国上下几亿人在这段时间都在抢票。“12306服务”承受着这个世界上任何秒杀系统都无法超越的QPS,上百万的并发再正常不过了!笔者专门研究了一下“12...
-
通过扫描枪快速扫码录入的功能实现
目标:进销存系统中,库存盘点的功能可以通过扫码录入的方式盘点产品的库存数,即扫描一次,产品的盘点数+1,替代人工计数,减少人工失误;实现环境:白码低代码开发平台;前期准备:准备好三个数据表,分别是产品、库存盘点和库存盘点明细数据表,其中产品表需要有条码的属性,用于扫描枪功能搜索;实现步骤:新建一个功能,命名为新增库存盘点;①第一步新增库存盘点,使用新增数据的步骤;②第二步新增盘...
-
Spring Boot 启动事件和监听器,太强大了
大家都知道,在 Spring 框架中事件和监听无处不在,打通了 Spring 框架的任督二脉,事件和监听也是 Spring 框架必学的核心知识之一。一般来说,我们很少会使用到应用程序事件,但我们也不要忘了它们的存在,比如说在 Spring 框架内部都使用了各种不同的事件来处理不同的任务。毫无疑问,在 Spring Boot 框架中,事件和监听也得到了发扬光大,除了常用的 Spr...
-
MySQL为Null会导致5个问题,个个致命
在正式开始之前,我们先来看下 MySQL 服务器的配置和版本号信息,如下图所示: “兵马未动粮草先行”,看完了相关的配置之后,我们先来创建一张测试表和一些测试数据。-- 如果存在 person 表先删除 DROP TABLE IF EXISTS person; -- 创建 p...
-
查询附近范围的坐标点实现方案(java)
需求说明需求来源于条友的一个项目,根据用户当前所在坐标,查询附近企业,并将距离进行倒排,这是个比价常见的需求,现在将实现过程简单描述一下。1、原方案从数据库中加载所有企业的坐标地址,数据量在万级,每个用户查询一次最近的企业,后台计算量就是数万次,N个用户每查询一次,就是N*数万次。2、优化方案先从数据库中查询出给定范围的企业,这样计算量就小很多,例如只需要查询1公里范围以内的企...
-
Base64是什么?前端用Base64加载图片到底好不好?
相信无论是前端还是后端开发工程师,对于Base64都不会感到陌生,在开发中我们经常会将一些小图片以Base64的形式存储和加载。然而知其然也要知其所以然,Base64究竟是什么,我们为什么要使用Base64,以及Base64的优缺点又是什么呢?今天我们就来聊一聊。什么是Base64首先Base64是一种编码格式,普遍应用于需要在网络中存储和传输的二进制数据。为什么叫Base64...
-
各种各样加密算法的js库,安全加密不再愁——crypto-js
介绍crypto-js是一个前端Javascript标准加密算法库,CryptoJS (crypto.js) 为 JavaScript 提供了各种各样的加密算法。有时候项目涉及到的敏感数据比较多,为了信息安全,我们常常需要对一些数据进行接口加密处理,如编码、将明文转化为暗文、加密比对,目前已支持的算法包括:MD5、 SHA-1、SHA-256、AES、Rabbit、MARC4、...
-
为什么不建议把数据库部署在docker容器内?
前言近2年Docker非常的火热,各位开发者恨不得把所有的应用、软件都部署在Docker容器中,但是您确定也要把数据库也部署的容器中吗?这个问题不是子虚乌有,因为在网上能够找到很多各种操作手册和视频教程,小编整理了一些数据库不适合容器化的原因供大家参考,同时也希望大家在使用时能够谨慎一点。目前为止将数据库容器化是非常不合理的,但是容器化的优点相信各位开发者都尝到了甜头,希望随着...
-
线上SQL死锁分析及解决思路
背景最近线上消费MetaQ的服务频繁报SQL死锁异常,虽然最终可以基于事务自动回滚和逻辑重试保证最终正确性,但若一直放任不管,海量报警日志会掩盖真正需要紧急处理的异常,同时频繁回滚也会降低消费端的吞吐量,个人通过分析线上服务日志、Mysql死锁日志、梳理Mysql在RR级别下的锁机制,找到了真正的问题所在,并对业务处理逻辑进行了优化,特在此整理出来,一方面大家可以互相学习提升,...
-
MySQL中的排序
在编写SQL 语句时常常会用到 order by 进行排序,那么排序过程是什么样的?为什么有些排序执行比较快,有些排序执行很慢?又该如何去优化?索引排序索引排序指的是在通过索引查询时就完成了排序,从而不需要再单独进行排序,效率高。索引排序是通过联合索引实现的。因为联合索引是从最左边的列开始起按大小顺序进行排序,如下图。比如现在查询条件是 where sex=1 order by...
-
物联网关键技术:规则引擎
物联网系统以及各类互联网分布式系统,消息队列是最常用到的中间件技术。在物联网系统中,消息队列一般和规则引擎结合使用,规则引擎决定消息会进入消息队列的哪个topic。消息队列一般与规则引擎结合使用为啥要用规则引擎规则引擎起源于基于规则的专家系统,是专家系统的一个分支,而专家系统可划分为人工智能的范畴。当时人们提出专家系统,是为了让计算机来应用人类专家的经验,并像人类一样进行推理,...
-
大数据脱敏方案调研
大数据发展速度飞快,大数据的价值也有目共睹,在大数据技术领域,对于分析性能,实时性等方面都有了很大的突破,但数据安全问题在数据业务建立初期很难被重视,而数据规模壮大后才开始重视,以致大多数企业大数据平台安全管控能力普遍缺失。。现今数据安全问题频发,而且一旦发生就会对公司造成很严重的利益甚至声誉损害。数据安全引发的问题代价极高,后果严重,而我们又不能保证服务器永远不会被攻击,所以...
-
一个命令,让你的内网穿透
我们在开发一些web应用的时候,很多时候都是这样的:在本地搭建环境-->开发web应用-->本地测试-->远程部署到服务器上-->域名配置-->可以被外网访问如果你开发过微信小程序相关的,你可能会遇到这么一种情况:如果你的服务器域名没有配置好,无法在本地调用接口。后来我发现了一个不错的网站,localhost.run,它可以直接代理你的内网,也就是...
-
MySQL中varchar类型字段最大长度是多少
背景字节和字符的区分为什么是varchar(255)而不是(256)varchar字段最大值是多少latin1字符集编码下utf8字符集编码下utf8mb4字符集编码下总结背景你是否知道MySQL中的varchar字段类型最大能够存储多少数据?它的最大长度是多少?为什么有时候定义一个varchar(10)的字段可以存储10个汉字,但是不能存储超过10个长度的字母呢?为什么有时候...
-
MySQL底层的存储结构
文章目录:写在前面的话InnoDB的存储结构Tablespace常见的表空间SegmentExtentPage什么是off-pageInnoDB的文件存储格式写在前面的话你有没有想过这样一个问题:我们的数据在MySQL中是如何存放的?它是以什么样的组织方式存放在我们磁盘中的?我们知道,数据是存放在表里面的,在表里面是一行一行存在的。那么这一行一行的数据怎么样在磁盘中存放的呢?表...
-
我用Builder优雅地实现了对象的创建
使用构造函数直接属性赋值Java的对象创建大家都知道,当对象创建完之后,我们可以有几种方式给对象的属性赋值。比如在new的时候给属性赋值。像这样:这样在创建对象时就将属性赋值,的确很方便。但是如果对象的属性很多,我们这么赋值就很不优雅了。使用setter属性赋值一般我们实际开发中,实体类会有很多属性。这时我们可以使用setter方法给属性赋值,如下代码:我们一般也是这么写的,但...
-
微服务架构实战:使用Jenkins实现自动化构建
使用Jenkins实现自动化构建一个大型平台的微服务架构设计通常会产生很多项目工程,因此会有很多服务和应用需要部署,并且需要不断地迭代和更新,这是一个庞大的工程,所以我们需要借助自动化工具,实现各个微服务工程的CICD工作流程。CICD是持续集成(Continuous Integration)和持续部署(Continuous Deployment)的总称,是指通过自动化的构建、...
-
ftp服务器搭建教程
FTP是Internet中应用非常广泛的服务之一,主要用于计算机之间上传和共享文件。搭建方式很简单,不需要特殊的工具和软件,在windows操作系统功能中即可搭建。FTP可根据实际需要设置各用户的使用权限,同时还具有跨平台的特性,即在UNIX、Linux和Windows等操作系统中都可实现FTP客户端和服务器,相互之间可跨平台进行文件的传输。也就是说你在window上搭建的FT...
-
为什么 MongoDB 选择B树,Mysql 选择B+树?
本文献给准备面试或者是还在面试的你。常见面试题,送分题目,不拿白不拿。一、B树和B+树的区别很明显,我们想向弄清楚原因就要知道B树和B+树的区别。为了不长篇大论。我们直接给出他们的形式总结他们的特点。1、B树B树是一种自平衡的搜索树,形式很简单:这就是一颗B-树。针对我们这个问题的最核心的特点如下:(1)多路,非二叉树(2)每个节点既保存索引,又保存数据(3)搜索时相当于二分查...
-
QRCanvas - 动态生成二维码的开源优秀 js 库
简单调用就能满足网址扫码预览和分享、登录扫码认证等二维码功能。QRCanvas 能用来做什么动态生成带二维码的海报是业务型产品中很常见的需求,之前分享过如何通过 html2canvas 将html+css写出来的布局生成海报,而今天分享的 QRCanvas 则是专门满足如何在前端生成动态二维码的需求。QRCanvas 功能特性API 非常简单,简单到只需要一个文本参数就能生成二...
-
Easy Rules 配置文件外置-Mysql
场景前一篇,介绍了Easy Rules作为Java一款轻量级的规则引擎,使得研发更加注重于纯业务开发,提高开发效率。这一篇,主要是围绕,规则配置数据,外置于数据库Mysql的实现。思路1、Mysql存储新建表t_biz_rule、t_biz_rule_compose分别存储规则定义、规则组合定义2、构建RulesMysql中的Rule、RuleCompose转换成RuleDef...
-
MySQL分组查询后如何获取每组的前N条数据,你会吗?
“分组查询”可以说是相当常见的SQL查询语句,对于MySQL数据库而言,其实现分组查询的关键字为GROUP BY,而在使用GROUP BY期间一般还会有其他的聚合函数配合使用,比如计数用的COUNT(*),统计数值和用的SUM(*),而本文要介绍的是另一种类型的“分组查询”,即分组查询出来后再查询出每一组的前N条数据。 为了方便诸位理解,还是直接举一个实际的案例吧:存在两个数据...
-
Spring Boot+CAS 单点登录,如何对接数据库?
在前面和大家分享了松哥写的CAS Server 的搭建以及如何使用 Spring Security 搭建 CAS Client。但是前面的案例有一个问题,就是登录用户是在 CAS Server 配置文件中写死的,没有对接数据库,实际项目中,这里肯定要对接数据库,所以今天,松哥就来和大家聊一聊 CAS Server 如何对接数据库。松哥最近和 Spring Security 杠上...
-
CentOS操作系统:为什么转移到CentOS流是一个大错误
就我个人来说,我一直用的deepin的,但我们管理的服务器上全部使用的都是CentOS。如果你足够关注开源,你可能已经听到了忠实用户的最新抱怨——Red Hat已经宣布它正在杀死我们目前所知道的CentOS,并正在用CentOS Stream取代这个受人喜爱的、高度稳定的服务器发行版。什么是CentOS Stream?简单地说,是CentOS的版本。如果你跟着走,你就会明白为什...
-
基于 Vue+Spring 前后端分离管理系统ELAdmin
今天给大家分享一款超棒的Vue前后台分离管理模板ElAdmin-Web。eladmin 一个简单易上手的Vue+Spring boot后台管理框架,star高达2.6K+。支持主流电脑、平板、手机等设备。特性技术栈:使用 SpringBoot/Jpa/Security、Redis、Vue、ElementUI 等技术开发;模块化:后端采用按功能分模块开发方式,提升开发,测试效率;...