By 张旭 CaesarChang 合作 : root121toor@gmail.com 关注我 带你看更多好的技术知识和面试题 给定一个链表,判断链表中是否有环。...为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。...fast=fast.next.next; slow=slow.next; } return false; } } 使用快慢指针
一些应用程序(如 LibreOffice)提供了一个点选式的用户界面来管理这些设置。有些,像 Tracker(GNOME 的“任务”,用于索引文件)使用 XML 文件。...在这篇文章中,我将回避关于是否使用 JSON 作为配置文件格式的争论,并解释如何使用 Groovy 编程语言 来解析这类信息。...演示的 JSON 配置文件 在这个演示中,我从 Drupal 中截取了这个 JSON 文件,它是 Drupal CMS 使用的主要配置文件,并将其保存在文件 config.json 中: { "vm"...parseText() 来解析一个字符串,而不是从文件中读取。...眼尖的读者会注意到,我没有检查畸形的 JSON,也没有仔细确保用户的配置是有意义的(不创建新字段,提供合理的值,等等)。所以用这个递归方法来合并两个映射在现实中可能并不那么实用。
Drupal是一个开源的内容管理平台,它驱动着全球数以百万计的网站和应用,来世界各地不同地方的人们形成的多元并且活跃的社区创建和使用Drupal,并且提供支持。...Drupal的优势: Drupal遵从开源许可,拥有最庞大的开源社区 可扩展性强 多站点支持 优越的模块数据库表结构的定义和升级机制 Drush命令行工具 内置网页压缩缓存功能 有丰富的网络服务接口 许多网站都使用...Drupal,来搭建一个自己的个人博客。...root用户的密码 4、创建Drupal7的工作目录 mkdir /var/www/drupal7 chown ubuntu:ubuntu /var/www/drupal7 之所以要将Drupal7的工作目录的所有者从...rwx -m u:ubuntu:rwx /var/www/drupal7/sites/default/files 过程中需要添加acl属性 其中将该上传目录用户设为www-data主要是为了让Drupal
默认情况下 mongodump 不获取 local 数据库里面的内容。 mongodump 仅备份数据库中的文档,不备份索引,所以我们还原后,需要重新生成索引。 ...示例: 我们的备份计划是,每天备份一次数据,Oplog 记录的保持时间要大于1天。 Oplog 的开启是需要开启副本集才能开启的,所以以上备份策略是针对副本集。...在MongoDB中4.0.3,对 WiredTiger 引擎,使用该命令会进行以下操作 重建所有索引 丢弃损坏的数据 为残缺的元数据创建存根文件。...对于MMAPv1 引擎 重建所有索引 丢弃损坏的数据 数据恢复流程: 一般情况下,你不应该手动删除该mongod.lock文件。而是,使用上述过程来恢复数据库。...在严峻的情况下,您可以删除文件,使用可能损坏的文件启动数据库,并尝试从数据库中恢复数据,但这存在风险。
小的段被合并到大的段,然后这些大的段再被合并到更大的段。 3、段合并做了什么? 段合并的时候会将那些旧的已删除文档从文件系统中清除。 被删除的文档(或被更新文档的旧版本)不会被拷贝到新的大段中。...(可以物理上删除document,但只是做了删除标记,物理上并没有删除) 3)当段合并时,这些被标记为删除的文档并没有被拷贝至新的索引段中,这样,减少了最终的索引段中的document数目。...当你在设计架构、决定节点数量、有多少个索引以及每个索引的分片数量时,你需要把能接受的出现故障的节点数量考虑进去。 当然了,你还需要考虑性能,只不过冗余和高可用应该是进行扩展时的一个因子。...(1)选择正确的存储 如:选择默认的default存储类型。 (2)按需设定刷新频率 索引刷新频率定义:文档需要多长时间才能出现在搜索结果中。...另一方面:如果有大量的数据,为了使用聚合和排序功能而不产生内存相关问题,唯一选择——使用 doc values。
每种数据结构有自己的优点和缺点,想想如果Google的数据用的是数组的存储,我们还能方便地查询到所需要的数据吗?而算法,在这么多的数据中如何做到最快的插入,查找,删除,也是在追求更快。...这里两个名词需要注意: 压栈:就是存元素。即,把元素存储到栈的顶端位置,栈中已有元素依次向栈底方向移动一个位置。 弹栈:就是取元素。...简单的说,采用该结构的集合,对元素的存取有如下的特点: 查找元素快:通过索引,可以快速访问指定位置的元素 增删元素慢 指定索引位置增加元素:需要创建一个新数组,将指定新元素存储在指定索引位置...如下图 **指定索引位置删除元素:**需要创建一个新数组,把原数组元素根据索引,复制到新数组对应索引的位置,原数组中指定索引位置元素不复制到新数组中。...查找元素慢:想查找某个元素,需要通过连接的节点,依次向后查找指定元素 增删元素快: 增加元素:只需要修改连接下个元素的地址即可。 删除元素:只需要修改连接下个元素的地址即可。
对文中术语的解释: 索引:Google会将其发现的网页存储在索引中,每个网页的索引条目都描述了该网页的内容和位置(也就是网址)。编入索引是指Google抓取、读取网页并将其添加到索引的过程。...你的网站是否在Google的索引中?...怎么让我的网站出现在Google索引中?...元素可以告诉用户和搜索引擎网页的主题是什么,要注意的是title应该放在网页元素中,并且要给网站上的每一个网页都创建一个独立的标题。...另外,要尽可能的让网站的导航和栏目设计更容易被用户使用,也不要过度的拆分内容,比如用户从首页到某一个具体页面,需要点击二十几次,这就是明显的不友好。
现实世界的存储,我们使用的工具和建模。每种数据结构有自己的优点和缺点,想想如果Google的数据用的是数 组的存储,我们还能方便地查询到所需要的数据吗?...这里两个名词需要注意: 压栈:就是存元素。即,把元素存储到栈的顶端位置,栈中已有元素依次向栈底方向移动一个位置。 弹栈:就是取元素。...增删元素慢 指定索引位置增加元素:需要创建一个新数组,将指定新元素存储在指定索引位置,再把原数组元素根 据索引,复制到新数组对应索引的位置。如下图 ?...指定索引位置删除元素:需要创建一个新数组,把原数组元素根据索引,复制到新数组对应索引的位 置,原数组中指定索引位置元素不复制到新数组中。如下图 ?...查找元素慢:想查找某个元素,需要通过连接的节点,依次向后查找指定元素 增删元素快: 增加元素:只需要修改连接下个元素的地址即可。 ? 删除元素:只需要修改连接下个元素的地址即可。 ?
默认情况下 mongodump 不获取 local 数据库里面的内容。 mongodump 仅备份数据库中的文档,不备份索引,所以我们还原后,需要重新生成索引。 ...这样的操作就会导致 Oplog 里面的之前的操作记录会被快速覆盖。 所以我们在备份的时候,需要注意 备份的间隔时间 和 Oplog 记录被覆盖的时间(也就是 Oplog 记录了多长时间的日志 )。...示例: 我们的备份计划是,每天备份一次数据,Oplog 记录的保持时间要大于1天。 Oplog 的开启是需要开启副本集才能开启的,所以以上备份策略是针对副本集。...在MongoDB中4.0.3,对 WiredTiger 引擎,使用该命令会进行以下操作 重建所有索引 丢弃损坏的数据 为残缺的元数据创建存根文件。...而是,使用上述过程来恢复数据库。在严峻的情况下,您可以删除文件,使用可能损坏的文件启动数据库,并尝试从数据库中恢复数据,但这存在风险。
」 Google 云存储库的「repository-gcs」 存储库验证 注册存储库后,会立即在所有主节点和数据节点上进行验证,以确保它在集群中当前存在的所有节点上都能正常工作。...在快照初始化过程中,所有以前的快照的信息都会加载到内存中,这意味着在大型存储库中,即使wait_for_completion参数设置为false,此命令也可能需要几秒钟(甚至几分钟)才能返回。...可以使用以下命令检索当前正在运行的快照: curl -X GET "localhost:9200/_snapshot/my_backup/_current" 可以使用以下命令从存储库中删除快照: curl...-X DELETE "localhost:9200/_snapshot/my_backup/snapshot_2" 从存储库中删除快照时,Elasticsearch 将删除与已删除快照关联且未被任何其他快照使用的所有文件...也可以使用indexs参数仅选择索引的子集。 如果使用「分片分配过滤」将原始集群中的索引分配给特定的节点,那么新集群中将强制执行相同的规则。
] 4、坑4:配置了节点角色的热温冷节点数据迁移不再需要配置分片分配策略 Elasitcsearch 7.9 之前早期版本,需要配置分片分配策略机制。...你好, 问一个关于ilm配置的问题,一直想不明白他每个阶段配置的min_age的含义是针对的什么?是索引创建多久后移动到这个阶段吗?还是在上个阶段停留多长时间后到这个阶段?...6.1 min_age 定义 在 ILM 中,索引基于 min_age 参数进入一个阶段(phrase)。 min_age通常是指从索引被创建时算起的时间。...在此之前,索引处于等待状态。 进入 warm 暖阶段后,它将等到 30 天后才进入删除 delete 阶段并删除索引。...表示该阶段中的操作完成后,索引将立即从一个阶段过渡到下一个阶段,也就意味着索引会在应用策略(policy)时立即进入热阶段。 6.3 更新 min_age 会怎么样?
特性 作为分布式数据库 每一个Spanner的实例都是在不同数量的节点上运行的,每一个节点都是由Google云平台服务去自动管理的。...删除父表行需要满足其中两点之一: 在子表中没有对应的行。 声明ON DELETE CASCADE。...ON DELETE CASCADE 声明表示,当父表中的某一行被删除时,子表中对应的行也会被自动删除。如果没有该声明,或声明为ON DELETE NO ACTION,则必须先删除子行,才能删除父行。...表结构的更新 Cloud spanner支持对现有的数据库架构执行以下更新操作: 新建表。新表格中的列可以为 NOT NULL。 删除一个表,前提是该表内没有交错其他表,并且没有二级索引。...从任何表中删除非主键列,前提是二级索引未在使用该列。 将 STRING 列更改为 BYTES 列,或将 BYTES 列更改为 STRING 列。
引擎一般指的是搜索引擎,现在用得比较多的就是Elasticsearch。 这篇文章主要是对Elasticsearch一个简单的入门,没有高深的知识和使用。...但是要明白的是:name like %Java3y%这类的查询是不走索引的,不走索引意味着:只要你的数据库的量很大(1亿条),你的查询肯定会是秒级别的 如果对数据库索引还不是很了解的同学,建议复看一下我以前的文章...还有一个就是:用户输入的内容往往并没有这么的精确,比如我从Google输入ElastcSeach(打错字),但是Google还是能估算我想输入的是Elasticsearch ?...所以:Elasticsearch写入的数据需要1s才能查询到 为了防止节点宕机,内存中的数据丢失,Elasticsearch会另写一份数据到日志文件上,但最开始的还是写到内存缓冲区,每隔5s才会将缓冲区的刷到磁盘中...Elasticsearch会有一个merge任务,会将多个segement文件合并成一个segement文件。 在合并的过程中,会把带有delete状态的doc给物理删除掉。 ?
1.2 节点角色划分及资源使用情况 角色 描述 存储 内存 计算 网络 数据节点 存储和检索数据 极高 高 高 中 主节点 管理集群状态 低 低 低 低 Ingest 节点 转换输入数据 低 中 高 中...增:新增索引处理文档并将其存储在索引中,以备将来检索。 删:从索引中删除文档。 改:更新删除文档并为其替换的新文档建立索引。 查:搜索从一个或多个索引中检索或聚合一个或多个文档。...5.2 分片预估 第一,问自己几个问题: 您将创建多少索引? 您将配置多少个主和副本分片? 您将在什么时间间隔旋转索引? 您将保留索引多长时间? 您将为每个数据节点分配多少内存?...第二:方法论 与其确定资源将如何影响搜索速度,不如通过在计划的固定硬件上进行测量,可以将搜索速度作为一个常数, 然后确定集群中要处理峰值搜索吞吐量需要多少个核。...索引密集型业务场景通常使用它在热节点、暖节点和冷(Frozen)节点上存储索引, 然后根据业务需要进行数据迁移(热节点->暖节点->冷节点),以完成数据的删除和存档需要。
Dangling IndicesDangling indices(悬空索引)指数据存储在一个或多个节点磁盘上但当前集群的clusterMetaData中并不包含这些索引信息。...默认为500),然后该数据节点NodeA启动并重新加入集群,DELETE操作将索引信息从clusterMetaData中删除,而索引的真实数据在nodeA磁盘中可能是因为原始集群丢失了其所有主节点的原因...,原始集群中的某个节点添加到另一个集群中。...添加到另一个集群的节点,数据真实存储在节点中,但新集群的clusterMetaData中不包含这些索引数据的信息对于集群的数据节点来说,可能是从备份中还原了老的、旧的索引文件集群丢失了所有主节点,并且从备份中还原了这些主节点...,但是备份中的主节点不包含这些索引信息,同样是节点存储着索引数据,但主节点维护的clusterMetaData中不包含这些索引信息分析源码可知,ES对Dangling Indices的处理策略是首先会去寻找并判定数据节点中的哪些索引属于
B 树索引会将表中的索引键值按照一定的顺序(如升序或降序)存储在树的节点中。每个节点可以存储多个键值以及指向其他节点的指针。 支持范围查询,但占用空间较大 2、新建索引的规范原则有哪些?...但是在进行检索时,需要把所有元素都应用函数才能比较,显然成本太大。...2.4 尽量的扩展索引,不要新建索引 比如表中已经有a的索引,现在要加(a,b)的索引,那么只需要修改原来的索引即可,而不建议再单独去建一个b索引。 3、MySQL 是如何使用索引的?...例如,在一个高并发的电商订单处理系统中,如果对订单表的大量字段都创建了索引,那么每一次订单的插入、修改或删除操作,都要花费大量时间来更新相关索引,导致订单处理效率大幅下降。...其实做了这么长时间的语句优化后才发现,任何数据库层面的优化都抵不上应用系统的优化,同样是MySQL,可以用来支撑Google/FaceBook/Taobao应用,但可能连你的个人网站都撑不住。
最后返回包含节点的基本信息以及该节点认为的主节点。 从各个节点认为的master中,按照ID的字典排序选取第一个为主节点。...、索引和删除请求等写操作,必须在主分片上面完成之后才能被复制到副本分片。...:/path/to/logs # 日志数据 【注】不建议使用默认值,防止升级Elasticsearch而导致数据部分甚至全部丢失 1、分段存储 在索引中,索引文件被拆分为多个子文件,其中每个子文件就叫做段...假设我们将全部文档集合构建在一个很大的倒排索引文件中,且数据还在不断增加,那么当我们进行修改时,就需要全量更新当前的倒排索引文件 这样就使得数据更新变得时效性很差,且耗费大量资源。...缺点2:在检索数据时,检索得到的数据集中包含所有的结果集,因此主节点需要排除被标记删除的旧数据,进而增加了查询负担。 2、延迟写策略 Elasticsearch中,索引写入磁盘是异步写入的。
领取专属 10元无门槛券
手把手带您无忧上云