技术分享 | Redis 持久化之 RDB 与 AOF

作者:贲绍华

爱可生研发中心工程师,负责项目的需求与维护工作。其他身份:柯基铲屎官。

本文来源:原创投稿

*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。

一、RDB(Redis Database)简介

RDB持久化方式能够在指定的时间间隔内(N秒内有M次改动时),对实例的数据进行快照存储,也就是全备的意思。

二、RDB - 特性

2.1 优点

  • 单一文件,方便传输,适合灾备;
  • 恢复大数据集时效率会比AOF快一些;
  • 备份时会由fork出的子进程操作,父进程不需要其他IO操作,性能相对AOF来说占优。

2.2 缺点

  • 在间隔其间发生意外宕机,会造成数据大量丢失;
  • 数据量非常大时fork子进程非常耗时,可能会影响业务正常响应。

三、RDB - 策略

RDB的备份触发方式有两种类型,五种触发条件,分别为:

3.1 自动触发

  • 根据conf内配置的save规则进行保存;
  • 执行FLUSHALL(删除所有数据库里面的所有数据)命令会触发;
  • 主动退出Redis会触发。

3.2 手动触发

  • SAVE「同步执行」(保存数据至磁盘);
  • BGSAVE「异步执行」(保存数据至磁盘)。

3.3 操作流程

1.fork一个子进程,创建子进程时并不会发生数据复制,提高了复制速度降低了所需空间大小(内核级的系统调用:fork());

2.子进程获得所有数据指向地址的指针;

3.此时如有数据继续增加则触发写时复制,父进程指向新值地址,子进程依旧指向原值地址(COW(copy-on-write 写时复制));

4.将指针指向的值写入备份;

5.备份完成。

四、RDB - 配置

配置项

说明

save

N秒内有M次改动时保存(触发的是BGSAVE异步执行)

stop-writes-on-bgsave-error

快照出错时是否禁止写入操作

rdbcompression

是否压缩RDB文件

rdbchecksum

是否开启RC64校验

dbfilenameRDB

文件保存名称

dirRDB

文件保存目录

五、RDB - 其他

5.1 时点性

当Redis在指定时间点触发全备时如果此后数据库依然有修改,则值还是会保留在未修改前的时间点,这样保证了不会发生时点混乱。

5.2 阈值建议

建议Redis使用内存控制在10-15G以内,过大的话会影响RDB落盘的速度。

5.3 RDB文件损坏该怎么办

在Redis的安装目录内,提供了redis-check-rdb工具用于对损坏的备份文件进行修复。

六、AOF(Append Only File)简介

AOF持久化方式即增备,记录每次对服务器写的操作,当服务器重启的时候会重新执行这些命令来恢复原始的数据。

AOF命令以redis协议追加保存每次写的操作到文件末尾。Redis还能对AOF文件进行重写压缩,使得AOF文件的体积不至于过大。

6.1 AOF文件协议

下面列举一段AOF文件内容进行说明:

# 假设此时客户端执行了语句SET KEY VALUE,则AOF内容如下
*3
$3
SET
$3
KEY
$5
VALUE

上述内容中,看似比较杂乱,但理解一下其实很简单

*表示跳过$行时,往下一次读几行

$表示下一行有多少个字符

七、AOF - 特性

7.1 优点

  • 异常宕机损失较小,能够做到数据不丢失或最多丢失1秒

7.2 缺点

  • 对比RDB在恢复数据的效率上表现不高
  • AOF文件会比RDB文件更大
  • 根据所使用的 fsync 策略不同,AOF 的速度可能会慢于 RDB

八、AOF - 策略

AOF同样分为两种触发方式,根据配置项appendfsync(AOF持久化策略)的不同对应的执行时机也不同:

8.1 自动触发

  • no(从不 fsync,buffer写满了就落盘,速度快)
  • everysec「默认」(每一秒保存一次)
  • always(每次都fsync,速度慢,可靠性高)

8.2 手动触发

BGREWRITEAOF「异步执行」(重写AOF文件)

九、AOF - 配置

配置项

说明

appendonly

是否开启AOF

AOFappendfilename

AOF文件名

appendfsync

AOF持久化策略

no-appendfsync-on-rewrite

在写入时是否对新记录暂缓追加

auto-aof-rewrite-percentage

AOF文件增长比例

auto-aof-rewrite-min-size

文件重写文件大小

aof-load-truncated

是否末尾异常的AOF文件

aof-use-rdb-preamble

是否使用RDB-AOF混合持久化模式(4.0版本之后) 在开启了这个功能之后,AOF重写产生的文件将同时包含RDB格式的内容和AOF格式的内容,其中RDB格式的内容用于记录已有的数据,而AOF格式的内存则用于记录最近发生了变化的数据,这样Redis就可以同时兼有RDB持久化和AOF持久化的优点(既能够快速地生成重写文件,也能够在出现问题时,快速地载入数据)发生重写之后才能变成混合体

十、AOF - 其他

10.1 AOF重写的版本差异性

  • 4.0之前:删除可以相互抵消的命令,合并重复命令
  • 4.0之后:先将内存数据都数据成RDB,后续操作依旧记录成AOF

10.2 AOF文件损坏了该怎么办

由于是增备,在数据持续写入时遇到意外宕机时很容易造成AOF文件的损坏,此时重启Redis实例会无法载入该文件。

解决的方式如下:

1.定时备份AOF文件

2.在Redis的安装目录中,提供了redis-check-aof工具用于修复异常的AOF文件,可以在修复完成后diff -u来对比一下修复前后文件的差异性

本文转载于网络 如有侵权请联系删除

相关文章

  • Java中static作用及用法详解「建议收藏」

    大家好,又见面了,我是你们的朋友全栈君。1.1概述:static是静态修饰符,什么叫静态修饰符呢?大家都知道,在程序中任何变量或者代码都是在编译时由系统自动分配内存来存储的,而所谓静态就是指在编译后所分配的内存会一直存在,直到程序退出内存才会释放这个空间,也就是只要程序在运行,那么这块内存就会一直存在。这样做有什么意义呢?在Java程序里面,所有的东西都是对象,而对象的抽象就是类,对于一个类而言,如果要使用他的成员,那么普通情况下必须先实例化对象后,通过对象的引用才能够访问这些成员,但是用static修饰的成员可以通过类名加“.”进行直接访问。static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念。被static修饰的成员变量和成员方法独立于该类的任何对象。也就是说,它不依赖类特定的实例,被类的所有实例共享。只要这个类被加载,Java虚拟机就能根据类名在运行时数据区的方法区内定找到他们。因此,static对象可以在它的任何对象创建之前访问,无需引用任何对象。用public修饰的static成员变量和

  • 恭喜EDG!!!,S11决赛冠军!全球5亿流量实时观战!

    恭喜EDG全球总冠军!各位看官EDG今晚战绩您怎么看?恭喜,EDG!EDG逆袭!精准逆袭!逆袭水龙魂~!!!11月6日晚,中韩两支顶级战队EdwardGaming(EDG)和DamwonKIAGaming(DK),在冰岛雷克雅未克温泉谷体育大厅角逐英雄联盟S10年度总决赛中,经过激战,EDG战胜DK以3比2的比分取得胜利,捧起了最后的冠军奖杯。决赛赛制为BO5,率先取得3局胜利的队伍为冠军。第一局EDG高地团灭对手先下一城,随后DK连胜两局手握冠军点。在关键的第四局中,EDG在争夺大龙的团战中取得优势,连续追击取得击杀,以2:2追平比分,将决赛拉至第五局。 第五局,EDG战队发挥出色,顶住压力并在残局中保持对DK的压制,最后推倒对方水晶,LPL赛区的战队夺回了继2019年法国巴黎夺冠后的赛区荣耀。复制本次冠军争夺战,作为S10世界冠军的DK战队对阵在本次世界赛中创下队史首进四强、创造决赛纪录的LPL赛区代表EDG。双11.11福利走一波~~这是EDG建队以来的第一个世界冠军,恭喜EDG!22分钟,凯南在野区找到走位失误的辛德拉将其秒杀,双方打成1换3,EDG拿下听牌龙。29分钟,双方在

  • S4 KNUMH的设计原理

    CreatedbyWang,Jerry,lastmodifiedonAug24,2016Definepriceprocedure:A305linksKNUMH-masterdata,nottransactiondata.Alsomasterdata:

  • I2C总线架构 之 总线驱动

    引言单片机的IIC编程中,如果我们直接一点,只需要控制IIC硬件GPIO脚,然后根据IIC协议模拟各种电平时序实现与IIC设备的通信。但是这种编程方法,移植性较差(假如新加了一种IIC设备,同样的代码,又要重新复制一份)。这种做法完全不适应Linux的通用性的设计理念,对于Linux来讲:同样的事情我只做一遍,向外提供接口,不管你是什么IIC设备挂载那条IIC总线上,都可以用。因此,这就需要Linux在代码架构上有非常严谨的模块化设计。架构设计在Linux设计中,将I2C代码框架分为三个部分:I2C总线、I2C核心、I2C驱动。「I2C核心(i2c-core):」主要定义i2c驱动所用到的通用API,高内聚的代码会放到i2c-core.c。「I2C总线驱动(i2cadapter):」根据平台定制的i2c驱动,其中包含i2c传输的算法设计。主要工作负责生成i2c_client,注册适配器,以及i2c_client与i2c_driver的匹配。「I2C设备驱动(i2cclientdriver):」驱动I2C设备的代码。I2C设备驱动定义了外设的交互方式,与不同的I2C外设需要不同的设备驱动

  • 卧槽!小姐姐用动画图解 Git 命令,这也太秀了吧?!

    大家好,我是小G。在座的各位应该都知道,Git作为居家必备、团队协作之利器,自从LinusTorvalds发布这款工具后,便一直受到各路开发者的喜爱。不过,尽管如此,小G还是经常能在公众号后台,看到有不少水友留言反馈,说Git里面太多干巴巴,看起来非常枯燥无味的命令行,一旦几天没用,就很容易就忘得一干二净,希望GitHubDaily能出一些与Git相关的辅助教程,或者比较有趣、对小白比较友好的学习方式。emmm..作为有求必应的小G,当然是选择尽可能满足大家的一切要求啦。几天前,小G偶然在Twitter看到一篇文章:《CSVisualized:UsefulGitCommands》。作者是来自英属哥伦比亚的小姐姐LydiaHallie,在这篇文章里面,她通过生动形象的动画,以更加直观的方式,向开发者展示Git命令中的merge、rebase、reset、revert、cherry-pick等常用骚操作的具体原理。接下来,小G会挑选几个最简单的例子,让你们看看这位小姐姐是如何用动画来进行展示的。在开始之前,还是得先跟大家简单说一下,这篇文章不算是针对小白萌新的Git初级入门文章,而是希望帮

  • 爬虫篇 | Python学习之Scrapy-Redis实战京东图书

    什么是scrapy-redis? redis-basedcomponentsforscrapyscrapy-Redis就是结合了分布式数据库redis,重写了scrapy一些比较关键的代码,将scrapy变成一个可以在多个主机上同时运行的分布式爬虫。scrapy-redis是github上的一个开源项目,可以直接下载到他的源代码:https://github.com/rolando/scrapy-redisscrapy-redis详解scrapy-redis流程图redis的使用参考前文写的redis交互使用:Python|Python学习之Redis交互详解scrapy-redisexample-projectscrapy-redis的源码中提供了scrapy-redis的示例项目,我们下载下来学习一下。https://github.com/rmax/scrapy-redis/tree/master/example-project在example-project中有三个demo,分别是dmoz,myspider_redis,以及mycrawler_redis。本次主要是对dmoz这个

  • Java自定义注解在安卓开发中的简单运用

    定义:注解(Annotation),也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。它可以声明在包、类、接口、枚举、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明,注释。作用分类: ①编写文档:通过代码里标识的元数据生成文档【生成文档doc文档】 ②代码分析:通过代码里标识的元数据对代码进行分析【使用反射】 ③编译检查:通过代码里标识的元数据让编译器能够实现基本的编译检查【Override】 java中有很多框架都用到了注解包括java的Api也是,想一些网络框架的@GTE,@POST,@PATH等等,java中的@Override注解是可以被继承的,它是可以在代码编译期告诉JVM类之间的继承关系,那到底注解是怎么实现的呢,首先你要定义一个注解,然后通过反射来实现你所要的功能。Java的元注解元注解就是注解的注解,听起来比较拗口,说白了就是说明注解的一些属性,比如当前注解是作用在类还是局部变量、实例变量、方法,注解的生存期、能否被子类继承、可否被文档化等等。@Documented 表明当前注释可以文档化 @In

  • 区块链技术公司谈区块链与AI结合

    一般人听到区块链与AI觉得这是这个事情应该没什么关系,因为区块链和AI分别属于是技术谱系的两个极端:一个是在封闭数据平台上培育中心化的智能,另一个则是在开放数据环境下促进去中心化的应用。今天我要说的是AI与区块链融合可能会对整个技术范式都产生革命性影响。区块链主链侧链开发中心化和去中心化场内场外交易所开发区块链跨境支付区块链游戏区块链供应链开发130-9888-0981那么AI技术与区块链技术之间将可能有怎样的互补,内容非常精彩。本文对这些内容做一个简单的导读,希望能对大家有所帮助。区块链是互联网的逆过程,第一次使我们能在互联网上转移非同质资产,比他2011年想象得更伟大。区块链可以很好的和AI的结合,比如:第一,跟Token的结合。通过Token发一个币,用这个币激励社区共同参与AI计算任务,这是很简单的结合。第二,跟数据的结合。把AI数据带到链上去,通过加密技术解决数据的隐私问题。第三,跟计算的结合。提出算法Tensority后,AI计算和区块链计算可能变成很大程度上的同一种计算,可以节约硬件成本,这也是对社会资源的节约。第四,跟智能合约的结合。通过和AI技术的结合,实现自动化事件

  • 11.27 VR扫描:《泰坦尼克号VR》登陆Steam,玩家可探索沉船残骸

    4DReplay完成100万美元融资,推动“5G+360度”视频制作昨日,美国视觉处理初创公司4DReplay获得由韩国电信公司投资的100万融资,目前其总融资额达450万美元。该公司正在开发一项名为“TimeSlice”的视频制作技术,此项技术将5G网络应用到制作移动物体的360视频中。该公司此前已经成功展示该视频制作解决方案,并将其应用在最近的美国职业棒球大联盟比赛和日本职业棒球赛中。VRPinea独家点评:5G应用在哪都是很大的突破,不过一直是概念早于实际。成人网站Pornhub首个实体店即将开业或提供VR体验近日,美国最大、最受欢迎的色情网站Pornhub宣布,其将在纽约曼哈顿SoHo区开设首个实体店。该店位于伍斯特街70号,将于12月20日前开放。据悉,实体店与网站很相似,用户可通过虚拟体验,与产品进行互动。此外,新店会带来一系列功能性玩具服饰、手铐和精美的衣服。不过,购物者必须年满18岁。VRPinea独家点评:成人用品与VR的结合,可不只是1+1的效果。万代将于明年推出AR版电子宠物游戏《拓麻歌子》近日,万代宣布推出一款基于经典电子宠物游戏《拓麻歌子》的AR游戏《我永远的

  • DOM及DOM相关操作

    DOM 概述: DOM全称(documentobjectmodel)文档对象模型(文档指定为对应html文档),对应的DOM就是操作HTML文档的(增删改查) DOM结构 document文档对象 方法 1.获取全局的内容 document.getElementById()//通过id属性来获取元素,返回的是一个元素(Element) //通过id获取对应的元素 varbox=document.getElementById('box') console.log(box); 复制 document.getElementsByClassName()//通过class属性名来获取元素,返回是一个伪数组(HTMLCollection) //(length下标)所有的伪数组都具备的 //通过class属性获取 varcontent=document.getElementsByClassName('content') console.log(content); console.log(content[0]);//访问第一个获取的元素 复制 document.getElementsBy

  • 【水题】sdut3036--你打我啊

    你打我啊  TimeLimit:500ms  Memorylimit:65536K  有疑问?点这里^_^ 题目描述 最近看了一个非常好玩的题,如果有972杯水,其中有971个没有毒的,1个有毒的,其中有毒的水的毒性需要一周才会发作,那么,我们最少需要多少只小白鼠才能够在一周的时间内确定那一杯水是有毒的。当然这种水题肯定难不住各位队员们。所以我要出的题和上述的东西没有一点关系。   那既然上面的东西和这次的题没有什么关系那我为什么要说呢,很明显,我在凑字数,我实在是不知道该怎么凑了呀,他们说让我来一个又臭又长一看就不想做的题,还让我用英文写,所以嘛,我英语不好只能先来个中文废话了,Ok上正题吧。   Christmaswascoming.MrSmithhadnomoneytobuyanypresentsforhischildren.Hiswifewasillandhespentalotofmoneyonhermedicine. Andtheharvestwasbadandallhisfamilyweregoi

  • Leetcode_131. Palindrome Partitioning_[DFS]

    题目链接 Givenastring s,partition s suchthateverysubstringofthepartitionisapalindrome. Returnallpossiblepalindromepartitioningof s. Example: Input: "aab" Output: [ ["aa","b"], ["a","a","b"] ]题意简单明了。解法:要找到所有的划分方法,应想到穷举。复制 classSolution{ public: boolisPalindrome(strings){ for(size_ti=0;i<s.size()/2;i++) if(s[i]!=s[s.size()-1-i]) returnfalse; returntrue; } vector<vector<string>>partition(strings){ vector<vector<string>>ret; vector<string>temp;

  • 2017.11.2

    考试。 T1:多柱汉诺塔。我手推了一下,结果只推出了3柱的情况,剩下的瞎搞,正确性我自己都证明不了。 T2:一看后缀数组,瞬间虚了。我不会。耐心看完题,还好,用不到什么后缀数组,然后贪心瞎搞去了。 T3:上了树的期望,还是连续型的,我不会……部分分都不会。 今天的T1T2T3感觉都不可做,结果骗分骗了70+100+0. T1是一个很普通的dp,我怎么就看不出来。 期望那块还是太虚了。

  • 每天一道Rust-LeetCode(2019-06-07)

    每天一道Rust-LeetCode(2019-06-07)622.设计循环队列 坚持每天一道题,刷题学习Rust. 原题 题目描述 设计你的循环队列实现。循环队列是一种线性数据结构,其操作表现基于FIFO(先进先出)原则并且队尾被连接在队首之后以形成一个循环。它也被称为“环形缓冲器”。 循环队列的一个好处是我们可以利用这个队列之前用过的空间。在一个普通队列里,一旦一个队列满了,我们就不能插入下一个元素,即使在队列前面仍有空间。但是使用循环队列,我们能使用这些空间去存储新的值。 你的实现应该支持如下操作: MyCircularQueue(k):构造器,设置队列长度为k。 Front:从队首获取元素。如果队列为空,返回-1。 Rear:获取队尾元素。如果队列为空,返回-1。 enQueue(value):向循环队列插入一个元素。如果成功插入则返回真。 deQueue():从循环队列中删除一个元素。如果成功删除则返回真。 isEmpty():检查循环队列是否为空。 isFull():检查循环队列是否已满。 示例: MyCircularQueuecircularQueue=newMycircu

  • Spring学习笔记(二)IoC(Annotation部分)

    Spring学习笔记(二)IoC(Annotation部分) 在已经了解使用XML的方式配置IoC,使用annotation的方式会很容易上手。准备用两个部分:annotation方式和xml方式的区别、annotation配置IoC的知识点 annotation方式和xml方式的区别:   视频中说道,SpringIoC中,xml的方式不如annotation使用的多。在我见过的项目中,也是这样的。前两天看电信4G的项目中,使用的是SpringMVC,其中IoC使用的就是annotation的方式标注。这样的标注比较灵活。但是不如XML的方式清晰,穿梭于各个文件中,查找相关的注解。在有说明文档的时候很容易明白各个bean,但是不是所有的项目源码都有的。自己比较喜欢XML方式的IoC。可能是因为个人的项目经验比较匮乏。。。 annotation配置IoC知识点:   配置beans.xml:   通xml的方式一样,在<beans>根节点中添加XML的命名空间以及xsd地址和使用annotation的标签,代码中黑色加粗部分: <beansxmlns="http:/

  • 堆栈应用——括号匹配问题

      堆栈是各种软件系统中应用最广泛的数据结构之一。括号匹配问题和表达式计算是编译软件中的基本问题,其软件设计中都需要用到堆栈。 【括号匹配问题】   假设一个算术表达式中包含圆括号、方括号和花括号三种类型括号,编写一个判别表达式中括号是否正确匹配配对的函数,并设计一个测试主函数。 【设计分析】括号匹配后到的括号要最先被匹配,满足堆栈“后进先出”的操作特点。   括号匹配有以下4种情况:   (1)左右括号配对次序不正确;   (2)右括号多于左括号;   (3)左括号多于右括号;   (4)括号匹配正确。    【源代码】 SeqStackTest.java 1packageseqstack; 2 3publicclassSeqStackTest{ 4//遍历字符数组并利用进栈出栈匹配括号 5staticvoidexpIsCorrect(String[]exp,intn)throwsException{ 6SeqStackmyStack=newSeqStack(100); 7//LinStackmyStack=newLinStack();//也可以用链式堆栈 8for(inti=0;

  • 硬件的思维

    读者如果学习了verilog,并且有了一定的实践经验的话应该强烈的感受到,verilog和软件(诸如C/C++)有着本质且明显的差别,是一条不可跨越的鸿沟。所以初学者把C和verilog拿来作比较是完全没用的,甚至会把初学者绕晕,影响学习效率的提高。 虽然verilog比硬件更抽象,但是最终实现的结果就是一堆硬件电路。所以评价一个verilog代码的好坏不是看代码量多少,而是看最终实现的功能和性能(有速度和面积2方面)。假设面积为S,性能为V,定义品质数Q=S/V,Q越小,设计的电路越成功。 评价一个设计者代码水平较高,只是这个设计由硬件向verilog表现形式转换更流畅,合理。一个设计最终实现的性能,很大程度上取决于设计的硬件方案是否高效合理。这是两回事。 也因上述2点,verilog设计不刻意追求代码简洁,合理的设计方法是首先理解要设计的电路,也就是把需求转化为数字电路,对此电路的结构和连接十分清晰,然后再用verilog表达出这段电路。也就是说,verilog只是简化了电路设计的工作量,本质上就是设计数字电路,永远绕不开电路这点!这也决定了不能凭空去想代码,因为只有存在的电路

  • 互动社区采访

    一、前言 首先,很荣幸接到互动社区的采访邀请,感谢老师们的支持与鼓励。 在接受采访的同时,也正好也能借此机会让自己总结一下本学期《 软件工程》的收获与自己的不足。 二、采访内容 问: 学习软件工程这门课你有哪些收获?你认为通过这门课程学习到的知识、技能 或工具是将来走上工作岗位也有用的,请列举出来。 答: 在软件工程这门课的学习过程中,我的内心是复杂的,总觉得要做很多我们当 前所学知识还没涉及到的的领域,如app开发。然而,当一个学期过去后,蓦然回 首,才发现在这门课程中收获还是很多的,下面我简单地列举几点: 1. 敏捷开发模式。无可否认,这是一个非常好的开发模式,效率高、任务明 确、计划清晰、还有利于提高开发团队的士气,模式虽好,但要用好也不容易。 我下一步计划就是要把它运用到我们团队的实际开发中去,发挥它的实际作用, 说起来容易,做起来的话就必须得对这种开发模式有深入的了解,毕竟实际开 发讲的是效益,而非徒劳作秀。 2. Github代码资源同步开发。我们平时开发用的代码同步工具是SVN,虽然 久闻Github大名,但还是软件工程课程让我首次接触了与SVN

  • hdu 5363Key Set

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5363 ProblemDescription sodahasaset S with n integers {1,2,…,n}.Asetiscalledkeysetifthesumofintegersinthesetisanevennumber.Hewantstoknowhowmanynonemptysubsetsof S arekeyset.     Input Therearemultipletestcases.Thefirstlineofinputcontainsaninteger T (1≤T≤105),indicatingthenumberoftestcases.Foreachtestcase:Thefirstlinecontainsaninteger n (1≤n≤109),thenumberofintegersintheset.   &nbs

  • idea_快捷键

    1.删除光标所在行代码 idea快捷键:Ctrl+X eclipse快捷键:Ctrl+D 2.生成get,set方法idea快捷键:Alt+inserteclipse快捷键:Shift+Alt+S 3.格式化代码idea:先Ctrl+A选择全部代码然后Ctrl+Alt+Leclipse:先Ctrl+A选择全部代码然后Ctrl+I格式化代码 4.自动补全方法返回类型(Aa=newA();)补全黄色的部分   idea:Alt+Enter 5.生成trycatch的快捷键 选中当前代码:Ctrl+Alt+t 6.快速搜索类和接口idea:Ctrl+Shift+Reclipse:Ctrl+Shift+R 7.切换上一次的浏览栏idea:Alt+左右键eclipse:Alt+左右键 8. 复制光标所在行代码,或者鼠标选中的代码idea快捷键:Ctrl+Declipse快捷键:Ctrl+Alt+上下键 9. 切换代码大小写idea:Ctrl+Shift+Ueclipse:Ctrl+Shift+X(大写)Ctrl+Shift+Y(小写) 10.下上移动正行代码idea

  • Windows-EFS加密文件

    在windows7中,磁盘格式是NTFS时,可以对windows用户的单个文件或指定目录下的所有文件进行加密。加密用户登入windows后,自己加密的文件可以直接访问,效果与未加密时完全相同。当把加密文件复制到移动设备时文件将不再加密,例如复制到U盘。对其他用户加密的文件不可以访问,不可访问指不能读、写、删,具体表显形式是不能打开,不能复制,不能删除。

相关推荐

推荐阅读