一日一技:隐患——redis-py的blpop可能由于网络波动导致收不到信息摄影:产品经理厨师:kingname我们在使用Redis做消息队列的时候,常常使用列表这个数据结构,并写出如下的代码:importredisimporttimeclient=redis.Redis()whileTrue:data=client.lpop(‘key‘)ifnotdata:time.sleep(5*60)con
分类:
其他好文 时间:
2020-12-08 12:57:00
阅读次数:
15
一日一技:如何从多个JupyterNotebook中找到需要代码段我喜欢使用Jupyter来写一些代码片段,如下图所示:但时间长了以后,可能积累了非常多的Notebook,如下图所示:某一天,我突然想找很久之前写的一段代码片段,但是我不记得是写在哪个Notebook里面了。应该怎么办呢?如果我们使用vscode或者vim打开Notebook对应的.ipynb,我们就会发现实际上Notebook也是
分类:
其他好文 时间:
2020-12-08 12:56:37
阅读次数:
10
前言上一章节我们介绍了静态路由协议,如何通过静态路由实现负载分担和主备路由?|内附知识卡片总结。今天我们一起来看下RIP动态协议,其实不管时静态路由协议还是动态路由协议,他们最终的目的都是生成路由,路由器根据各种协议产生的路由选择最优路由加入路由表,用于指导数据包转发。其实RIP基本上在现网中基本已经淘汰了,那么为什么还要花一章节介绍呢?1、RIP是一种比较简单的动态路由协议,通过学习方便理解动态
分类:
其他好文 时间:
2020-12-08 12:56:19
阅读次数:
9
密码学小传——凯撒密码的解密起源摄影:产品经理在我小时候,我自己研究并想出过一种加密算法。例如,想给喜欢的女同学传递一张纸条,上面写着“我爱你”,但是如果直接传过去,纸条可能会被其他同学拦截,导致秘密泄露。于是,我把我爱你写成拼音woaini,然后把26个字母移动几位:abcdefghijklmnopqrstuvwxyzijklmnopqrstuvwxyzabcdefgh这样一来,w->eo
分类:
其他好文 时间:
2020-12-08 12:56:03
阅读次数:
9
一日一技:如何把多层嵌套的列表展平摄影:产品经理有这样一个列表套列表的数据结构:a=[1,2,[3,4,[5,6,7],8],9,[10,11]]现在想把它变为:b=[1,2,3,4,5,6,7,8,9,10,11]遇到这种问题,肯定有很多人想到用递归和循环来实现:defflat(deep_list,result):forelementindeep_list:ifisinstance(elemen
分类:
其他好文 时间:
2020-12-08 12:55:45
阅读次数:
5
前言上一章节根据5种报文和8种邻居状态机给大家介绍了OSPF协议的基本工作原理。5种报文、8种邻居状态机详解OSPF工作原理今天我们做一个简单的OPSF实验,抓取OSPF协议交互的5种报文分析下OSPF路由协议建立邻接关系的过程。正文1OSPF5种报文头格式OSPF用IP报文直接封装协议报文,协议号为89。OSPF分为5种报文,Hello报文、DD报文、LSR报文、LSU报文和LSAck报文。OS
分类:
其他好文 时间:
2020-12-08 12:55:21
阅读次数:
7
一日一技:一个括号两种意思,正则表达式奇怪的小括号在Python里面,当我们要从一段正则表达式中提取出一部分内容的时候,我们可以把这部分内容用小括号包起来。例如:从字符串我的密码123456abc中提取123456abc,我们可以这样写正则表达式:importres=‘我的密码123456abc‘password=re.findall(‘密码(.*?)$‘,s)print(password)运行效
分类:
其他好文 时间:
2020-12-08 12:54:34
阅读次数:
5
一日神技:最快30秒写出一个异步加载爬虫(https://s4.51cto.com/images/blog/202012/03/5c1708002c25e9a16f9671eed1606f12.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shado
分类:
其他好文 时间:
2020-12-08 12:54:03
阅读次数:
6
1实验需求:PC1属于VLAN2,PC2属于VLAN3,通过单臂路由的方式实现不同vlan的主机PC1和PC2互通。2实验拓扑:3实验配置:PC1配置:PC2配置:交换机配置#vlanbatch2to3#interfaceGigabitEthernet0/0/1portlink-typeaccessportdefaultvlan2#interfaceGigabitEthernet0/0/2port
分类:
其他好文 时间:
2020-12-08 12:53:47
阅读次数:
6
消息丢失的场景如果KafkaProducer使用“发后即忘”的方式发送消息,即调用producer.send(msg)方法来发送消息,方法会立即返回,但此时并不能说明消息已经发送成功。消息发送方式详见初次邂逅Kafka生产者。如果在消息过程中发生了网络抖动,那么消息就会丢失;或发送的消息本身不符合要求,如大小超过Broker端的承受能力等(消息太大的情况在生产中实际遇到过,最后通过在发送前将消息分
分类:
其他好文 时间:
2020-12-08 12:53:00
阅读次数:
5
前言前面我们讲过二层以太网Ethernet协议,你知道以太网数据帧在网络中如何发送和接收的吗?一文带你搞懂它,用于实现数据链路层数据帧的封装,今天我们讲下数据链路层的另一个协议——PPP。以太网协议用在局域网中,一般使用以太网口进行互联;广域网中经常会使用串行链路来提供远距离的数据传输,高级数据链路控制HDLC(High-LevelDataLinkControl)和点对点协议PPP(Pointto
分类:
其他好文 时间:
2020-12-08 12:52:40
阅读次数:
5
一日一技:从列表中一次性筛选多个指定位置的数据Pandas的DataFrame在筛选列数据的时候,有一个非常方便的用法。假设现在有这样一个DataFrame:importpandasaspddata=[{‘name‘:‘kingname‘,‘age‘:20,‘salary‘:99999},{‘name‘:‘alice‘,‘age‘:30,‘salary‘:99999},{‘name‘:‘bob‘,
分类:
其他好文 时间:
2020-12-08 12:51:15
阅读次数:
7
一日一技:一次性把字符串用多个分隔符分割现在有一个字符串:name,age,我们想把它分割为name和age,我们可以使用split()方法:a=‘name,age‘str_list=a.split(‘,‘)print(str_list[0])print(str_list[1])运行效果如下图所示:但在现实中,有不少符号,中英文长的很像,但却不一样,并且有的人喜欢在分隔符后面加空格,有些人又不加空
分类:
其他好文 时间:
2020-12-08 12:50:55
阅读次数:
6
索引模板,故名思议,就是创建索引的模板,模板中包含公共的配置(settings)和映射(Mapping),并包含一个简单触发条件,及条件满足时使用该模板创建一个新的索引。注意:模板只在创建索引时应用。更改模板不会对现有索引产生影响。当使用createindexAPI时,作为createindex调用的一部分定义的设置/映射将优先于模板中定义的任何匹配设置/映射。一个索引模板示例如下:1PUT_te
分类:
其他好文 时间:
2020-12-08 12:48:57
阅读次数:
6
微信公众号:[中间件兴趣圈]作者简介:《RocketMQ技术内幕》作者;indexaliases,索引别名,有点类似名称映射,一个索引别名可以映射多个真实索引,索引别名在定义时还支持filter,构成同一个索引,不同的视图。思考:一个索引别名可以映射成多个索引,那如果向一个别名添加一个文档时,会在该别名下对应的所有索引下都创建一个文档?如何创建索引别名1POST/_aliases2{3"actio
分类:
其他好文 时间:
2020-12-08 12:48:40
阅读次数:
6
一、MPLS基本结构1、网络结构MPLS网络的典型结构如图,可以进行MPLS标签交换和报文转发的网络设备称为标签交换路由器LSR(LabelSwitchingRouter);由LSR构成的网络区域称为MPLS域(MPLSDomain);位于MPLS域边缘、连接其它网络的LSR称为边缘路由器LER(LabelEdgeRouter);区域内部的LSR称为核心LSR(CoreLSR)。图MPLS网络结构
分类:
其他好文 时间:
2020-12-08 12:48:04
阅读次数:
5
一日一技:不等长度列表的同时迭代有两个列表[1,2,3]和[‘a‘,‘b‘,‘c‘],当我们想对他们同时迭代的时候,可以这样写:a=[1,2,3]b=[‘a‘,‘b‘,‘c‘]forpairinzip(a,b):print(pair)运行效果如下图所示:这种用法相信大家都已经知道了。现在问题来了,有两个
分类:
其他好文 时间:
2020-12-08 12:47:51
阅读次数:
5