processentry32,rdss原理?
能表达3中类型:字符串、整数和浮点数。根据场景相互间自动转型,并且根据需要选取底层的承载方式

value内部以int、sds作为结构存储。int存放整型数据,sds存放字节/字符串和浮点型数据
sds内部结构:
用buf数组存储字符串的内容,但数组的长度会大于所存储内容的长度。会有一格专门存放”\0”(C标准库)作为结尾,还有预留多几个空的(即free区域),当append字符串的长度小于free区域,则sds不会重新申请内存,直接使用free区域
扩容:当对字符串的操作完成后预期的串长度小于1M时,扩容后的buf数组大小=预期长度*2+1;若大于1M,则buf总是会预留出1M的free空间
value对象通常具有两个内存部分:redisObject部分和redisObject的ptr指向的sds部分。创建value对象时,通常需要为redisObject和sds申请两次内存。单对于短小的字符串,可以把两者连续存放,所以可以一次性把两者的内存一起申请了
redis的list类型
list类型的value对象内部以linkedlist或ziplist承载。当list的元素个数和单个元素的长度较小时,redis会采用ziplist实现以减少内存占用,否则采用linkedlist结构
linkedlist内部实现是双向链表。在list中定义了头尾元素指针和列表的长度,是的pop/push操作、llen操作的复杂度为O(1)。由于是链表,lindex类的操作复杂度仍然是O(N)
ziplist的内部结构
所有内容被放置在连续的内存中。其中zlbytes表示ziplist的总长度,zltail指向最末元素,zllen表示元素个数,entry表示元素自身内容,zlend作为ziplist定界符
rpush、rpop、llen,复杂度为O(1);lpush/pop操作由于涉及全列表元素的移动,复杂度为O(N)
redis的map类型
map又叫hash。map内部的key和value不能再嵌套map了,只能是string类型:整形、浮点型和字符串
map主要由hashtable和ziplist两种承载方式实现,对于数据量较小的map,采用ziplist实现
hashtable内部结构
主要分为三层,自底向上分别是dictEntry、dictht、dict
dictEntry:管理一个key-value对,同时保留同一个桶中相邻元素的指针,一次维护哈希桶的内部连
dictht:维护哈希表的所有桶链
dict:当dictht需要扩容/缩容时,用于管理dictht的迁移
哈希表的核心结构是dictht,它的table字段维护着hash桶,它是一个数组,每个元素指向桶的第一个元素(dictEntry)
set值的流程:先通过MurmurHash算法求出key的hash值,再对桶的个数取模,得到key对应的桶,再进入桶中,遍历全部entry,判定是否已有相同的key,如果没有,则将新key对应的键值对插入到桶头,并且更新dictht的used数量,used表示hash表中已经存了多少元素。由于每次插入都要遍历hash桶中的全部entry,所以当桶中entry很多时,性能会线性下降
扩容:通过负载因子判定是否需要增加桶数。负载因子=哈希表中已有元素/哈希桶数的比值。有两个阈值,小于1一定不扩容;大于5一定扩容。扩容时新的桶数目是现有桶的2n倍
缩容:负载因子的阈值是0.1
扩/缩容通过新建哈希表的方式实现。即扩容时,会并存两个哈希表,一个是源表,一个是目标表。通过将源表的桶逐步迁移到目标表,以数据迁移的方式实现扩容,迁移完成后目标表覆盖源表。迁移过程中,首先访问源表,如果发现key对应的源表桶已完成迁移,则重新访问目标表,否则在源表中操作
redis是单线程处理请求,迁移和访问的请求在相同线程内进行,所以不会存在并发性问题
ziplist内部结构
和list的ziplist实现类似。不同的是,map对应的ziplist的entry个数总是2的整数倍,奇数存放key,偶数存放value
ziplist实现下,由哈希遍历变成了链表的顺序遍历,复杂度变成O(N)
redis的set类型
set以intset或hashtable来存储。hashtable中的value永远为null,当set中只包含整数型的元素时,则采用intset
intset的内部结构
核心元素是一个字节数组,从小到大有序存放着set的元素
由于元素有序排列,所以set的获取操作采用二分查找方式实现,复杂度O(log(N))。进行插入时,首先通过二分查找得到本次插入的位置,再对元素进行扩容,再将预计插入位置之后的所有元素向右移动一个位置,最后插入元素,插入复杂度为O(N)。删除类似
redis的sorted-set类型
类似map是一个key-value对,但是有序的。value是一个浮点数,称为score,内部是按照score从小到大排序
内部结构以ziplist或skiplist+hashtable来实现
redis客户端与服务器的交互模式
串行的请求/响应模式
每一次请求的发送都依赖于上一次请求的相应结果完全接收,同一个连接的每秒吞吐量低
redis对单个请求的处理时间通常比局域网的延迟小一个数量级,所以串行模式下,单链接的大部分时间都处于网络等待
双工的请求/相应模式(pipeline)
适用于批量的独立写入操作。即可将请求数据批量发送到服务器,再批量地从服务器连接的字节流中一次读取每个响应数据,减少了网络延迟,所以单连接吞吐量较串行会提高一个数量级
原子化的批量请求/响应模式(事务)
客户端通过和redis服务器两阶段的交互做到批量命令原子执行的事务效果:入队操作(即服务器端先将客户端发送过来的连接对象暂存在请求队列中)和执行阶段(依次执行请求队列中的所有请求)
一个连接的请求在执行批量请求的过程中,不会执行其他客户端的请求
redis的事务不是一致的,没有回滚机制。如果中途失败,则返回错误信息,但已经成功执行的命令不会回滚
事务里面有可能会带有读操作作为条件,由于批量请求只会先入队列,再批量一起执行,所以一般读操作不会跟批量写请求一起执行,这时候就有可能会导致批量写之前和之后读到的数据不一致,这种可以通过乐观锁的可串行化来解决,redis通过watch机制实现乐观锁。具体实现过程看下一题
发布/订阅模式
发布端和订阅者通过channel关联
channel的订阅关系,维护在reids实例级别,独立于redisDB的key-value体系。所有的channel都由一个map维护,键是channel的名字,value是它所有订阅者client的指针链表
脚本化的批量执行(脚本模式)
redis通过watch机制实现乐观锁流程
将本次事务涉及的所有key注册为观察模式
执行只读操作
根据只读操作的结果组装写操作命令并发送到服务器端入队
发送原子化的批量执行命令EXEC试图执行连接的请求队列中的命令
如果前面注册为观察模式的key中有一个货多个,在EXEC之前被修改过,则EXEC将直接失败,拒绝执行;否则顺序执行请求队列中的所有请求
redis没有原生的悲观锁或者快照实现,但可通过乐观锁绕过。一旦两次读到的操作不一样,watch机制触发,拒绝了后续的EXEC执行
redis的网络协议
redis协议位于TCP层之上,即客户端和redis实例保持双工的连接,交互的都是序列化后的协议数据
redis处理命令的主要逻辑
redis服务器对命令的处理都是单线程的,但是I/O层面却面向多个客户端并发地提供服务,并发到内部单线程的转化通过多路复用框架来实现
首先从多路服用框架(epoll、evport、kqueue)中select出已经ready的文件描述符(fileDescriptor)
ready的标准是已有数据到达内核(kernel)、已准备好写入数据
对于上一步已经ready的fd,redis会分别对每个fd上已ready的事件进行处理,处理完相同fd上的所有事件后,再处理下一个ready的fd。有3中事件类型
acceptTcpHandler:连接请求事件
readQueryFromClient:客户端的请求命令事件
sendReplyToClient:将暂存的执行结果写回客户端
对来自客户端的命令执行结束后,接下来处理定时任务(TimeEvent)
aeApiPoll的等待时间取决于定时任务处理(TimeEvent)逻辑
本次主循环完毕,进入下一次主循环的beforeSleep逻辑,后者负责处理数据过期、增量持久化的文件写入等任务
redis的持久化机制
redis主要提供了两种持久化机制:RDB和AOF;
RDB
默认开启,会按照配置的指定时间将内存中的数据快照到磁盘中,创建一个dump.rdb文件,redis启动时再恢复到内存中。
redis会单独创建fork()一个子进程,将当前父进程的数据库数据复制到子进程的内存中,然后由子进程写入到临时文件中,持久化的过程结束了,再用这个临时文件替换上次的快照文件,然后子进程退出,内存释放。
需要注意的是,每次快照持久化都会将主进程的数据库数据复制一遍,导致内存开销加倍,若此时内存不足,则会阻塞服务器运行,直到复制结束释放内存;都会将内存数据完整写入磁盘一次,所以如果数据量大的话,而且写操作频繁,必然会引起大量的磁盘I/O操作,严重影响性能,并且最后一次持久化后的数据可能会丢失;
AOF
以日志的形式记录每个写操作(读操作不记录),只需追加文件但不可以改写文件,redis启动时会根据日志从头到尾全部执行一遍以完成数据的恢复工作。包括flushDB也会执行。
主要有两种方式触发:有写操作就写、每秒定时写(也会丢数据)。
因为AOF采用追加的方式,所以文件会越来越大,针对这个问题,新增了重写机制,就是当日志文件大到一定程度的时候,会fork出一条新进程来遍历进程内存中的数据,每条记录对应一条set语句,写到临时文件中,然后再替换到旧的日志文件(类似rdb的操作方式)。默认触发是当aof文件大小是上次重写后大小的一倍且文件大于64M时触发;
当两种方式同时开启时,数据恢复redis会优先选择AOF恢复。一般情况下,只要使用默认开启的RDB即可,因为相对于AOF,RDB便于进行数据库备份,并且恢复数据集的速度也要快很多。
开启持久化缓存机制,对性能会有一定的影响,特别是当设置的内存满了的时候,更是下降到几百reqs/s。所以如果只是用来做缓存的话,可以关掉持久化。
redis内存分析的设计思路
主要有3种方式可以实现
keys命令:获取到所有的key,再根据key获取所有的内容。缺点是如果key数量特别多,则会导致redis卡住影响业务
aof:通过aof文件获取到所有数据。缺点是有一些redis实例写入频繁,不适合开启aof,并且文件可能特别大,传输、解析效率差
rdb:使用bgsave获取rdb文件,然后解析。缺点是bgsave在fork子进程时有可能会卡住主进程。当对于其他两种,在低峰期在从节点做bgsave获取rdb文件,相对安全可靠。
设计思路:
在访问低峰期时根据redis获取rdb文件
解析rdb文件
根据相对应的数据结构及内容,估算内容消耗等
统计并生成报表
开源框架:https://github.com/xueqiu/rdr
redis内存估算
基础的数据类型:sds、dict、intset、zipmap、adlist、quicklist、skiplist
举例:以key为hello,value为world,类型是string,它的内存使用:
一个dictEntry的消耗(有2个指针,一个int64的内存消耗),RedisDB就是一个大dict,每对kv都是其中的一个entry;
一个robj的消耗(有1指针,一个int,以及几个使用位域的字段共消耗4字节),robj是为了在同一个dict内能够存储不同类型的value,而使用的一个通用的数据结构,全名是RedisObject;
存储key的sds消耗(存储header以及字符串长度+1的空间,header长度根据字符串长度不同也会有所不同),sds是Redis中存储字符串使用的数据结构;
存储过期时间消耗(也是存储为一个dictEntry,时间戳为int64);
存储value的sds消耗,根据数据结构不同而不同;
前四项基本是存储任何一个key都需要消耗的,最后一项根据value的数据结构不同而不同;
redis集群(redis cluster)
redis3以后,节点之间提供了完整的sharding(分片)、replication(主备感知能力)、failover(故障转移)的特性
配置一致性:每个节点(Node)内部都保存了集群的配置信息,存储在clusterState中,通过引入自增的epoch变量来使得集群配置在各个节点间保持一致
sharding数据分片
将所有数据划分为16384个分片(slot),每个节点会对应一部分slot,每个key都会根据分布算法映射到16384个slot中的一个,分布算法为slotId=crc16(key)%16384
当一个client访问的key不在对应节点的slots中,redis会返回给client一个moved命令,告知其正确的路由信息从而重新发起请求。client会根据每次请求来缓存本地的路由缓存信息,以便下次请求直接能够路由到正确的节点
分片迁移:分片迁移的触发和过程控制由外部系统完成,redis只提供迁移过程中需要的原语支持。主要包含两种:一种是节点迁移状态设置,即迁移钱标记源、目标节点;另一种是key迁移的原子化命令
failover故障转移
故障发现:节点间两两通过TCP保持连接,周期性进行PING、PONG交互,若对方的PONG相应超时未收到,则将其置为PFAIL状态,并传播给其他节点
故障确认:当集群中有一半以上的节点对某一个PFAIL状态进行了确认,则将起改为FAIL状态,确认其故障
slave选举:当有一个master挂掉了,则其slave重新竞选出一个新的master。主要根据各个slave最后一次同步master信息的时间,越新表示slave的数据越新,竞选的优先级越高,就更有可能选中。竞选成功之后将消息传播给其他节点。
集群不可用的情况:
集群中任意master挂掉,且当前master没有slave。
集群中超过半数以上master挂掉。
普通哈希算法和一致性哈希算法对比
普通哈希:也称硬哈希,采用简单取模的方式,将机器进行散列,这在cache环境不变的情况下能取得让人满意的结果,但是当cache环境动态变化时,这种静态取模的方式显然就不满足单调性的要求(当增加或减少一台机子时,几乎所有的存储内容都要被重新散列到别的缓冲区中)。
一致性哈希:将机器节点和key值都按照一样的hash算法映射到一个0~2^32的圆环上。当有一个写入缓存的请求到来时,计算Key值k对应的哈希值Hash(k),如果该值正好对应之前某个机器节点的Hash值,则直接写入该机器节点,如果没有对应的机器节点,则顺时针查找下一个节点,进行写入,如果超过2^32还没找到对应节点,则从0开始查找(因为是环状结构)。为了更可能的满足平衡性,可以引入虚拟节点,即一个实体节点映射到多个虚拟节点。
参考:http://blog.huanghao.me/?p=14
缓存雪崩,缓存穿透,缓存并发,缓存预热,缓存算法
缓存雪崩:可能是因为数据未加载到缓存中,或者缓存同一时间大面积的失效,从而导致所有请求都去查数据库,导致数据库CPU和内存负载过高,甚至宕机。解决思路:
加锁计数(即限制并发的数量,可以用semphore)或者起一定数量的队列来避免缓存失效时大量请求并发到数据库。但这种方式会降低吞吐量。
分析用户行为,然后失效时间均匀分布。或者在失效时间的基础上再加1~5分钟的随机数。
如果是某台缓存服务器宕机,则考虑做主备。
缓存穿透:指用户查询数据,在数据库没有,自然在缓存中也不会有。这样就导致用户查询的时候,在缓存中找不到,每次都要去数据库中查询。解决思路:
如果查询数据库也为空,直接设置一个默认值存放到缓存,这样第二次到缓冲中获取就有值了,而不会继续访问数据库。设置一个过期时间或者当有值的时候将缓存中的值替换掉即可。
可以给key设置一些格式规则,然后查询之前先过滤掉不符合规则的Key。
缓存并发:如果网站并发访问高,一个缓存如果失效,可能出现多个进程同时查询DB,同时设置缓存的情况,如果并发确实很大,这也可能造成DB压力过大,还有缓存频繁更新的问题。解决思路:
对缓存查询加锁,如果KEY不存在,就加锁,然后查DB入缓存,然后解锁;其他进程如果发现有锁就等待,然后等解锁后返回数据或者进入DB查询。
缓存预热:目的就是在系统上线前,将数据加载到缓存中。解决思路:
数据量不大的话,在系统启动的时候直接加载。
自己写个简单的缓存预热程序。
缓存算法:
FIFO算法:First in First out,先进先出。原则:一个数据最先进入缓存中,则应该最早淘汰掉。也就是说,当缓存满的时候,应当把最先进入缓存的数据给淘汰掉。
LFU算法:Least Frequently Used,最不经常使用算法。
LRU算法:Least Recently Used,近期最少使用算法。
LRU和LFU的区别。LFU算法是根据在一段时间里数据项被使用的次数选择出最少使用的数据项,即根据使用次数的差异来决定。而LRU是根据使用时间的差异来决定的。
用redis实现分布式锁
主要使用的命令:
setnx key val。当且仅当key不存在时,set一个key为val的字符串,返回1;若key存在,则什么都不做,返回0。
expire key timeout。为key设置一个超时时间,单位为second,超过这个时间锁会自动释放,避免死锁。
delete key。删除锁
实现思想:
使用setnx加锁,如果返回1,则说明加锁成功,并设置超时时间,避免系统挂了,锁没法释放。在finally中delete删除锁释放。
如果需要设置超时等待时间,则可以加个while循环,在获取不到锁的情况下,进行循环获取锁,超时了则退出。
那么一个txt改成exe?
这个理论有几率,但是几率如同大海里的一粒沙子一样,你可以认为几率几乎为0;
一个可执行文件exe,必须是有固定格式,特定的字节或字段有特定的含义,每个字节或者字段会被检测,看是否exe合法,再回最终加载到系统内运行。
在windows系统中,exe可执行文件,必须满足PE格式(Portable Executable),它是是Windows操作系统下使用的可执行文件格式,不是任何txt改为exe后,就会符合PE格式的。
这是一个PE格式的简要框图。
当widonws加载exe的时候,它首先会检查DOS header里的PE header偏移,通过偏移找到PE头。如果有一个TXT,那么这个偏移就随机,你想想,PE头找到哪里去了,鬼都不知道。
即使这个字段蒙上了,正好跳到了一个合法地址(几率很小很小啊)
windows加载器会跳转到PE header,然后后,接下来要做的就是检查PE header是否有效。如果该PE header有效,就跳转到PE header的尾部。
PE头包括以下几个重要信息
1.Magic
为IMAGE_OPTIONAL_HEADER32时,magic码为10B,为IMAGE_OPTIONAL_HEADER64时,magic码为20B
其它无效,您能保证这个头部,正好是10B或者20B么,其它都无效,启动失败。
2、AddressOfEntryPoint
程序入口地址,
该值指出程序最先执行的代码起始地址,相当重要。
如果是txt改变过来的exe,这个地方的地址是多少,鬼知道啊,加载器会到哪里加载程序,几率渺茫。
3、ImageBase
程序的基础地址,一般windows程序,这个值是00400000,如果随机的,这个值的范文就海了去了。
执行PE文件时,PE装载器先创建进程,再将文件载入内存,然后把EIP寄存器的值设置为ImageBase+AddressOfEntryPoint。这家伙这些值随机,范围会随机,合法性检测很难通过
4、SectionAlignment,FileAlignment
硬盘和内存的对齐位置。
就是按照什么字节对齐,这个也不许合法,如果随机,执行加载会乱套,所以不合法也不会加载
5、SizeOfImage
程序大小,一般都有个上限,随便填写也不会加载成功
6、SizeOfHeader
PE头大小
SizeOfHeader用来指出整个PE头大小。该值必须是FileAlignment的整数倍。必须和SizeOfHeader距文件开始偏移的量相同。
7、Subsystem
驱动还是普通程序,其它不合法,加载失败
8、NumberOfRvaAndSizes
NumberOfRvaAndSizes用来指定DataDirectory的数组个数,加载器识别这个值
简单列了这些,其实PE头里的信息和字段远远不止这些,合法性检测也比这多得多。
所以,随机使用一个txt硬改为exe,里面的二进制bit并不是符合PE格式的,检测会不通过,加载器加载失败,程序运行不起来的。
东风41的威力有多强?
东风41导弹是我国火箭军装备的新型战略弹道导弹,射程为12000多公里,他的弹头为分导式多弹头,具体多少个分弹头并不清楚,但是一定比东风31AG的3-6个分弹头更多,东风41导弹是我国有了新的火箭燃料和燃料雕刻技术以及新的发动机后研发的,性能必然比东风31AG更强大。
东风41导弹可以覆盖整个北美,战略威慑力度大不一样。
图为网友拍摄到的我国东风41导弹。
具体来说,东风41导弹在体积不会超过东风31AG太多的基础上,可以实现更大的射程,真正实现了在我国边境发射就能覆盖到北美等地的目标,具备强大的战略威慑力,而且由于可以搭载的分导式弹头更多,而且具备越野机动发射能力,因此他的生存能力和导弹的突防能力都更强,总的来说,其技术指标不会比俄罗斯早先的白杨M导弹差太多。
图为我国展示的东风31AG弹道导弹,他的射程超过了10000公里,但是打击威力和分导弹头都不如东风41。
另外,东风41导弹可以使用我国刚刚研发成功,并且用在弹道导弹弹头上的高速空气舵,这种空气舵可以承受18马赫的高速,不会发生故障,因此,弹头可以具备一定的机动和变轨能力,提高了打击的精确度,美国媒体认为其打击精度应该在数十米级,精度提高后,东风41导弹就具备一个能力:对敌人的核弹发射井进行精确轰击,因而具备了精准打击敌人核设施的能力。
图为正在测试的东风41导弹的越野机动式发射车。
东风41导弹迄今为止已经进行了10次左右的试射,从2013年以来每年都在进行试射和测试,这说明导弹的可靠性是很好的,迄今为止所有的试射基本都以成功告终,说明导弹已经具备了一定的部署能力,而且其机动越野式发射运输车经常被网友拍到,说明该导弹已经不是我国最先进的导弹技术了,已经是半公开的状态了。
图为网友拍摄到的东风41导弹的发射车。
图为军迷设想的东风41导弹设想图。
图为现在已经大量服役的东风31AG战略导弹。
火影忍者雷牙出场集数?
1 漩涡鸣人 登场 2 我是木叶丸! 3 宿敌!?佐助和小樱 4 训练!生存演习 5 丧失资格?卡卡西的结论 6 重要的任务!向着波之国出发 7 雾隐的暗杀者 8 以疼痛为誓的决心 9 写轮眼卡卡西 10 查克拉之林 11 存在过英雄的国家 12 桥上的决战 再遇再不斩 13 白的秘术 魔镜冰晶 14 最出人意料的鸣人参战 15 零视界之战 写轮眼崩溃 16 被解开的封印 17 白色的过去 秘密的回忆 18 被称为忍者的道具 19 再不斩随雪而逝 20 冲入新章!中忍试验 21 报上名来!强敌出现 22 干劲120% 锁定在NOW的挑战书 23 踢飞对手·九名新人全部集合 24 突然失格 超难的第一场试验 25 决定胜负!进退两难第10题 26 不能错过!死之森林进入前报道!这是木叶丸的学级新闻!(合集) 27 第二场考试开始!周围都是敌人! 28 打败它还是被吃掉!鸣人当诱饵 29 鸣人的反击~我才不要逃呢 30 觉醒的写轮眼 必杀·火遁龙火之术 31 意志坚持 我会至死守护你 32 樱花盛开 决意后的小樱 33 无敌阵型 井野小组出战 34 赤丸的恐慌 我爱罗 惊异的实力 35 决不能偷看 卷轴的秘密 36 分身对决 我才是主角啦 37 第二试验突破!新人9人全部集齐 38 合格者1/2 突如而来的预选赛 39 浓眉小子的妒忌!‘狮子连弹’诞生! 40 一触即发!卡卡西VS大蛇丸 41 对手激突!少女内心是认真模式 42 最好的对手しヤ—んなろ—!! 43 鹿丸退退缩缩!?女忍者们的热血之战 44 赤丸参战!!谁才是丧家之犬! 45 雏田脸红了!观客大惊 鸣人的绝招 46 白眼开眼!!羞怯的雏田 大胆的决意! 47 在自己向往的人面前!! 48 我爱罗粉碎!!青春!力量!爆发吧! 49 热血中止!终于爆发 禁断的奥义! 50 呜呼ROCK·李!这才是男人的活法!! 51 暗中蠢动的影子 佐助的危机! 52 惠比寿再现!我决不饶恕不知廉耻的家伙! 53 哎呀!等会啊 好色仙人登场 54 好色仙人直传 通灵之术啊!! 55 悲伤的思念 载有祝愿的一朵花 56 生或死!?传授奥义是要赌上性命的! 57 飞啦!跳啦!潜水啦!蛤蟆老大登场!! 58 接近忍者的魔手!被狙击的病室 59 猛烈 猛烈 猛冲刺 正赛开始了! 60 白眼VS影分身!我绝对会赢!! 61 死角ZERO!另一种绝对防御 62 废物的潜力! 63 丧失资格!?危险!失足!波澜起伏的正式选拔赛! 64 云彩真是好啊...干劲ZERO的男人 65 激战!树叶飞舞 沙子蠕动之时 66 佐助大活跃 Special (合集) 67 不是光迟到而已!究极奥义·千鸟诞生!! 68 ‘毁灭木叶’开始行动 69 等了好久了!A级任务!! 70 逃跑NO.1麻烦鬼不得不干!! 71 古今无双!‘火影’级别的战斗 72 火影的过失 假面下的面孔 73 禁术奥义!‘尸鬼封尽’ 74 惊愕!我爱罗的真面目 75 超越极限...佐助的决断!! 76 月夜的暗杀者 77 光明与黑暗 名字叫做我爱罗 78 爆发 这就是鸣人的忍法帖 79 冲破极限 光明与黑暗 80 第三代火影 永别了 81 朝雾之归乡 82 写轮眼VS写轮眼 83 oh! no! 自来也的灾难 鸣人的浩劫 84 低吼的千鸟 怒吼吧佐助! 85 愚蠢的弟弟啊!仇恨吧!憎恨吧! 86 修行开始 我绝对要变强 87 本能 被打破的水球 88 木叶的标记与护额 89 波纹 90 愤怒的爆发 不可饶恕 91 初代火影的遗产 召唤死亡的项链 92 YES OR NO 纲手的回答 93 交涉决裂 94 看招吧,愤怒的螺旋丸? 95 五代火影 赌上性命的战斗(合集) 96 三忍的僵斗 97 鸣人的热气追逐赛 98 放弃做忍者吧 纲手的通告 99 继承火的意志的人 100 热血师徒的羁绊 男人贯彻忍道的时候 101 想看 想知道 想确认 卡卡西老师的真面目 102 难得的新任务 拯救情理 人情和茶之国 103 击沉鸣人 充满阴谋的漩涡海面 104 跑起来 痛手!呼唤暴风雨波的那岐岛 105 终点就在眼前 雷鸣轰隆的大激斗 106 痛手能否到达!执着的最后冲刺 107 想和你比试!终于对峙 佐助vs鸣人 108 看不见的裂缝 109 音的诱惑 110-111 木叶五人众+狗狗铜墙铁壁的阵形大活跃 特别篇 112 突然间友情崩坏 鹿丸小队大危机 113 力量全开 燃烧吧 丁次 114 再见了 朋友 但我依然相信你 115 你的对手 就是我 116 视野360度 白眼的死角 117 不能输的理由 118 夺回 迟到的容器 119 失策!新的敌人 120 吼叫吧 咆哮吧 终极合体 121 各自的战斗 122 伪装 男子汉鹿丸 起死回生的赌局 123 木叶的碧绿野兽 登场 124 野兽爆发 跳吧 飞吧 冲吧 125 木叶同盟国 砂之忍者 126 最强的对决!我爱罗VS君麻吕! 127 佐助之死 128 给我停下来 佐助! 129 鼬和佐助 隔若天涯 130 父与子 家徽的裂纹 131 开眼 万花筒写轮眼的秘密 132 朋友 133 泪的咆哮 你是我的朋友 134 泪雨的终结 135 未能信守的约定 (136—220)动画原创 136 潜入搜查!?终于到来的超S级任务 137 无法无天者的小镇 风魔一族的阴影 138 清澈的背叛 飘渺的愿望 139 恐怖 大蛇丸的堡垒 140 两次鼓动 兜的陷阱 141 樱的决心 142 监禁机关的三恶人 143 冲啊 豚豚 该是靠你的鼻子的时候了 144 新生三人组 两人加一只 145 爆裂 新招术 猪.鹿.蝶 146 残余的野心 大蛇丸的阴影 147 因缘的对决 你战胜不了我 148 连赤丸都嫉妒的超级追踪能力 寻找神秘的微香虫 149 哪里不对了 虫子怎么看都一样 150 欺骗 失算 被骗 壮绝的虫子大作战 151 燃烧吧 白眼 这就是我的忍道 152 生命的送葬曲 153 砸向内心 爱之铁拳 154 白眼的天敌 155 悄悄逼近的乌云 156 逆袭的雷牙 157 狂奔吧 命之咖喱 158 大伙儿跟我来 汗与泪的陷阱生存大挑战 159 敌方还是我方 荒野的赏金猎人 160 抓获还是被抓 OK寺的决斗 161 稀客参见 碧绿的野兽 猛兽…珍兽 162 白色诅咒的武士 163 谋士 红明的阴谋 164 大大迟到的帮手 165 鸣人之死 166 永恒的时间 167 白鹭振翅的时间 168 燃烧吧 水锅 搅一搅拉长了煮好捞上来 169 记忆 失落的页张 170 冲击 尘封的心扉 171 潜入!设下的陷阱! 172 绝望!被撕碎的心 173 海战 解放的力量 174-有可能吗?名忍法 金遁之术! 175 挖这里 汪汪!寻找埋藏的珍宝 176 疾走 迷走 蜿蜒走!谁追谁逃未知 177-oh!_请.邮递员先生 178 相遇 拥有“星”之名的少年 179 夏日星 回忆的儿歌 180 孔雀妙法的代价 181 星影 被掩埋的事实 182 再会追昔之时 183-星燃苍穹 184 犬冢牙漫长的一天 185-木叶的传说 幻狼凶兽存在 186-附送的折磨 187 开业 木叶搬家中心 188 不可思议 被阻击的行商人 189 地下水 无尽忍具 190 白眼开!磁使的死角 191 死的宣告 192 井野惊叫 发福爱之伊甸园 193 万岁踢场 青春爆发! 194 怪异 被诅咒的幽灵城 195 第三超兽 最大的对手 196 泪之激斗!热血师徒对决 197 大危机 木叶的十一人全员集合 198 暗部束手无策 鸣人的记忆 199 偏离靶心 逐渐清晰的目标 200 现役大活发!最强助手 201 多重陷阱 崩溃的倒计时 202 忍者们的充满汗和泪水的经典5决斗 203 红的决意 被抛弃的第8班 204 被瞄准的八云 被封印的力量 205 红的机密任务 和三代的约定 206 是幻术还是真实 支配五感之人 207 本应被封印的能力 208 名器 花鸟风月之重 209 敌人是"不忍" 210 迷路森林 211 火之记忆 212 各自不同的道路 213 丧失的记忆 214 取回的现实 215 想要抹去的过去 216 消失的匠 被阻击的守鹤 217 砂忍同盟国 木叶的忍者 218 被封印之砂 水虎的反击 219 被唤醒的究极兵器 220 出发旅行 火影忍者疾风传 221 归乡 222 晓之始动 223 修行的成果 224 砂之人柱力 225 作为风影 226-227 艺术乃爆炸也! 228-229 卡卡西班出动! 230 封印术·幻龙九封尽 231 医疗忍者的弟子 232 隐居婆婆的决意 233 命中注定的相会 234 鸣人的成长 235 杀手锏 命名为...! 236 人柱力的秘密 237 我爱罗之死! 238 突入!Button Hook Entry 239 陷阱启动!凯班之敌 240 蝎VS两位女忍者 241 蝎的真面目 242-243 夏之阵 244 三代风影 245 生死的三分钟 246 十机VS百机 247 无法实现的梦想 248 苏醒的野兽们 249-250吹飞到异空间 251 继承者 252 风影回归 253 新的目标 254 结成!新卡卡西班 255 画蛇添足 256-257新生卡卡西班出阵 258 模拟战斗训练 259 天地桥 260-261 战时已到 262 大蛇丸VS人柱力 263 小樱的眼泪 264 战斗的始末 265 背叛的尽头 266 未完之页 267 潜入!毒蛇的巢穴 268 羁绊 269 宝贵的东西 270 画册讲述的故事 271-272 佐助登场 273-274木叶新芽 275 旋风 (276-291)动画原创 276 蠢动 277 被夺去的睡眠 278 孤独 279 新的敌人 280 变幻无常 281 接触 282 队友 283 双玉 284-285 木叶完全封锁 286 黄泉之魂 287 各自的死斗 288-289 红色查克拉!破坏和暴走 290 共鸣 291 朋友啊 292 来自忍者的威胁 293 “晓”的进攻 294 星空之下 295 老僧的祈祷 296-297 大激战!晓VS阿斯玛班 决战 298-299 阿斯玛战死 绝望和恸哭 300 最后的话语 301 噩耗 302 第十班 303 捕捉目标 304 角都的能力 305 可怕的秘密 306-307 继承火之意志 新术爆发 308 风遁·螺旋手里剑 309 力量的代价 (310-332)动画原创 310 忍者的决心 311 发现 大蛇丸的巢穴 312 遭遇 313 心灵相通 314 一夜雨 315 双重守护 316 看不见的敌人 317 乱反射的迷宫 318 目标出现 319 狂暴的尾兽 320 雾中 321-322 鸣人VS红莲 323-324 封印大作战 325 结界攻防战 326 红色山茶花 327 同舟共济 328 山茶花的路标 329 咒印的反击 330 罪之记忆 331 被破碎的约定 332 归处 333 大蛇的瞳孔 334 鹰之眼 335 再不斩大刀 336 铁壁的看守人 337 北方据点的重吾 338 结成! 339-340 卡卡西外传 战场上的男孩人生 341 开始行动的人们 342 搜索 343 冲突 344 艺术 345 消失 346 黄昏 347~348 自来也忍法帖 349~350 潜入雨隐村!自来也的决定 351 发动!仙人模式 352 佩恩六道,登场 353 自来也豪杰物语 354 宴会的请帖 355-356 流转的终结!兄弟的再会 357 天照 358 终结 359 阿飞之谜 360 因缘 361 真相 362 云雷峡的战斗 363 八尾vs佐助 364 风来坊 365 禁术的继承者 366 雷之国破裂 367 鹰的颤栗
早上上了公交的第二站?
公共场所标语 : 1 请勿摄像 no filming/no video 2 请勿录音 no recording 3 请勿拍照 no photography 4 请勿吸烟 no smoking 5 请勿蹬踏 dont step on 6 请勿触摸 dont touch 7 请勿入内 no admittance 8 保持安静/请勿大声喧哗 quiet please 9 请勿乱动开关 please dont touch the switch 10 请勿将软包装的饮料带入场内 no drinks from outside 11 请随手关门 keep door closed /please close the door behind you. 12 请节约用水 please save water/dont waste water 13 请节约用纸 please save paper/dont waste paper 14 请出示证件 please show your id 15 请排队等候入场 please line up 16 请保持场内清洁 please keep the area clean/ dont litter 17 请关闭通讯设备 please turn off cellphones beepers 18 请将手机和寻呼机静音 please mute cellphones beepers 19 小心烫伤 caution! hot 20 小心地滑 caution! slippery/caution! wet floor 21 小心玻璃 caution! glass 22 道路湿滑请小心 caution! slippery when wet 23 下台阶时请您小心 watch your step/ mind the step 24 观众止步 no admittance 25 非公莫入 staff only 26 禁止通行 no admittance/no entry 27 谢绝参观 no admittance 28 谨防扒窃 beware of pickpockets 29 严禁使用明火 no open flame 30 场内禁止吸烟 no smoking 31 非演职人员请勿入内 staff only 32 演出人员请到此止步 no admittance for performers 33 一米以下儿童谢绝入内 no admittance for children under 1m. 34 贵宾专用通道 vip only 35 办公区域,观众止步 staff only 36 舞台重地、观众止步 staff only 37 贵重物品请随身保管 please dont leave your valuables unattended38 易碎品,请轻拿轻放 fragile! handle with care 39 商品展示柜,此产品不参加活动 display only 40 请保管好您随身携带的物品 take care of your belongings 41 离开时请您带上您的包 please take your belongings when leaving 42 演出进行中,请勿大声喧哗或随意走动。 performance in progress, please keep your voices down and stay in your seat. 43 欣赏交响乐曲时,乐曲的乐章之间,请不要鼓掌。 no applause between movements please 45 谢谢合作! thanks for your cooperation! 46 机房重地,非公莫入 machine room. staff only. 47 自动门 automatic door 48 应急疏散出口 emergency exit 49 紧急出口你 emergency exit 50 禁止出入 please remain seated during performance 51 电源 power supply 52 消防通道禁止停车 fire engine access. no parking.
不知君看完了没有,那条规定不可以吃着包子上公交车了。现在的年轻人压力这么大。谁 有条件也不会去挤公交去。
你嫌弃,你可以骑共享单车,坐滴滴,坐出租。出行方式有的是。干嘛去挤公交车,难道你有屁也要憋到下车才放吗?


还没有评论,来说两句吧...