技术文章

pt-query-digest安装使用及可视化

一世执手 提交于 2021-02-20 18:39:20
系统环境 CentOs 7.6 mysql 8 安装包下载 perl-DBD-MySQL percona-toolkit Query-Digest-UI 安装 安装perl-DBD-MySQL(连接mysql8需要) yum install -y perl-DBD-MySQL-4.050-1.el7.x86_64.rpm 安装percona-toolkit yum install -y percona-toolkit-3.3.0-1.el7.x86_64.rpm 安装Query-Digest-UI 下载 git clone https://github.com/kormoc/Query-Digest-UI.git 移动文件到/var/www/html目录(apache默认根目录),并重命名为slow。 mv Query-Digest-UI /var/www/html/slow 修改配置文件 cd /var/www/html/slow cp config.php.example config.php vi config.php $reviewhost = array( // Replace hostname and database in this setting // use host=hostname;port=portnum if not the default port

各大互联网公司架构演进之路汇总

不羁的心 提交于 2021-02-20 17:50:42
大型网站架构演化历程 大型网站架构技术一览 Web 支付宝和蚂蚁花呗的技术架构及实践 支付宝的高可用与容灾架构演进 聚划算架构演进和系统优化 (视频+PPT) 淘宝交易系统演进之路 (专访) 淘宝数据魔方技术架构解析 淘宝技术发展历程和架构经验分享 (视频+PPT)(2.3日更新) 高德——快速转型时期的稳定性架构实践 (视频+PPT)(2.3日更新) 秒杀系统架构分析与实战 腾讯社区搜索架构演进 (视频+PPT) 京东峰值系统设计 京东咚咚架构演进 新浪微博平台架构 微博图床架构揭秘 微博推荐架构的演进 当当网系统分级与海量信息动态发布实践 当当网架构演进及规划实现 (视频+PPT) LinkedIn架构这十年 Facebook’s software architecture (英文) 从0到100——知乎架构变迁史 豆瓣的基础架构 搜狗搜索广告检索系统-弹性架构演进之路 (视频+PPT) 小米网抢购系统开发实践 小米抢购限流峰值系统「大秒」架构解密 海尔电商峰值系统架构设计*佳实践 唯品会峰值系统架构演变 1号店电商峰值与流式计算 蘑菇街如何在双11中创造99.99%的可用性 麦包包峰值架构实践 苏宁易购:商品详情系统架构设计 苏宁易购亿万级商品评价系统的架构演进之路和实现细节 (3.30日更新) 携程的技术演进之路 篱笆网技术架构性能演进 (视频+PPT)

Python之Unittest和Requests库详解

China☆狼群 提交于 2021-02-20 17:47:44
1.按类来执行 import unittest class f1(unittest.TestCase): def setUp(self): pass def tearDown(self): pass def test_001(self): pass def test_002(self): pass ''' 按类来执行 ''' if __name__ == ' __main__ ' : suite = unittest.TestSuite(unittest.makeSuite(f1)) unittest.TextTestRunner(verbosity = 2 ).run(suite) 2.加载测试模块来执行 import unittest from selenium import webdriver class BaiduLink(unittest.TestCase): def setUp(self): self.driver = webdriver.Chrome() self.driver.maximize_window() self.driver.implicitly_wait( 30 ) self.driver. get (url= " htttp://www.baidu.com " ) def tearDown(self): self.driver.quit() def

Java实现树的遍历以及打印(递归,非递归)

烈酒焚心 提交于 2021-02-20 17:35:08
1 import java.util.LinkedList; 2 import java.util.Stack; 3 4 public class BinarySearchTree1<E extends Comparable <? super E>> { 5 6 private static class BinaryNode<E> { 7 8 E element; 9 BinaryNode<E> left; 10 BinaryNode<E> right; 11 12 BinaryNode(E theElement) { 13 this (theElement, null , null ); 14 } 15 16 BinaryNode(E theElement, BinaryNode<E> lt, BinaryNode<E> rt) { 17 element = theElement; 18 left = lt; 19 right = rt; 20 } 21 22 } 23 24 private BinaryNode<E> root; 25 public void insert(E x){ 26 root = insert(x,root); 27 } 28 29 private BinaryNode<E> insert(E x, BinaryNode<E> t){ 30 31 if

Spring入门详解及案例

老子叫甜甜 提交于 2021-02-20 17:23:16
Spring浅入浅出——不吹牛逼不装逼 前言: 今天决定要开始总结框架了,虽然以前总结过两篇,但是思维是变化的,而且也没有什么规定说总结过的东西就不能再总结了,是吧。这次总结我命名为浅入浅出,主要在于理解框架核心,轻松愉快使用框架。 核心思想 我们都学了面向对象,在生活中,当人们需要一件东西时,第一反应就是找东西,例如想吃面包,现在有两种情况,第一种是没有面包店,第二种是有面包店。第一种情况就是我们之前一直遇到的情况,在没有面包店的情况下,最直观的做法可能就是你按照自己的口味制作面包,也就是一个面包需要主动制作,谁想吃了就自己New。而我主要说的是第二种情况,就是有面包店,你想吃面包的时候找到面包店,把自己的口味告诉店家,店家就可以给你做符合你口味的面包了。注意:你并没有制作面包,而是由店家制作,但是完全符合你的口味。 这是一个很生活的例子,大家都明白,但这里包含了Spring中很重要的思想——控制反转,就是把制作面包的主动权交给店家,面包就是对象,店家相当于一个大容器,你想要什么对象,就让大容器去给你生产,这就是控制反转思想。 再详细点,当某个Java对象(调用者,例如你)需要调用另一个Java对象(被调用者,即被依赖对象,例如面包)时,在传统编程模式下,调用者通常会采用“New 被调用者”的代码方式来创建对象(例如你自己制作面包)。这种方式会增加调用者与被调用者之间的耦合性

Linux-部署-Django

拟墨画扇 提交于 2021-02-20 17:21:27
Linux-部署-Django-项目过程与问题总结 优才网 2017-04-12 18:00 本篇主要用于记录部署 Django 项目所有踩过的坑。 最近学习 Django 框架开发,将项目部署到 Linux 服务器上时遇到了很多坑,在此整理一下以作备忘,同时希望对有需要的同学有所帮助。 从 0 开始,在 Linux 上部署 Django 项目共有如下几步: 1. 安装 Python3.5 2. 安装 Apache2.4 3. 安装 wsgi 4. 配置数据库和静态文件 5. 配置 Apache 6. 处理权限问题 下面一步步来进行详细介绍: 安装 Python3.5 1.安装编译环境 2. 下载编译 Python3.5 源码包 prefix 指明了 Python3.5 的安装目录,后面的 --enable-shared LDFLAGS="-Wl,-rpath=/usr/local/python3" 选项保证了可以正常使用共享库,否则在编译安装后可能会出现以下错误: 我自己在完成后执行 Python3.5 的命令时就遇到了。查找了很多的解决方案,上面这种在编译时进行LDFLAGS配置应该是最简洁有效的方式。 另外这个错误在使用wsgi时也可能会遇到,其官方文档还特地针对该问题作了【介绍】(http://modwsgi.readthedocs.io/en/develop/user

Linux下部署Django项目

百般思念 提交于 2021-02-20 17:21:08
目录 安装python3.X环境 安装部署开启django 由于Linux系统默认自带的是2.X环境,所以我们需要去安装3.X环境的python。 安装python3.X环境 1、使用下面的命令下载Python-3.6.3.tar.xz的安装包,对应版本可以去 https://www.python.org/ftp/python/ 对应起来: wget https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tar.xz 2、接着解压这个压缩包,命令如下: tar xvf Python-3.6.3.tar.xz 3、接着编译安装,进入解压后的目录,执行底下的一个shell脚本configure进行检查,接着编译安装,编译安装过程有点慢,命令如下: cd Python-3.6.3 ./configure make && make install 5、之后输入命令python3,发现安装成功。 安装部署开启django pip3 install Django==2.0.3 然后就可以使用命令创建项目了。 进入python3的安装目录,在该目录下会有django-admin.py文件,我们创建test的项目 python3 django-admin startproject test 然后我们进行test项目目录下,创建 App应用。

pythonic风格代码有什么好处?附12个代码实例

淺唱寂寞╮ 提交于 2021-02-20 17:20:09
pythonic是开发者们在写python代码过程中总结的编程习惯,崇尚优雅、明确、简单。就好比中文笔画,有先后顺序,最符合文字书写的习惯。 因为是习惯,不是江湖规则,所以你大可不必遵守pythonic,但如果你想成为python高手,最好是养成这个习惯。 对比其他语言我们能直观看出pythonic风格的特点,比如写一个简单循环。 在Java里这样的: for index in (index; index < items.length ; index++) { item = items[index]; ... now do something } 尝试用python来写循环,则非常简洁易懂: for item in items: item.perform_action() 想要更加pythonic,用生成器表达式来写循环: (item.some_attribute for item in items) 这样的写法其实已经接近自然语言,一眼能看出代码意思。 如果你在Python IDE中输入 import python ,则会看到下面一首诗: 美胜于丑,简胜于繁,这就是Python哲学。 有一本书《effctive python》里面讲到蛮多pythonic的写法,下面列出一些常见的代码。 「1、用列表推导式来取代map、filter」 map

解决win8蓝牙脱机方法

送分小仙女□ 提交于 2021-02-20 17:19:20
原因分析: Win8正常连接后,如果没有双击打开进行传输文件,会显示脱机状态,应该是Win8的一个特殊功能,类似节电,通过双击打开进行传输后正常。 解决方法: 1、连接过程会弹出显示,自动添加设备驱动程序,完成添加后,在设备管理器中会显示此设备: 2、如正常显示出驱动,说明驱动加载成功了,此时如果没有传输文件,查看此时蓝牙设备会显示为脱机。 3、到控制面板,切换到大图标显示后,选择设备和打印机,双击连接的蓝牙设备或者右击选择服务。 4、弹出这个对话框后就可以正常发送文件了,此时再看蓝牙设备会变成正常状态。 5、若上述方法无效果,可以尝试删除蓝牙设备,重新连接测试,必要时可以在设备管理器中扫描硬件改动,连接正常后,会在蓝牙下显示连接的蓝牙设备的名称,多次测试后,这个方法可以进行尝试,避免直接卸载重新安装驱动,也可以进行系统还原解决。阳光系统 010dh.com/ 来源: oschina 链接: https://my.oschina.net/u/4844732/blog/4957725

Redis持久化

自作多情 提交于 2021-02-20 17:16:31
Redis持久化 RDB持久化方式 RDB持久化方式能够在指定的时间间隔能对你的数据进行快照存储. RDB的优点 RDB是一个非常紧凑的单一文件,方便备份与传输; RDB在持久化的时候只需要fork出一个子进程,接下来的持久化工作由子进程完成,因此能最大限度得优化redis性能; 与AOF相比,在恢复大的数据集的时候,RDB方式会更快一些; RDB的缺点 由于其工作方式是定时fork一个子进程完成持久化,因此在其两次工作的间隔中间的数据会因掉电等原因意外停止工作而丢失 RDB操作全量数据,当数据量较大时,则开销也会较大 使用RDB 配置文件(RDB部分) #save 间隔秒 操作数 #使用 save "" 禁用RDB #900秒内有一次操作触发RDB save 900 1 #300秒内有10次操作触发RDB save 300 10 #60秒内10000次操作触发RDB save 60 10000 #RDB异常时是否暂停接受写操作,默认是 stop-writes-on-bgsave-error yes #RDB是否开启压缩,默认是 rdbcompression yes #RDB是否开启CRC64校验位 rdbchecksum yes #RDB快照文件名称 dbfilename dump.rdb #没启用持久化的Redis实例是否删除其RDB文件,默认否 rdb-del-sync