element

redis中的"HashMap"

人走茶凉 提交于 2020-05-02 18:28:39
redis是一个存储键值对的内存数据库,其存储键值的方式和java中的HashMap相似。 表征redis数据库的结构体是redisDb (在server.h文件中),redis服务器默认有16个数据库,编号从0到15。 typedef struct redisDb { dict *dict; /* 键空间 */ dict *expires; /* 过期键空间 */ dict *blocking_keys; /* 客户端在等待的键 (BLPOP) */ dict *ready_keys; /* 接收到 push 的阻塞键 */ dict *watched_keys; /* WATCHED keys for MULTI/EXEC CAS */ struct evictionPoolEntry *eviction_pool; /* Eviction pool of keys */ int id; /* Database ID */ long long avg_ttl; /* Average TTL, just for stats */ } redisDb; dict 中存储的是 key -> value,而expires存储的 key -> 过期时间 dict是dict.h文件中定义的结构体: typedef struct dict { dictType * type; void *

[Nodejs] 用node写个爬虫

北慕城南 提交于 2020-05-02 18:15:31
寻找爬取的目标 首先我们需要一个坚定的目标,于是找个一个比较好看一些网站,将一些信息统计一下,比如 url/tag/title/number...等信息 init(1, 2); //设置页数,现在是1-2页 async function init(startPage, endPage) { for (let i = startPage; i <= endPage; i++) { await getAndSaveImg(i); } ..... } 一般网站都会进行一些反爬虫处理,这时候就需要一个 ip 代理池进行 ip 伪装了. 网络请求 使用一个 nodejs 的模块 request,这个模块可以让 node 的 http 请求变的更加简单,同时支持 http/https 请求还可以将任何请求输出到文件流. request.post({url:'http://service.com/upload', formData: formData}, function optionalCallback(err, httpResponse, body) { if (err) { return console.error('upload failed:', err); } console.log('Upload successful! Server responded with:', body)

Android 常用开源框架源码解析 系列 (五)Butterknife 注解库

假装没事ソ 提交于 2020-05-02 16:21:46
一、前言 作者 JakeWharton 作用 依赖动态注入框架 减少findView/setListener 类初始化代码,减少工作量 二、简单使用 1、导入库 implementation 'com.jakewharton:butterknife:8.5.1' implementation 'com.jakewharton:butterknife-compiler:8.5.1' 2、实例代码: @BindView(R.id.TextView_1) TextView TextView1; @OnClick(R.id.button_1) void OnClick(View view) { textView1.setText(""); } setContentView(R.layout.butterknife_layout); //必须在setContentView绘制好布局之后调用 否则找不到对应的id对象 产生空指针 ButterKnife.bind(this); 三、技术历史 1、早期注入框架技术 反射机制 在Activity中使用反射机制完成注解库的注入早期 缺陷 在Activity runtime运行时大量加载反射注入框架完成依赖注入,会影响App的运行性能,造成UI卡顿,产生更多的临时对象增加内存损耗 2、现今注入框架技术 APT 编译时解析技术,注解注入框架 区别与旧技术

python爬虫的页面数据解析和提取/xpath/bs4/jsonpath/正则(2)

懵懂的女人 提交于 2020-05-02 11:55:46
上半部分内容链接 : https://www.cnblogs.com/lowmanisbusy/p/9069330.html 四.json和jsonpath的使用 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,它使得人们很容易的进行阅读和编写。同时也方便了机器进行解析和生成。适用于进行数据交互的场景,比如网站前台与后台之间的数据交互。 JSON和XML的比较可谓不相上下。 Python 2.7中自带了JSON模块,直接 import json 就可以使用了。 官方文档: http://docs.python.org/library/json.html Json在线解析网站: http://www.json.cn/# JSON json简单说就是javascript中的对象和数组,所以这两种结构就是对象和数组两种结构,通过这两种结构可以表示各种复杂的结构 对象:对象在js中表示为 { } 括起来的内容,数据结构为 { key:value, key:value, ... } 的键值对的结构,在面向对象的语言中,key为对象的属性,value为对应的属性值,所以很容易理解,取值方法为 对象.key 获取属性值,这个属性值的类型可以是数字、字符串、数组、对象这几种。 数组:数组在js中是中括号 [ ] 括起来的内容,数据结构为 [

Scala进阶之路-Scala中的枚举用法案例展示

耗尽温柔 提交于 2020-05-02 10:54:27
             Scala进阶之路-Scala中的枚举用法案例展示                                     作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任。   Scala中的枚举值和Java中的枚举值有点差别,不过使用起来也都差大同小异,我这里分别写了一个Java定义枚举类型和Scala定义枚举类型的案例。 一.Java中定义枚举类型案例展示 1 /* 2 @author :yinzhengjie 3 Blog: http://www.cnblogs.com/yinzhengjie/tag/Scala%E8%BF%9B%E9%98%B6%E4%B9%8B%E8%B7%AF/ 4 EMAIL:y1053419035@qq.com 5 */ 6 package cn.org.yinzhengjie; 7 8 import java.util.Arrays; 9 10 /** 11 * 定义枚举类型,只需要使用关键字enum关键字即可,内部的每个元素用逗号(",")分隔。 12 */ 13 enum Day { 14 MONDAY, 15 TUESDAY, 16 WEDNESDAY, 17 THURSDAY, 18 FRIDAY, 19 SATURDAY, 20 SUNDAY 21 } 22 23 24 public class

CTR学习笔记&代码实现4-深度ctr模型 NFM/AFM

我怕爱的太早我们不能终老 提交于 2020-05-02 09:52:26
这一节我们总结FM另外两个远亲NFM,AFM。NFM和AFM都是针对Wide&Deep 中Deep部分的改造。上一章PNN用到了向量内积外积来提取特征交互信息,总共向量乘积就这几种,这不NFM就带着element-wise(hadamard) product来了。AFM则是引入了注意力机制把NFM的等权求和变成了加权求和。 以下代码针对Dense输入感觉更容易理解模型结构,针对spare输入的代码和完整代码 👇 https://github.com/DSXiangLi/CTR NFM NFM的创新点是在wide&Deep的Deep部分,在Embedding层和全联接层之间加入了BI-Pooling层,也就是Embedding两两做element-wise乘积得到 \(N*(N-1)/2\) 个 \(1*K\) 的矩阵然后做sum_pooling得到最终 \(1*k\) 的矩阵。 \[f_{BI}(V_x) = \sum_{i=1}^n\sum_{j=i+1}^n (x_iv_i) \odot (x_jv_j) \] Deep部分的模型结构如下 和其他模型的联系 NFM不接全连接层,直接weight=1输出就是FM,所以NFM可以在FM上学到更高阶的特征交互。 有看到一种说法是DeepFM是FM和Deep并联,NFM是把FM和Deep串联,也是可以这么理解

CTR学习笔记&代码实现4-深度ctr模型 NFM/AFM

烂漫一生 提交于 2020-05-02 09:15:02
这一节我们总结FM另外两个远亲NFM,AFM。NFM和AFM都是针对Wide&Deep 中Deep部分的改造。上一章PNN用到了向量内积外积来提取特征交互信息,总共向量乘积就这几种,这不NFM就带着element-wise(hadamard) product来了。AFM则是引入了注意力机制把NFM的等权求和变成了加权求和。 以下代码针对Dense输入感觉更容易理解模型结构,针对spare输入的代码和完整代码 👇 https://github.com/DSXiangLi/CTR NFM NFM的创新点是在wide&Deep的Deep部分,在Embedding层和全联接层之间加入了BI-Pooling层,也就是Embedding两两做element-wise乘积得到 \(N*(N-1)/2\) 个 \(1*K\) 的矩阵然后做sum_pooling得到最终 \(1*k\) 的矩阵。 \[f_{BI}(V_x) = \sum_{i=1}^n\sum_{j=i+1}^n (x_iv_i) \odot (x_jv_j) \] Deep部分的模型结构如下 和其他模型的联系 NFM不接全连接层,直接weight=1输出就是FM,所以NFM可以在FM上学到更高阶的特征交互。 有看到一种说法是DeepFM是FM和Deep并联,NFM是把FM和Deep串联,也是可以这么理解

vue2.0 + element-ui2实现分页

大兔子大兔子 提交于 2020-05-02 07:36:49
当我们向服务端请求大量数据的时候,并要在页面展示出来,怎么办?这个时候一定会用到分页。 本次所使用的是vue2.0+element-ui2.12实现一个分页功能,element-ui这个组件特别丰富,它给我提供了很多Pagination分页方式,这里使用其中一个快速完成分页功能。 最终效果展示: ​ 下面说说实现原理及附上完整的代码,包括服务端代码(python)。 < template> < div> < el-table :data= "tableData" border style= "width: 100%"> < el-table-column type= "selection" width= "55"> </ el-table-column> < el-table-column label= "标题" prop= "title" width= "680"> </ el-table-column> < el-table-column label= "日期" prop= "date" width= "180"> </ el-table-column> < el-table-column label= "操作"> < template slot-scope= "scope"> < el-button size= "mini" @ click= "handleEdit

vue+element-UI实现分页效果

[亡魂溺海] 提交于 2020-05-02 07:27:06
当我们向后台请求大量数据的时候,并要在页面展示出来,请求的数据可能上百条数据或者更多的时候,并不想在一个页面展示,这就需要使用分页功能来去完成了。 1.本次所使用的是vue2.0+element-ui实现一个分页功能,element-ui这个组件特别丰富,分页中给我提供了一个Pagination 分页,使用Pagination 快速完成分页功能 最终效果展示 <div class="deit"> <div class="crumbs"> <el-breadcrumb separator="/"> <el-breadcrumb-item><i class="el-icon-date"></i> 数据管理</el-breadcrumb-item> <el-breadcrumb-item>用户列表</el-breadcrumb-item> </el-breadcrumb> <div class="cantainer"> <el-table style="width: 100%;" :data="userList.slice((currentPage-1)*pagesize,currentPage*pagesize)" //对数据请求的处理,最为重要的一句话 > <el-table-column type="index" width="50"> </el-table-column> <el

vue基于element-ui制作的成绩管理系统(四)个人信息

谁说我不能喝 提交于 2020-05-02 06:45:28
1.在views文件夹下新建person-msg.vue 页面布局如下:    <el-row> <el-col :span="24"> <div v-if="Teacherform"> <h4 class="title">教师信息</h4>     //渲染教师信息 <el-table :data="teacherData" border style="width: 100%" > <el-table-column prop="id" label="账号"></el-table-column> <el-table-column prop="tname" label="姓名"></el-table-column> <el-table-column prop="tsex" label="性别"></el-table-column> <el-table-column prop="tdepart" label="部门"></el-table-column> <el-table-column prop="class_cno" label="课程名"></el-table-column> <el-table-column prop="passwd" label="密码"></el-table-column> <el-table-column prop="role" label="角色"><