摘要: 聚簇索引 InnoDB使用的是聚簇索引 将数据与主键索引放在了一起,索引的叶子节点保存了行数据,找到了主键索引,即找到了行数据。 辅助索引记录了主键的位置,所以查询where name= xxx 时,先找辅助索引树,找到主键位置,然后找数据树,找到数据行 聚簇索引的数据的物理存放顺序与索引顺序是一致 阅读全文
posted @ 2020-12-09 20:34 rm-rf* 阅读(156) 评论(0) 推荐(0)
摘要: def maopao(data: list): """ 两两比较 :param data: :return: """ length = len(data) for i in range(length - 1): flag = True for j in range(length - 1 - i): 阅读全文
posted @ 2020-12-09 18:28 rm-rf* 阅读(105) 评论(0) 推荐(0)
摘要: 生成access token 点击头像->机器人管理->自定义(通过webhook接入自定义服务)->添加->选择一个安全配置 得到一个webhook地址,https://oapi.dingtalk.com/robot/send?access_token=xxx 发送消息 def send_mess 阅读全文
posted @ 2020-12-09 18:27 rm-rf* 阅读(658) 评论(0) 推荐(0)
摘要: from PIL import Image, ImageDraw, ImageFont class DrawPhotoWithMessage: def __init__(self, img_path, save_path, font_size=5, message="我喜欢你!", font='my 阅读全文
posted @ 2020-12-09 18:17 rm-rf* 阅读(175) 评论(0) 推荐(0)
摘要: 由于谷歌浏览器80以后版本采用了新的加密方式,所以记录在这里 # -*- coding:utf-8 -*- import os import json import base64 import sqlite3 from win32crypt import CryptUnprotectData fro 阅读全文
posted @ 2020-12-09 18:14 rm-rf* 阅读(706) 评论(0) 推荐(0)
摘要: 方法一 from datetime import datetime from pytz import timezone cst_tz = timezone('Asia/Shanghai') utc_tz = timezone('UTC') pst_tz = timezone('America/Los 阅读全文
posted @ 2020-12-09 18:10 rm-rf* 阅读(618) 评论(0) 推荐(0)
摘要: 业务场景: 如果前端直接上传文件到OSS,势必要暴露令牌,无法精准控制上传内容等,使用临时令牌即可解决这个问题. 先去阿里云后台设置好token,角色,地区等 pom.xml <dependency> <groupId>com.aliyun.oss</groupId> <artifactId>ali 阅读全文
posted @ 2020-12-09 17:58 rm-rf* 阅读(881) 评论(0) 推荐(0)
摘要: 应用场景举例: 当不同身份的用户请求一个接口时,用来校验用户某些身份,这样可以对单个字段数据进行精确权限控制,具体看代码注释 自定义注解 /** * 对比请求的用户身份是否符合 * @author liuyalong * @date 2020/9/25 16:03 */ @Target(Elemen 阅读全文
posted @ 2020-12-09 17:25 rm-rf* 阅读(972) 评论(0) 推荐(0)
摘要: 使用Feign时,为了不写重复代码,需要写feign公共接口方便调用,这时候需要注意以下问题,以发邮件为例 定义公共接口 /** * @author liuyalong * @date 2020/10/12 17:42 * 定义Feign公用接口,注意 [不能] 在类上写@RequestMappin 阅读全文
posted @ 2020-12-09 16:47 rm-rf* 阅读(286) 评论(0) 推荐(0)
摘要: 浅拷贝只拷贝对象本身, 对象(如 list, dict)中的子元素不会被拷贝,而是依旧引用原对象。深拷贝会将对象即其中的包含的子元素全部拷贝一份。 from copy import copy, deepcopy a = [1, 2, 3] b = copy(a) c = deepcopy(a) 阅读全文
posted @ 2020-12-09 15:57 rm-rf* 阅读(75) 评论(0) 推荐(0)
摘要: vue环境搭建过程 安装node环境 node -v 命令行显示v12.19.0,这样就代表安装完成 由于在国内使用npm是非常慢的,所以在这里我们推荐使用淘宝npm镜像,使用淘宝的cnpm命令管理工具可以代替默认的npm管理工具:npm install -g cnpm --registry=htt 阅读全文
posted @ 2020-12-09 15:56 rm-rf* 阅读(213) 评论(0) 推荐(0)
摘要: 导出所有数据库 mysqldump -uroot -proot --all-databases >/tmp/all.sql 导出db1、db2两个数据库的所有数据 mysqldump -uroot -proot --databases db1 db2 >/tmp/user.sql 导出db1中的a1 阅读全文
posted @ 2020-12-09 15:55 rm-rf* 阅读(116) 评论(0) 推荐(0)
摘要: pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance 阅读全文
posted @ 2020-12-09 15:53 rm-rf* 阅读(961) 评论(0) 推荐(0)
摘要: VARCHAR与CHAR字符型数据的差异 char(n)和varchar(n)中括号中n代表字符的个数,并不代表字节个数,所以当使用了中文的时候(UTF8)意味着可以插入m个中文,但是实际会占用m3个字节,m∗3<=255,m∗3<=65535。使用 utf8mb4的话插入m个中文,会占用m4个字节 阅读全文
posted @ 2020-12-09 15:52 rm-rf* 阅读(150) 评论(0) 推荐(0)
摘要: drop直接删掉表; truncate删除的是表中的数据,再插入数据时自增长的数据id又重新从1开始; delete删除表中数据,可以在后面添加where字句。 DELETE语句执行删除操作的过程是每次从表中删除一行,并且同时将该行的删除操作作为事务记录在日志中保存以便进行进行回滚操作。TRUNCA 阅读全文
posted @ 2020-12-09 15:50 rm-rf* 阅读(293) 评论(0) 推荐(0)
摘要: 获取属性 __ getattr __(self, name) 定义当用户试图获取一个不存在的属性时的行为 __ getattribute __(self, name) 定义当该类的属性被访问时的行为 (获取属性一定会走到这个方法,获取不到属性去访问 __ getattr __) __ setattr 阅读全文
posted @ 2020-12-09 15:49 rm-rf* 阅读(147) 评论(0) 推荐(0)
摘要: MySQL 事务属性 事务是由一组SQL语句组成的逻辑处理单元,事务具有ACID属性。 原子性(Atomicity):事务是一个原子操作单元。在当时原子是不可分割的最小元素,其对数据的修改,要么全部成功,要么全部都不成功。 一致性(Consistent):事务开始到结束的时间段内,数据都必须保持一致 阅读全文
posted @ 2020-12-09 15:47 rm-rf* 阅读(167) 评论(0) 推荐(0)
摘要: Docker 网络 Docker容器运行的时候有host、bridge、none三种网络可供配置。 默认是bridge,即桥接网络,以桥接模式连接到宿主机;host是宿主网络,即与宿主机共用网络;none则表示无网络,容器将无法联网。 当容器使用host网络时,容器与宿主共用网络,这样就能在容器中访 阅读全文
posted @ 2020-12-09 15:46 rm-rf* 阅读(1238) 评论(0) 推荐(0)
摘要: pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance 阅读全文
posted @ 2020-12-09 15:44 rm-rf* 阅读(362) 评论(0) 推荐(0)
摘要: Oauth2+Gateway+springcloud+springcloud-alibaba-nacos+jwt ,使用公钥私钥加密实现单点登录(OSS) github地址点这里 注意事项 GET: http://localhost:9090/oauth/authorize?client_id=cl 阅读全文
posted @ 2020-12-09 15:43 rm-rf* 阅读(665) 评论(0) 推荐(0)
摘要: 添加依赖 <dependencies> <!-- jwt --> <dependency> <groupId>io.jsonwebtoken</groupId> <artifactId>jjwt</artifactId> <version>0.9.0</version> </dependency> 阅读全文
posted @ 2020-12-09 15:42 rm-rf* 阅读(334) 评论(0) 推荐(0)
摘要: 创建用户自定义bridge docker network create my-net # 创建了一个名为"my-net"的网络 将容器加入到"my-net"中 docker network connect my-net 容器名 docker network connect my-net mysql5 阅读全文
posted @ 2020-12-09 15:40 rm-rf* 阅读(278) 评论(0) 推荐(0)
摘要: windows创建服务可以使用nssm nssm install servername server //创建servername服务 nssm start servername //启动服务 nssm stop servername //暂停服务 nssm restart servername / 阅读全文
posted @ 2020-12-09 15:38 rm-rf* 阅读(437) 评论(0) 推荐(0)
摘要: 配置类 package top.yalong; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.spri 阅读全文
posted @ 2020-12-09 15:37 rm-rf* 阅读(91) 评论(0) 推荐(0)
摘要: springboot整合redis配置类 package com.yalong.config; import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.Proper 阅读全文
posted @ 2020-12-09 15:35 rm-rf* 阅读(320) 评论(0) 推荐(0)
摘要: springboot的项目中,如果基础模块引入了数据库相关依赖,当前模块又不需要数据库的相关东西, 需要在启动类上加上 @SpringBootApplication(exclude={DateSourceAutoConfiguration.clsss}) 阅读全文
posted @ 2020-12-09 15:34 rm-rf* 阅读(216) 评论(0) 推荐(0)
摘要: 网络问题 拉取镜像时,如果出现网络问题,,需要修改dns vi /etc/resolv.conf 添加nameserver 8.8.8.8 用docker-compose安装单机版 git clone https://github.com/deviantony/docker-elk.git dock 阅读全文
posted @ 2020-12-09 15:33 rm-rf* 阅读(120) 评论(0) 推荐(0)
摘要: OpenResty&Canal OpenResty 提供缓存功能 封装了Nginx,并且提供了Lua扩展,大大提升了Nginx的并发处理能力10k~1000k Nginx限流 1.控制速率 2.控制并发数 Canal 用来监控数据库中数据的变化,从而获得新增数据,或者修改数据 监听到变化后,就可以对 阅读全文
posted @ 2020-12-09 15:31 rm-rf* 阅读(85) 评论(0) 推荐(0)
摘要: 创建用户语法格式 >use admin >db.createUser( { user:'user', pwd :'123', customData:{"desc":"This user is for administrators"}, roles:[ { role:'userAdminAnyData 阅读全文
posted @ 2020-12-09 15:28 rm-rf* 阅读(511) 评论(0) 推荐(0)
摘要: # Docker 安装 Redis 需要注意的地方 ### 拉取镜像 > docker pull redis - 可以使用redis:xxx xxx为版本号,不写默认是latest ### 启动容器 > 无配置文件无密码: docker run -itd --name redis63790 -p 6 阅读全文
posted @ 2020-12-09 15:25 rm-rf* 阅读(326) 评论(0) 推荐(0)
摘要: 安装mysql5.7,并开启binlog 安装mysql 开启binlog find / -name my.cnf 找到这个文件 添加几行 [mysqld] log-bin=mysql-bin # 开启 binlog binlog-format=ROW # 选择 ROW 模式 server_id=1 阅读全文
posted @ 2020-12-09 15:19 rm-rf* 阅读(537) 评论(0) 推荐(0)
摘要: 安装Mysql 拉取镜像 docker pull mysql:latest 运行容器 docker run -itd --name mysql -p 33061:3306 -v D:/mysql/log:/var/log/mysql -v D:/mysql/conf:/etc/mysql/conf. 阅读全文
posted @ 2020-12-09 15:07 rm-rf* 阅读(100) 评论(0) 推荐(0)
摘要: # java文件操作 ![](https://img2020.cnblogs.com/blog/2241824/202012/2241824-20201215105204641-1218024601.png) public class Something { public static void m 阅读全文
posted @ 2020-12-09 15:02 rm-rf* 阅读(110) 评论(0) 推荐(0)
摘要: python协程需要注意的点 都在注释里 # -*- coding: utf-8 -*- import asyncio import time from geeker import schedule async def first(): await asyncio.sleep(1) return " 阅读全文
posted @ 2020-12-09 15:01 rm-rf* 阅读(89) 评论(0) 推荐(0)
摘要: SnowFlakeldWorker java /** * Twitter_Snowflake * SnowFlake的结构如下(每部分用-分开): * 0 - 0000000000 0000000000 0000000000 0000000000 0 - 00000 - 00000 - 000000 阅读全文
posted @ 2020-12-09 15:00 rm-rf* 阅读(111) 评论(0) 推荐(0)
摘要: gitignore文件 python .gitignore .idea/ *.bak test* logs/ *.log # *.txt # Byte-compiled / optimized / DLL files __pycache__/ *.py[cod] *$py.class # C ext 阅读全文
posted @ 2020-12-09 14:58 rm-rf* 阅读(74) 评论(0) 推荐(0)
摘要: java数组的引用 public class firstClass { public static void main(String[] args) { //此时开辟内存,存放 1 2 3 int[] names = {1, 2, 3}; // 此时开辟内存s(常量),赋值为2,即(names[1] 阅读全文
posted @ 2020-12-09 14:56 rm-rf* 阅读(220) 评论(0) 推荐(0)
摘要: 上传python代码到pypi 去pypi官网注册账号 在项目中添加setup.py # coding = utf-8 from setuptools import setup, find_packages from geeker import __Version__ with open("READ 阅读全文
posted @ 2020-12-09 14:55 rm-rf* 阅读(91) 评论(0) 推荐(0)
摘要: java 和 python时间格式化区别 月份,java是M,python是m 分钟,java是m,python是M 年份,必须用yyyy,表示当天所在的年份,如果用YYYY,则表示当前周所在年份 java: public class firstClass { public static void 阅读全文
posted @ 2020-12-09 14:52 rm-rf* 阅读(266) 评论(0) 推荐(0)
摘要: java 创建线程池 线程池都是通过线程池工厂创建,再调用线程池中的方法获取线程,再通过线程去执行任务方法。 Executors:线程池创建工厂类 public static ExecutorServicenewFixedThreadPool(int nThreads):返回线程池对象 Execut 阅读全文
posted @ 2020-12-09 14:49 rm-rf* 阅读(80) 评论(0) 推荐(0)
摘要: java循环执行任务 Timer 抛出异常缺陷,如果 TimerTask 抛出 RuntimeException,Timer 会终止所有任务的运行 Timer 管理时间延迟缺陷,Timer 在执行定时任务时只会创建一个线程任务,如果存在多个线程,若其中某个线程因为某种原因而导致线程任务执行时间过长, 阅读全文
posted @ 2020-12-09 14:47 rm-rf* 阅读(125) 评论(0) 推荐(0)
摘要: 经常读错的常用单词 App [ˈæp] 念阿破(与爱破也比较像,参见音标),不能把三个字母拆开念成A P P。 null [nʌl] 念 闹 jpg [ˈdʒeɪpɛɡ] 念 zhei派个 不念 勾屁记 WiFi [ˈwaɪfaɪ] 念 歪fai mobile [moˈbil] [ˈmoˌbil] 阅读全文
posted @ 2020-12-09 14:44 rm-rf* 阅读(854) 评论(0) 推荐(0)
摘要: #windows启动mongo服务 建议使用docker,方便又快捷,可以查看我的其他文章有介绍 创建好日志文件夹后执行以下命令 mongod.exe --logpath "C:\mongodb\data\log\mongodb.log" --logappend --dbpath "C:\mongo 阅读全文
posted @ 2020-12-09 14:41 rm-rf* 阅读(75) 评论(0) 推荐(0)
摘要: attrib命令用来显示或更改文件属性。 ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [[drive:] [path] filename] [/S [/D]] 【+】 设置属性。 【-】清除属性。 R 只读文件属性。 A 存档文件属性。 S 系统文 阅读全文
posted @ 2020-12-09 14:39 rm-rf* 阅读(277) 评论(0) 推荐(0)
摘要: pymysql的使用bug 每次执行sql语句(增删改查)必须commit提交 当重复执行相同slq语句时,如果不commit,fetchall的结果会是上次执行的结果 或者打开pymysql的自动提交(db.autocommit(True)),但是打开自动提交后不支持事务操作。 阅读全文
posted @ 2020-12-09 14:37 rm-rf* 阅读(111) 评论(0) 推荐(0)
摘要: linux后台运行程序 nohup python3 test.py >output 2>&1 & 结果输出到output文件 nohup java -jar xxx.jar >/dev/null 2>&1 & 忽略结果 参数解释 用途:不挂断地运行命令。 语法:nohup Command [ Arg 阅读全文
posted @ 2020-12-09 14:35 rm-rf* 阅读(589) 评论(0) 推荐(0)
摘要: 最大几个数和最小几个数 import heapq a = [7, 5, 3, 4, 8, 6, 0] cc = heapq.nsmallest(2, a) #最小的两个数 dd = heapq.nlargest(3, a) #最大的三个数 print(cc) # [1, 2] print(dd) # 阅读全文
posted @ 2020-12-09 14:32 rm-rf* 阅读(591) 评论(0) 推荐(0)
摘要: 命名切片 c = slice(2, 5) a = [1, 2, 3, 4, 5, 6, 7] print(a[c]) 阅读全文
posted @ 2020-12-09 14:30 rm-rf* 阅读(109) 评论(0) 推荐(0)
摘要: git相关命令 基本操作 git init git add xxx git commit -m "first commit" git tag -a V1.0 -m '我的标签' git remote add origin git@github.com:xxx/spider.git 建立远程仓库连接 阅读全文
posted @ 2020-12-09 14:28 rm-rf* 阅读(227) 评论(0) 推荐(0)
摘要: python解析命令行参数 import click @click.command() # 使函数解析命令行 @click.option("--id", help="用户名") # 命令行添加参数 def delete(id): """ 删除用户 :param id: :return: """ cl 阅读全文
posted @ 2020-12-09 14:27 rm-rf* 阅读(184) 评论(0) 推荐(0)
摘要: 数据可视化 使用pyecharts API文档 import math from pyecharts import options as opts from pyecharts.charts import Surface3D from pyecharts.globals import ThemeTy 阅读全文
posted @ 2020-12-09 14:26 rm-rf* 阅读(175) 评论(0) 推荐(0)
摘要: 为什么不能用可变对象作为默认参数的值 看一个例子 def abc(a, b): b.append(a) print(b) return b if __name__ == '__main__': abc(1, []) abc(2, []) abc(3, []) 结果和预期的一样: [1] [2] [3 阅读全文
posted @ 2020-12-09 14:25 rm-rf* 阅读(172) 评论(0) 推荐(0)
摘要: Python 表达式 i += x 与 i = i + x 等价吗? 看个例子 a = [1, 2, 3] b = a # 写法一 b += [4] # 写法二 # b = b + [4] print(id(a), a) print(id(b), b) 两种不同的写法,结果不一致 写法一结果: 23 阅读全文
posted @ 2020-12-09 14:24 rm-rf* 阅读(148) 评论(0) 推荐(0)
摘要: Python的数据缓存 python 的内置数据类型,数值型,字符串,列表,字典等都会有自己的对象缓存池, 这样做的好处是,避免了频繁的申请内存,释放内存,这样会极大的降低应用程序的运行速度,还会造成大量的内存碎片。因此提供对象缓存机制是非常重要的。 在Python中,字符串和整型对象都是不可变的( 阅读全文
posted @ 2020-12-09 14:23 rm-rf* 阅读(1553) 评论(2) 推荐(0)
摘要: 安装scrapy centos 7 安装scrapy报错说找不到scrapy需要的Twisted13.0以上版本? Collecting Twisted>=13.1.0 (from Scrapy) Could not find a version that satisfies the require 阅读全文
posted @ 2020-12-09 14:22 rm-rf* 阅读(92) 评论(0) 推荐(0)
摘要: 异步调用(坑) from concurrent.futures import ThreadPoolExecutor executor = ThreadPoolExecutor(5) def review(): '''省略过程''' #异步提交任务 executor.submit(call_crawl 阅读全文
posted @ 2020-12-09 14:21 rm-rf* 阅读(103) 评论(0) 推荐(0)
摘要: linux系统添加用户 增加用户: useradd -d /usr/username -m username 为用户增加密码: passwd username 新建工作组: groupadd groupname 将用户添加进工作组: usermod -G groupname username 删除用 阅读全文
posted @ 2020-12-09 14:20 rm-rf* 阅读(120) 评论(0) 推荐(0)
摘要: Scrapy+Scrapyd+Scrapydweb实现爬虫可视化 Scrapyd是一个服务,用来运行scrapy爬虫的 它允许你部署你的scrapy项目以及通过HTTP JSON的方式控制你的爬虫 官方文档:http://scrapyd.readthedocs.org/ 安装scrapyd pip 阅读全文
posted @ 2020-12-09 14:19 rm-rf* 阅读(547) 评论(0) 推荐(0)
摘要: Gunicorn配置 # -*- coding: utf-8 -*- import os from multiprocessing import cpu_count bind = "127.0.0.1:9000" daemon = True workers = cpu_count() * 2 wor 阅读全文
posted @ 2020-12-09 14:17 rm-rf* 阅读(202) 评论(0) 推荐(0)
摘要: Editor.md解决跨域上传的问题 编辑 editormd\plugins\image-dialog\image-dialog.js 替换以下代码片段 if (settings.crossDomainUpload) { action += "&callback=" + settings.uploa 阅读全文
posted @ 2020-12-09 14:16 rm-rf* 阅读(343) 评论(0) 推荐(0)
摘要: CentOS安装python3.6 编译时要提前装好gcc编译器和zlib zlib-devel yum install -y gcc zlib zlib-devel ###1、下载Python安装包 wget https://www.python.org/ftp/python/3.6.0/Pyth 阅读全文
posted @ 2020-12-09 14:10 rm-rf* 阅读(172) 评论(0) 推荐(0)
摘要: Nginx的安装及相关配置 Nginx 是 C语言 开发,建议在 Linux 上运行,当然,也可以安装 Windows 版本,本篇则使用 CentOS 7 作为安装环境。 一. gcc 安装 安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境,如果没有 gcc 环境,则需要安装 阅读全文
posted @ 2020-12-09 14:07 rm-rf* 阅读(164) 评论(0) 推荐(0)
摘要: #MariaDB的安装及相关配置 安装 yum -y install mariadb mariadb-server 安装完成MariaDB,首先启动MariaDB systemctl start mariadb 设置开机启动 systemctl enable mariadb ###登录及密码 mys 阅读全文
posted @ 2020-12-09 14:05 rm-rf* 阅读(187) 评论(0) 推荐(0)