exists

NodeJS学习笔记(五) fs,http模块

a 夏天 提交于 2020-01-28 04:21:55
Fs模块 在看nodejs介绍的过程中,nodejs对自己的异步I/O是重点突出的说明的。在fs模块中,nodejs提供了异步和同步两种读写方式 Fs.readFile 这个方法是底层fs.read方法和fs.open方法的封装。 fs.readFile(filename, [options], callback) filename String options Object encoding String | Null default = null flag String default = 'r' callback Function 上述代码是直接从API中拷贝过来的。其中options是一个对象,对象里面有encoding和flag。Flag在fs.open方法中讲述; 在API中,中括号里面的参数是可以缺省的 。 回调函数callback的形式如:function(err,data){},其中,err是一个Error对象,没有发生错误,err的值为null,或undefined。Data是文件的内容,这里需要注意,如果options缺省或者没有制定options里面的encoding,这个dataIU是一个Buffer形式表示的二进制数据,如果指定为utf-8,Data中的内容就是通过编码解析后的字符串。这里有一篇深入一点的文章,有想去的朋友可以去阅读。 深入浅出Node

mysql exists 和 in的效率比较

寵の児 提交于 2020-01-27 04:04:53
mysql exists 和 in的效率比较 这条语句适用于a表比b表大的情况 select * from ecs_goods a where cat_id in(select cat_id from ecs_category); 这条语句适用于b表比a表大的情况 select * from ecs_goods a where EXISTS(select cat_id from ecs_category b where a.cat_id = b.cat_id); 原因:(转发) select * from A where id in(select id from B) 以上查询使用了in语句,in()只执行一次,它查出B表中的所有id字段并缓存起来.之后,检查A表的id是否与B表中的id相等,如果相等则将A表的记录加入结果集中,直到遍历完A表的所有记录. 它的查询过程类似于以下过程 List resultSet=[]; Array A=(select * from A); Array B=(select id from B); for(int i=0;i<A.length;i++) { for(int j=0;j<B.length;j++) { if(A[i].id==B[j].id) { resultSet.add(A[i]); break; } } } return

Quay 基础版安装和部署

☆樱花仙子☆ 提交于 2020-01-25 18:31:11
详细的安装手册可以参考官方文档,地址在 https://access.redhat.com/documentation/en-us/red_hat_quay/3/html-single/deploy_red_hat_quay_-_basic/index Quay包含了几个核心组件 数据库:主要存放镜像的元数据(非镜像存储) redis:存放构建日志和Quay的向导 Quay:作为registry Clair: 镜像扫描功能 安装的环境至少需要4G内存 安装步骤 1.安装docker以及关闭防火墙 yum install docker systemctl enable docker systemctl start docker systemctl is-active docker systemctl stop firewalld systemctl disable firewalld 2.安装mysql数据库 mkdir -p /var/lib/mysql chmod 777 /var/lib/mysql export MYSQL_CONTAINER_NAME=mysql export MYSQL_DATABASE=enterpriseregistrydb export MYSQL_PASSWORD=welcome1 export MYSQL_USER=quayuser export

【MySQL】项目中常用的 18 条 MySQL 优化 打造高性能 SQL 语句

微笑、不失礼 提交于 2020-01-25 06:21:28
1. 执行计划EXPLAIN 要想做MySQL优化,首先必须知道如何善用执行计划EXPLAIN。下图做个简单的示例并标注需要重点关注的数据。 type列,连接类型。一个好的sql语句至少要达到range级别。杜绝出现all级别 key列,使用到的索引名。如果没有选择索引,值是NULL。可以采取强制索引方式 key_len列,索引长度 rows列,扫描行数。该值是个预估值 Extra列,详细说明。注意常见的不太友好的值有:Using filesort, Using temporary 关于EXPLAIN的详细分析,可以阅读另一篇文章: 【MySQL】执行计划EXPLAIN详解 2. SELECT语句务必指明字段名称 SELECT *增加很多不必要的消耗(cpu、io、内存、网络带宽);增加了使用覆盖索引的可能性;当表结构发生改变时,前断也需要更新。所以要求直接在select后面接上字段名。 3. 如果排序字段没有用到索引,就尽量少排序 4. 当只需要一条数据的时候,使用LIMIT 1 这是为了使EXPLAIN中type列达到const类型 5. SQL语句中IN包含的值不应过多 MySQL对于IN做了相应的优化,即将IN中的常量全部存储在一个数组里面,而且这个数组是排好序的。但是如果数值较多,产生的消耗也是比较大的。再例如:select id from table_name

Java动态规划

别说谁变了你拦得住时间么 提交于 2020-01-25 05:31:18
1. 介绍 动态规划典型的被用于优化递归算法,因为它们倾向于以指数的方式进行扩展。动态规划主要思想是将复杂问题(带有许多递归调用)分解为更小的子问题,然后将它们保存到内存中,这样我们就不必在每次使用它们时重新计算它们。 要理解动态规划的概念,我们需要熟悉一些主题: 什么是动态规划? 贪心算法 简化的背包问题 传统的背包问题 Levenshtein Distance LCS-最长的共同子序列 利用动态规划的其他问题 结论 本文所有代码均为 java 代码实现。 2. 什么是动态规划? 动态规划是一种编程原理,可以通过将非常复杂的问题划分为更小的子问题来解决。这个原则与递归很类似,但是与递归有一个关键点的不同,就是每个不同的子问题只能被解决一次。 为了理解动态规划,我们首先需要理解递归关系的问题。每个单独的复杂问题可以被划分为很小的子问题,这表示我们可以在这些问题之间构造一个递归关系。 让我们来看一个我们所熟悉的例子: 斐波拉契数列 ,斐波拉契数列的定义具有以下的递归关系: 注意:递归关系是递归地定义下一项是先前项的函数的序列的等式。 Fibonacci 序列就是一个很好的例子。 所以,如果我们想要找到斐波拉契数列序列中的第n个数,我们必须知道序列中第n个前面的两个数字。 但是,每次我们想要计算 Fibonacci 序列的不同元素时,我们在递归调用中都有一些重复调用,如下图所示

Elasticsearch系列---结构化搜索

蹲街弑〆低调 提交于 2020-01-25 00:33:53
概要 结构化搜索针对日期、时间、数字等结构化数据的搜索,它们有自己的格式,我们可以对它们进行范围,比较大小等逻辑操作,这些逻辑操作得到的结果非黑即白,要么符合条件在结果集里,要么不符合条件在结果集之外,没有那种相似的概念。 前言 结构化搜索将会有大量的搜索实例,我们将"音乐APP"作为主要的案例背景,去开发一些跟音乐APP相关的搜索或数据分析,有助力于我们理解实战的目标,顺带巩固一下学习的知识。 我们将一首歌需要的字段暂定为: | name | code | type | remark | | :---- | :--: | :--: | -----: | | ID | id | keyword | 文档ID | | 歌手 | author | text | | | 歌曲名称 | name | text | | | 歌词 | content | text | | | 语种 | language | text | | | 标签 | tags | text | | | 歌曲时长 | length | long | 记录秒数 | | 喜欢次数 | likes | long | 点击喜欢1次,自增1 | | 是否发布 | isRelease | boolean | true已发布,false未发布 | | 发布日期 | releaseDate | date | |

微信运动自动点赞

家住魔仙堡 提交于 2020-01-24 15:52:29
if (text('排行榜').exists()) { while (true) { let objs = id('bpz').find(); let objsLength = objs.size(); for (let index = 0; index < objsLength; index++) { let obj = objs[index]; if (obj.parent().parent().click()) { sleep(1000) } if (text('赞我的朋友').exists()) { back() sleep(2000) } if (textEndsWith('的主页').exists()) { back() sleep(2000) } } if (text('邀请朋友').exists()) { break; } swipe(device.width / 2, device.height / 1.1, device.width / 2, device.height / 6, 800); sleep(2000); } toastLog('点赞完成'); } else { log('不在排行版页面'); exit(); } exit(); https://github.com/qinsilandiao/auto.js_scripts 来源: https:/

Redis键(key)命令

拥有回忆 提交于 2020-01-24 01:09:10
DEL key:该命令用于在 key 存在时删除 key。 实例 redis 127.0.0.1:6379> SET w3ckey redis OK redis 127.0.0.1:6379> DEL w3ckey (integer) 1 DUMP key :序列化 key ,并返回被序列化的值。 实例 redis> SET greeting "hello, dumping world!" OK redis> DUMP greeting "\x00\x15hello, dumping world!\x06\x00E\xa0Z\x82\xd8r\xc1\xde" redis> DUMP not-exists-key (nil) EXISTS key :检查给定 key 是否存在。 实例 redis 127.0.0.1:6379> EXISTS runoob-new-key (integer) 0 redis 127.0.0.1:6379> set runoob-new-key newkey OK redis 127.0.0.1:6379> EXISTS runoob-new-key (integer) 1 EXPIRE key seconds:为给定 key 设置过期时间,以秒计。 实例 redis 127.0.0.1:6379> SET runooobkey redis OK

Elasticsearch系列---结构化搜索

不羁的心 提交于 2020-01-23 18:16:47
概要 无广告小说网 m.amini.net 结构化搜索针对日期、时间、数字等结构化数据的搜索,它们有自己的格式,我们可以对它们进行范围,比较大小等逻辑操作,这些逻辑操作得到的结果非黑即白,要么符合条件在结果集里,要么不符合条件在结果集之外,没有那种相似的概念。 前言 结构化搜索将会有大量的搜索实例,我们将"音乐APP"作为主要的案例背景,去开发一些跟音乐APP相关的搜索或数据分析,有助力于我们理解实战的目标,顺带巩固一下学习的知识。 我们将一首歌需要的字段暂定为: | name | code | type | remark | | :---- | :--: | :--: | -----: | | ID | id | keyword | 文档ID | | 歌手 | author | text | | | 歌曲名称 | name | text | | | 歌词 | content | text | | | 语种 | language | text | | | 标签 | tags | text | | | 歌曲时长 | length | long | 记录秒数 | | 喜欢次数 | likes | long | 点击喜欢1次,自增1 | | 是否发布 | isRelease | boolean | true已发布,false未发布 | | 发布日期 | releaseDate |

Passing unset variables to functions

可紊 提交于 2020-01-23 01:14:46
问题 My code: function Check($Variable, $DefaultValue) { if(isset($Variable) && $Variable != "" && $Variable != NULL) { return $Variable; } else { return $DefaultValue; } } $a = Check(@$foo, false); $b = Check(@$bar, "Hello"); //$a now equals false because $foo was not set. //$b now equals "Hello" because $bar was not set. When a variable doesn't exist and is passed to the function (suppressing the error) what is actually passed? Is there any undefined behaviour that this function could exhibit?