澳门美高梅手机网站Big Endian  和 Little Endian 情势的界别

9-1 分布式爬虫要点

澳门美高梅手机网站 1

1.分布式的亮点

  • 丰裕利用多机器的宽带加速爬取
  • 充分利用多机的IP加速爬取速度

问:为何scrapy不协理分布式?

答:在scrapy中scheduler是运作在队列的,而队列是在单机内存中的,服务器上爬虫是无能为力运用内存的行列做其余处理,所以scrapy不补助分布式。

2.分布式需要缓解的题材

  • requests队列集中管理
  • 去重集中管理

由此要用redis来解决。

0x34

9-2~3 redis基础知识

  32bit宽的数0x12345678在Little-endian模式CPU内存中的寄放格局(假设从地址0x4000上马存放)为: 

Ⅲ、Redis文档

  1. redis教程(菜鸟教程)
  2. redis命令参数

0x4002

9-4~9 全体的小节重假若解读scrapy-redis

可以看github上的scrapy-redis的利用办法。

bloomfilter 布隆过滤器 集成到scrapy-redis中。

源码还并未领会透彻,先不写表达了。


连锁代码的请移步我的github:scrapy-redis应用的档次

作者:今孝
出处:http://www.cnblogs.com/jinxiao-pu/p/6838011.html 
正文版权归作者和网易共有,欢迎转载,但未经作者同意必须保留此段阐明,且在篇章页面彰着地方给出原文连接。

认为好就点个推荐把!

0x400 

Ⅰ.redis的安装(windows 64位)

1.百度:redis for windows 找到github上的安装包

如图点进去下载

澳门美高梅手机网站 2

澳门美高梅手机网站 3

cmd切换来下载的目录中

输入以下命令即可运行

澳门美高梅手机网站 4

澳门美高梅手机网站 5

诸如此类已经起步了,可以输入相关的吩咐举行测试。

在LITTLE-ENDIAN的境况下存放为:

Ⅱ、Redis的数据类型

  • 字符串
  • 散列/哈希
  • 列表
  • 集合
  • 可排序集合

1.字符串命令

set mykey ”cnblogs”   创制变量

get mykey   查看变量

getrange mykey start end  
拿到字符串,如:get name 2 5 #获取name2~5的字符串

strlen mykey   获取长度

incr/decr mykey  
 加一减一,类型是int

append mykey ”com”  
添加字符串,添加到最终

2.哈希命令

hset myhash name “cnblogs”  
创造变量,myhash类似于变量名,name类似于key,”cnblogs”类似于values

hgetall myhash  
得到key和values两者

hget myhash  name  得到values

hexists myhash name
 检查是不是存在那些key

hdel myhash name   删除这多少个key

hkeys myhash   查看key

hvals muhash   查看values

3.列表限令

lpush/rpush mylist “cnblogs”
 左添加/右添加值

lrange mylist 0 10  
查看列表0~10的值

blpop/brpop key1[key2] timeout
  左删除/右删除一个,timeout是假使没有key,等待安装的时刻后竣工。

lpop/rpop key
  左删除/右删除,没有等待时间。

llen key  得到长度

lindex key index  
 取第index元素,index是从0开始的

澳门美高梅手机网站 6

澳门美高梅手机网站 7

4.成团命令(不另行)

sadd myset “cnblogs”  
添加内容,重临1表示不存在,0象征存在

scard key  查看set中的值

sdiff key1 [key2]  
2个set做减法,其实就是减去了社交部分

sinter key1 [key2]  
 2个set做加法,其实就是预留了两岸的混杂

spop key   随机删除值

srandmember key member
 随机拿到member个值

smember key   获取全体的因素

5.可排序集合命令

zadd myset 0 ‘project1’ [1
‘project2’]   添加集合元素;中括号是没有的,在这里是惠及了解  

zrangebyscore myset 0 100  
采纳分数在0~100的元素

zcount key min max  
拔取分数在min~max的元素的个数

享有网络协议也都是利用big
endian的不二法门来传输数据的。所以有时候大家也会把big
endian模式叫做网络字节序。当两台使用不同字节序的主机通信时,在发送数据此前都必须经过字节序的更换成为网络字节序后再开展传输。ANSI
C中提供了上面多少个转移字节序的宏。

int checkCPU()
{
 {
  union w
  {
   int a;
   char b;
  } c;
  c.a = 1;
  return (c.b == 1);
 }
}

存放内容

0x34

0x4002

0x4000

   |     78     |      56    |     34      |     12    |

 

0x4001

0x4000

内存地址

 

 

0x4001

寄存内容

0x4001

存放内容

0x78

 

    
为啥要留心字节序的题材啊?你恐怕这么问。当然,假设你写的先后只在单机环境下边运行,并且不和旁人的主次打交道,那么你完全可以忽略字节序的留存。但是,尽管您的次第要跟人家的程序爆发互动呢?尤其是当您把您在电脑上运算的结果使用到总结机群上去的话。

0x12
  而在Big-endian模式CPU内存中的存放格局则为:

0x56

0x4003

内存地址

   |     12     |      34    |     56      |     78    |

谈到字节序的问题,必然牵涉到两大CPU派系。这就是HTC的PowerPC体系CPU和AMD的x86序列CPU。PowerPC体系拔取big
endian格局存储数据,而x86体系则采纳little
endian模式存储数据。那么到底什么是big endian,什么又是little endian呢?

0x12

 

解答:

在此处自己想说说两种语言。C/C++语言编写的主次里多少存储顺序是跟编译平台所在的CPU相关的,而JAVA编写的次第则唯一运用big
endian情势来存储数据。试想,假如您用C/C++语言在x86平台下编制的顺序跟外人的JAVA程序互通时会暴发哪些结果?就拿地点的0x12345678以来,你的次序传递给别人的一个数量,将指向0x12345678的指针传给了JAVA程序,由于JAVA采纳big
endian情势存储数据,很当然的它会将你的多少翻译为0x78563412。由此,在您的C程序传给JAVA程序从前有必要开展字节序的变换工作。

寄存内容 

数据 05 06 07 08


数据 08 07 06 05

Big Endian

实则big endian是指低地址存放最高有效字节(MSB),而little
endian则是低地址存放最低有效字节(LSB)。

嵌入式系统开发者应该对Little-endian和Big-endian形式万分精晓。采取Little-endian格局的CPU对操作数的存放形式是从低字节到高字节,而Big-endian情势对操作数的寄放形式是从高字节到低字节。例如,16bit宽的数0x1234在Little-
endian情势CPU内存中的寄放模式(要是从地址0x4000起首存放)为:

0x4000

字节号 0 1 2 3

  联合体union的寄放顺序是独具成员都从低地址先导存放,解答利用该特性,轻松地得到了CPU对内存选取Little-endian仍然Big-endian模式读写。

—-【转】

0x12

比如 int a = 0x05060708

 —————————————————————————–>

0x12

   低地址                                            高地址

一道C语言的试题:请写一个C函数,若处理器是Big_endian的,则返回0;若是Little_endian的,则返回1。

  而在Big-endian情势CPU内存中的寄放情势则为:

内存地址

X86 系列 CPU都是 little-endian 的
BIG-ENDIAN、LITTLE-ENDIAN跟多字节类型的数目有关,比如int,short,long型。

   低地址                                            高地址

0x4000

0x56

0x78

字节号 0 1 2 3

0x4003

内存地址 

Little Endian 

  
—————————————————————————–>

0x34

在BIG-ENDIAN的事态下存放为:

   
用文字表明可能相比较抽象,下边用图像加以印证。比如数字0x12345678在二种不同字节序CPU中的存储顺序如下所示:

0x34

     从上边两图可以看看,采用big
endian形式存储数据是顺应我们人类的思维习惯的。

发表评论

电子邮件地址不会被公开。 必填项已用*标注