- 博客(163)
- 资源 (3)
- 问答 (1)
- 收藏
- 关注
原创 Gevent 简单体验
当一个greenlet遇到IO操作时,比如访问网络,就自动切换到其他的greenlet,等到IO操作完成,再在适当的时候切换回来继续执行。由于IO操作非常耗时,经常使程序处于等待状态,有了gevent为我们自动切换协程,就保证总有greenlet在运行,而不是等待IO。Gevent 是一个基于 greenlet 的 Python 的并发框架,以微线程 greenlet 为核心,使用了 epoll 事件监听机制以及诸多其他优化而变得高效。测试流程:使用和不使用gevent 访问20次百度和耗时时间。
2022-09-22 14:04:25
375
原创 mac zsh git 自动补全
自动补全的方法参考 mac zsh设置git的自动补全和忽略大小写_泰勒今天不想展开的博客-CSDN博客 记录一下mac里使用zsh时如何能对git相关指令也能进行tab键自动补全。通过brew 安装 zsh-completionUser% brew install zsh-completion修改.zshrc文件,如果这个文件没有,就新建一个,放在用户目录下vi ~/.zshrc添加以下内容:if type brew &>/dev/null; then FPATH=$(brew --
2022-03-07 21:41:38
1422
原创 pyechars +phantomsjs生成图片产生的tmp的html文件
环境 ubuntu pyecharts==0.5.11 pyecharts-snapshot==0.1.10 如果直接用xx.render(''xx.png') xx.render(''xx.png')做法是在tmp文件夹下面生成临时的html文件,在通过phantomjs渲染成图片。 那么会在执行的位置生成图片,但是同时会在/tmp文件夹下面生成html文件,但是这个文件命名不一定是进程安全的。 那么如果自己制定生成的文件路径和名字呢? 拆解xx.render(''xx.png')的操作 .
2021-12-23 16:35:31
1064
原创 数据结构摘要
labuladong的算法小抄 ⽐如说「队列」、「栈」这两种数据结构既可以使⽤链表也可以使⽤数组实 现。⽤数组实现,就要处理扩容缩容的问题;⽤链表实现,没有这个问题, 但需要更多的内存空间存储节点指针。 「图」的两种表⽰⽅法,邻接表就是链表,邻接矩阵就是⼆维数组。邻接矩 阵判断连通性迅速,并可以进⾏矩阵运算解决⼀些问题,但是如果图⽐较稀 疏的话很耗费空间。邻接表⽐较节省空间,但是很多操作的效率上肯定⽐不 过邻接矩阵。 「散列表」就是通过散列函数把键映射到⼀个⼤数组⾥。⽽且对于解决散列 冲突的⽅法,
2021-12-15 23:02:56
812
原创 值得一看的技术链接
JAVA Python 数据库 How Does a Database Work? | Let’s Build a Simple DatabaseWriting a sqlite clone from scratch in Chttps://cstack.github.io/db_tutorial/ 网络 算法
2021-12-14 17:40:44
1212
原创 python os.mknod permission权限的一个注意点
背景: os.mknod("1.txt") 创建一个空的文件夹。在linux上面是正常的,而在mac上面报了permission权限的问题。简单查阅了,os.mknod需要其他特殊的权限,root之类。 为了统一性,把创建空文件的代码改成了 open("1.txt", 'a').close() ...
2021-11-26 16:25:19
1454
原创 Dockerfile docker-compose.yml 配置容器时间和宿主机时间一致
Dockerfile 文件配置参数 ENV TZ "Asia/Shanghai" RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime RUN echo $TZ > /etc/timezone docker-compose.yml 配置参数 volumes: - /etc/localtime:/etc/localtime:ro - /etc/timezone:/etc/timezone:ro
2021-11-26 10:45:36
3464
原创 python json字符串转class对象
import json def praseObject(jsonStr, Class): """class对象需要空参构造方法""" data = json.loads(jsonStr) result = Class() result.__dict__ = data return result class Student(object): name= '' age = 0 def __init__(self): su.
2021-11-24 18:00:30
3084
原创 oracle 查杀死锁的语句
select distinct 'alter system kill session ''' || t2.sid || ',' || t2.serial# || ''' immediate;' from gv$locked_object t1, gv$session t2, dba_objects t3 where t1.session_id = t2.sid and t1.object_id = t3.object_id;
2021-11-19 15:22:34
978
原创 python nohup print 无日志输出
同样的代码 直接运行会有日志。 通过nohup后台运行无日志。需要刷新输出 print(xx,flush=True)
2021-11-12 11:54:27
1612
原创 自己常用的java8 用法
## 集合对象里面取出每个对象的某个值 ` System.out.println(employeeInfoList.stream().map(employeeInfo::getName).collect(Collectors.toList()));` ## 取出多个值。便于简洁返回 ```java List<Map> resultNew =new ArrayList<>(); result.stream().forEach(s-> { ...
2021-04-27 16:33:47
188
原创 修改源码的几种取巧的方式
# 修改源码的几种取巧的方式 ## 第一种 导入源码的方式 直接导入源码,比如直接导入mybatis的源码在项目里面运行 ## 第二种 复制或者继承此类 比如hashmap类。复制或者自己写一个MyHashmap继承hashmap。重写需要的方法 ```java public class MyHashMap extends HashMap { @Override public Object put(Object key, Object value) { ...
2021-04-27 16:31:22
2588
原创 oracle 存储过程 hello world
oracle 存储过程 作为个人学习存储的一个记录,如果你是一个老手,只是忘记了部分关键词或者语法,那么本章节不适合你。如果你是第一次学习存储过程,那么下面的内容可以花几分钟看下。 create procedure TEST_FANGYUAN_TEST as NAME VARCHAR2(100); begin NAME := 'hello world'; dbms_output.put_line(NAME); ...
2021-04-27 16:28:48
208
原创 IDEA导入svn项目报Can‘t use Subversion command line client:svn
报这个错误的原因就是svn没有装 command line这个组件。如果运气好,直接装上就可以用了。 idea2020+win10背景 1 控制面板-更改程序 右键svn。点击更改 2 选择next - modify-选择command line client tools。 之后就一直next ...
2020-12-22 11:49:29
683
2
原创 简单的代理-cglib代理
1 一个简单的类 public class Dog { public void sayHi(String name) { System.out.println("汪汪------"+name); } } 2 实现MethodInterceptor接口完成代理 public class CglibDemo implements MethodInterceptor { private Object target; public O..
2020-09-18 16:16:20
188
原创 简单的代理-jdk代理
1 申明一个接口 public interface JdkProxyDemo{ void sayHi(String name); } 2 实现这个接口 public class JdkProxyDemoImpl implements JdkProxyDemo { @Override public void sayHi(String name) { System.out.println("hello " + name); } } 3 实现.
2020-09-18 14:53:07
158
原创 简单的反射
public class ReflectService { public void sayHi(String name){ System.out.println("hello"+ name); } public static void main(String[] args) throws Exception{ //反射对象 Class<?> clazz = Class.forName("com.fydemo.de.
2020-09-18 14:13:56
309
原创 redis深度历险06-key和scan
redis深度历险06-keys和scan keys keys * --获得所有的key keys f* --获得f开头的key keys f*f --获得f开头,f结尾的key 此方法的缺点 没有分页 复杂度o(n),造成卡顿 scan --游标遍历 复杂度o(n),但是通过游标分布,不会阻塞。 提供limit参数 提供模式匹配的方式 服务器不需要保存游标状态,游标的唯一状态就是scan返回给客户端的游标整数 返回的结果可能重复,需要客户端去重 遍历过程中如果数据修改,改动后的
2020-07-27 22:44:15
244
原创 redis深度历险05-GeoHash
redis深度历险05-GeoHash Geo基本用法 geoadd-增加 geoadd指令携带集合名称以及多个经纬度名称三元组 geoadd company 116.48105 39.996794 xiaomi geodist -距离 geodist 计算两个元素之间的距离 geodist company xiaomi huawei km geopos -元素位置 geopos 可以获取任意元素的经无敌坐标 geopos company xiaomi geohash -获得元素的hash值
2020-07-27 22:43:45
193
原创 redis深度历险04-hyperLogLog
Redis深度历险04-HyperLogLog HyperLogLog的作用类似set集合,去重和计数的作用。HyperLogLog牺牲约1%的准确性,大大提高了空间和时间的利用率 pfadd 往集合里面添加数据,且自动去重 pfcount 统计集合里面元素的个数 pfadd listA 1 pfadd listA 2 pfadd listA 1 pfcount listA pfmerge 用于把对个pf对象加在一起形成一个新的pf值 ...
2020-07-22 22:54:19
166
原创 redis深度历险03-位图
redis深度历险03-位图bit redis位图数据结构,非零即一,每个只占一位,一个字节8位。位图其实就是普通的字符串,就是byte数组。可以通过getbit setbit等将byte数组看成位数组 来处理 基本用法 h字母的二进制是01101000 e字母的二进制是01100101 对于字母h而言,索引从0开始。需要把第 1 2 4为设置成1 零存整取 setbit s 1 1 setbit s 2 1 setbit s 4 1 get s --- 得到h字母 零存零
2020-07-22 22:53:54
199
原创 redis深度历险02-分布式锁
redis深度历险02-分布式锁 分布式锁的本质就是在redis里面战一个坑,当别的进程进来占坑时,发现那里已经有人了,就只好放弃或者稍后尝试 占坑一般用sexnx(set if not exists 成功返回1,失败返回0) 方案一 ## setnx lock true ok..... donging.... del lock 问题:如果指定过程中,出现异常,导致无法del 锁。就会死锁了 方案二 自动释放锁 给锁加一个过期时间,即使中途异常,也能自动释放锁 setnx lockFlag t
2020-07-22 22:53:05
179
原创 redis深度历险01-基本数据结构小结
Redis深度历险-基本数据结构小结 Redis基础数据结构 String 键值对 set k v --保存相应键值对 get k – 通过key 得到value exists k --判断key 是否存在 存在返回1 del k --删除相应数据,删除成功返回1 批量键值对 mset k1 v1 k2 v2 --批量保存 k1-v1 k2-v2 键值对 mget k1 k2
2020-07-16 22:34:42
179
原创 一次通过jstack 和 pslist定位程序问题
10年征战背景.......................... 短时间进行elasticsearch插入没有问题。 可是连续插入几个小时候,cpu好的飞起。360加速器都要爆炸。 先声明原帖 http://blog.csdn.net/ningzuobei/article/details/48828915 1 没办法,邮件任务管理器,资源管理器。发现了猫腻。java.exe的进程占据了接近百分之80的cpu。 还好我能看到她的进程号。我的是5460....
2020-06-04 15:00:48
291
原创 小创意之-设置电脑壁纸
小创意— 设置电脑壁纸 看着面黄肌肉的电脑壁纸,默默打卡了百度,搜索美丽的壁纸。看着风格古怪,分辨率里五五六六的图片。默默的流了几滴汗。于是单生了一个念头,为什么不抓去合适的图片自动设置成电脑壁纸呢?于是便用C#写了一个小程序。 寻找合适的代码图片下载到本地 提供几个常见的图片网址 https://unsplash.it/1600/900?random(国外的随机图片) https://uploadbeta.com/api/pictures/random/?key=BingEverydayWallpaper
2020-06-04 14:50:53
323
原创 centos ubuntu 防火漆
centos 1、开启 关闭firewall: systemctl stop firewalld.service #停止firewall systemctl start firewalld.service #开启firewall systemctl disable firewalld.service #禁止firewall开机启动 firewall-cmd --state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running) 开放端口 查看已经开放的端口: fir...
2020-05-25 22:26:07
237
原创 mongodb 简单安装和操作
ubuntu 安装 mongdb port 27017 apt-get install mongodb pgrep mongo -l 查看是否启动 mongo -version 查看版本 locate mongo 启动和关闭mongodb命令如下: service mongodb start cd /etc/init.d/ -> ./mongodb start service mongodb stop cd /...
2020-05-25 22:19:04
191
原创 js 常见的遍历数组 对象 方法
遍历对象 //原生js const obj = { id:1, name:'jack', age:12} for(let key in obj){ console.log(key + '---' + obj[key]) } // 获得所有的key console.log(Object.keys(obj)) //获得所有的value console.log(Object.values(obj))
2020-05-21 15:00:21
1932
原创 python的pip 相关命令
pip 相关 pip list #列出所有已安装的三方库 pip list --outdated #列出当前已安装的第三方库中所有过期的库 对于所找到的过期库,请使用以下命令更新我们的库: pip install --upgrade 库名 pip install django==2.1 制定版本的库 -------------------------------------------------------------------------------------------...
2020-05-20 22:09:31
242
原创 小创意之-C#设置电脑壁纸
小创意— 设置电脑壁纸 看着面黄肌肉的电脑壁纸,默默打卡了百度,搜索美丽的壁纸。看着风格古怪,分辨率里五五六六的图片。默默的流了几滴汗。于是单生了一个念头,为什么不抓去合适的图片自动设置成电脑壁纸呢?于是便用C#写了一个小程序。 寻找合适的代码图片下载到本地 提供几个常见的图片网址 https://unsplash.it/1600/900?random(国外的随机图片) https://uploadbeta.com/api/pictures/random/?key=BingEverydayWallpaper
2020-05-14 23:19:40
1729
原创 标题党之---每日情话团
利用python获得每日情话,邮件发送 人生难啊,总是有人嫌弃我不会说话。每每遇到这样的情况总是去网上复制粘贴好听的情话发过去。这可太难了。为何不作一个类是自动发送的脚本呢? 有想法是好的,就差开始行动了!! 分析情话网站dom结构 分析此网站http://www.1juzi.com/new/150542.html 关键信息都在class为 content 的p标签里面,通过python的request拿到html源代码。beautifulSoup解析dom结构 # 返回多条语录 def findLove
2020-05-13 23:15:51
419
原创 标题党之---我是如何通过这一段代码赚了两百块钱的故事
标题党之—我是如何通过这一段代码赚了两百块钱的故事 絮絮叨叨: 其实如果能够相对快速的获得第一手消息和通过这个消息还会衍生出什么影响 这样的判断很重要啊。故事背景是前段时间做了一个热点消息获取的程序。然后每天给我推送最新的热点消息,有几个热点消息多次出现,巧了的是逛知乎也看到类似话题的谈论,其实就是之前肺炎早期的时候和伊朗二把手的事件。大致就是导致我去买了医药和军工的基金,也就赚了200块。尽管我也说不清我赚的钱和这些有没有关系。 不管怎么说,自己没有头脑风暴的能力推测出会带来什么影响,那么便只能就提高自己
2020-05-13 09:29:16
349
原创 python爬取二手房库存,存数据库,生成折线图(下)
python爬取二手房库存,存数据库,生成折线图(下) 数据库有了房价的多阶段价格后,即可生成折线图。默认我的数据库已经有很多天的数据了 进入html页面的时候,默认加载房价走势图 在vue 的mounted里面发起请求,加载数据库的房价信息,然后将数据组装给echarts 配置相应的路由和具体处理请求的方法 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ge9DLvlu-1588947376669)(https://i.loli.net/2020/05/08/bcPmR
2020-05-08 22:17:02
410
原创 python爬取二手房库存,存数数据库,生成折线图(上)
python爬取二手房库存,存数据库,生成折线图(上) 想着快要买房了,可是房价又那么的贵。那么为啥不是自己爬点二手房的价格走势图。看看那里的房子适合自己(虫啊!!!) 打算用python3 django2.1 mysql5.7 做一个走势图。 第一步 先搭建一个django 的web项目 通过如下的命令安装制定版本,且走国内的镜像。 pip install django==2.1 -i https://pypi.tuna.tsinghua.edu.cn/simple 下载安装好的django执行
2020-05-08 22:15:47
497
原创 python爬取二手房库存,存数据库,生成折线图(中)
python爬取二手房库存,存数据库,生成折线图(中) 中篇会介绍爬去房价的信息,然后存入数据库 第一步 基本的配置信息 html页面 免不了会加载一些自己的js,css之类的。 新建自己的static文件夹,存放js等 打开settings文件 修改 STATIC_URL和STATICFILES_DIRS配置 此时在html通过如下的方式导入js 修改第一行 {% load static %} 导入自己的js路径 <script src="{% static “js/echarts-all-
2020-05-08 22:05:27
710
原创 vue input 复制后无法修改
假设有几个input输入框,通过 this.form.name="jack" this.form.age=5 可能存在无法修改的情况 可以通过如下的方式 Vue.set(this.form, 'name', 'jack'); Vue.set(this.form, 'age', '5'); 这样的方式赋值。 -----------------------------...
2020-05-07 17:59:44
487
elasticsearch-analysis-ik-5.5.3.zip
2018-01-22
nginxAndTomcat.zip
2019-06-16
Elasticsearch获得client实例需要两三分钟
2017-07-05
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅