命令模式

《【面试突击】— Redis篇》-- Redis的线程模型了解吗?为啥单线程效率还这么高?

房东的猫 提交于 2020-03-15 20:52:16
原文: 《【面试突击】— Redis篇》-- Redis的线程模型了解吗?为啥单线程效率还这么高? 能坚持别人不能坚持的,才能拥有别人未曾拥有的。 关注 编程大道 公众号,让我们一同坚持心中所想,一起成长!! 《【面试突击】— Redis篇》-- Redis的线程模型了解吗?为啥单线程效率还这么高? 在这个系列里,我会整理一些面试题与大家分享,帮助年后和我一样想要在金三银四准备跳槽的同学。 我们一起巩固、突击面试官常问的一些面试题,加油!! 1、面试题 Redis和Memcached有什么区别? Redis的线程模型是什么? 为什么Redis是单线程的但是还可以支撑高并发? 2、面试官心理分析 问这个的时候就是问你Redis的原理了,看你是不是思考过,研究过。Redis最基本的一个内部原理和特点,就是Redis实际上是个单线程工作模型。你要是连这个都不知道,那后面在使用Redis的时候,如果出了问题岂不是什么都不知道,无从下手? 还有可能面试官会问问你Redis和Memcached的区别。不过说实话,近几年,面试官都不太喜欢这么问了。因为memcached是早些年各大互联网公司常用的缓存方案,但是现在近几年基本都是Redis,没什么公司用memcached了。 3、温馨提醒 如果你要是现在还不知道redis和memcached是啥

常用Linux命令

*爱你&永不变心* 提交于 2020-03-15 20:39:52
常用Linux命令 1. 文件管理 1.1. 列出文件 1.2. 打印当前工作目录 1.3. 建立目录 1.4. 切换工作目录 1.5. 删除文件或目录 1.6. 移动文件或目录 1.7. 复制文件或目录 1.8. 统计文件或目录大小 2. 文件操作 2.1. 查看文件 2.2. 连接文件 2.3. 反向连接文件 2.4. 按列提取文件内容 2.5. 比较文件差异 2.6. 打包文件 2.7. 压缩文件 2.8. 统计文件行数 2.9. 打印文件并增加行号 2.10. 更新文件时间戳 3. 日期和时间 3.1. 打印日期 3.2. 打印日历 4. 搜索 4.1. 搜索程序 4.2. 搜索程序名 4.3. 搜索文件 4.4. 正则表达式搜索 5. 进程管理 5.1. 查看进程 5.2. 向进程发送信号 5.3. 列出信号 5.4. 查看进程打开的文件 5.5. 实时查看系统进程 6. 网络 6.1. 检查网络联通性 6.2. 查看本地套接字 6.3. 查看网卡配置 6.4. 查看主机名 6.5. 跟踪IP路由 6.6. 查看本地路由表 6.7. 下载文件 6.8. 抓取网络包 7. 辅助函数 7.1. 打印字符串 8. Bash 8.1. 变量 8.2. 分支条件 8.3. 数值计算 8.4. 执行命令 8.5. 数组 8.6. 函数 8.7. 字符串 8.8. 循环 8.9.

Linux命令英文全称

早过忘川 提交于 2020-03-15 11:33:49
转自: http://blog.csdn.net/alex_sym/article/details/7409566 su:Swith user 切换用户,切换到root用户 cat: Concatenate 串联 uname: Unix name 系统名称 df: Disk free 空余硬盘 du: Disk usage 硬盘使用率 chown: Change owner 改变所有者 chgrp: Change group 改变用户组 ps:Process Status 进程状态 tar:Tape archive 解压文件 chmod: Change mode 改变模式 umount: Unmount 卸载 ldd:List dynamic dependencies 列出动态相依 insmod:Install module 安装模块 rmmod:Remove module 删除模块 lsmod:List module 列表模块 alias :Create your own name for a command bash :GNU Bourne-Again Shell linux内核 grep:global regular expression print httpd :Start Apache ipcalc :Calculate IP information for a host

知识点小结~4

我的梦境 提交于 2020-03-15 11:23:11
分区: 每一个扇区512字节。 centos6以允许柱面和扇区为单位分区 MBR包括三部分内容(共512字节): 分区表:指出有几个分区,每个分区的起始扇区号、大小和操作系统类型及其他特性。(64字节) 自举装入程序:PC机启动时由BIOS装入内存执行。 如果装了多个操作系统,将根据选择去读出对应分区的 sector程序装入内存,执行该操作系统的自举程序。(446字节) 校验信息:检验是否正确。(2字节) boot sector应当包含如下信息: 本分区操作系统类型 数据区大小 根目录区允许最大目录项(在根目录区最多创建多少个文件) 如果该分区安装了操作系统并被设置为活动分区,那还会包含一段“引导程序”;如果没安装系统,则该分区引导扇区为空或其中的数据是无效的。 MBR和boot sector应该是由上至下的关系: 1 启动顺序有先后。PC机启动时,先执行MBR,再根据选择执行某个分区下的boot sector。 (选择执行的boot sector所在分区就是活动分区。“用户选择一个操作系统” 实际上也就是选择一个分区作为活动分区。) 2 boot sector可以为空(没装系统),但MBR必须包含内容。 3 MBR必须被读取并执行;引导扇区根据选择执行,有的甚至可以不执行(即上文中的”数据是无效的”)。 4 MBR实际上包含的内容也比boot sector广泛

Shell正则表达式笔记

☆樱花仙子☆ 提交于 2020-03-15 10:16:34
一、正则表达式是什么? 正则表达式是用于描述字符排列和匹配模式的一种语法规则。它主要用于字符串的模式分割、匹配、查找及替换操作。 二、正则表达式与通配符 1. 正则表达式 用来在文件中匹配符合条件的字符串,正则表达式是“包含匹配”。grep、awk、sed等命令可以支持正则表达式。 2. 通配符 用来匹配符合条件的文件名,通配符是“完全匹配”。ls、find、cp这些命令不支持正则表达式,所以只能使用shell自己的通配符来进行匹配了。 3. 通配符包括 * 匹配任意字符 ? 匹配任意一个字符 [] 匹配中括号中的任意一个字符 三、cut命令 cut 命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段写至标准输出。 常用参数 -b :以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志。 -c :以字符为单位进行分割。 -d :自定义分隔符,默认为制表符。 -f :与-d一起使用,指定显示哪个区域。 -n :取消分割多字节字符。仅和 -b 标志一起使用。 四、printf命令 1. 命令格式 printf '输出类型输出格式' 输出内容 2. 输出类型 %ns:输出字符串。n代表输出几个字符,n省略则代表全部字符 %ni:输出整数。n是指输出几个数字,n省略代表所有数字 %m.nf:输出浮点数。m和n是数字,指代输出的整数位数和小数位数。如

grep命令用法

拥有回忆 提交于 2020-03-15 10:16:02
linux grep命令 <div fc05="" fc11="" nbw-blog="" ztag="" js-fs2"=""> 1.作用 Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。 2.格式 grep [options] 3.主要参数 [options]主要参数: -c:只输出匹配行的计数。 -I:不区分大 小写(只适用于单字符)。 -h:查询多文件时不显示文件名。 -l:查询多文件时只输出包含匹配字符的文件名。 -n:显示匹配行及 行号。 -s:不显示不存在或无匹配文本的错误信息。 -v:显示不包含匹配文本的所有行。 pattern正则表达式主要参数: \: 忽略正则表达式中特殊字符的原有含义。 ^:匹配正则表达式的开始行。 $: 匹配正则表达式的结束行。 \<:从匹配正则表达 式的行开始。 \>:到匹配正则表达式的行结束。 [ ]:单个字符,如[A]即A符合要求 。 [ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求 。 。:所有的单个字符。 * :有字符,长度可以为0。 4.grep命令使用简单实例 $ grep ‘test’ d* 显示所有以d开头的文件中包含

一个不错的shell 脚本教程

China☆狼群 提交于 2020-03-15 09:29:11
一个很不错的bash脚本编写教程,至少没接触过BASH的也能看懂! 建立一个脚本   Linux中有好多中不 同的shell,但是通常我们使用bash (bourne again shell) 进行shell编程,因为bash是免费的并且很容易使用。所以在本文中笔者所提供的脚本都是使用bash(但是在大多数情况下,这些脚本同样可以在 bash的大姐,bourne shell中运行)。   如同其他语言一样,通过我们使用任意一种文字编辑器,比如nedit、kedit、emacs、vi   等来编写我们的shell程序。   程序必须以下面的行开始(必须方在文件的第一行): #!/bin/sh   符号#!用来告诉系统它后面的参数是用来执行该文件的程序。在这个例子中我们使用/bin/sh来执行程序。   当编辑好脚本时,如果要执行该脚本,还必须使其可执行。   要使脚本可执行: chmod +x filename   然后,您可以通过输入: ./filename 来执行您的脚本。 注释   在进行shell编程时,以#开头的句子表示注释,直到这一行的结束。我们真诚地建议您在程序中使用注释。如果您使用了注释,那么即使相当长的时间内没有使用该脚本,您也能在很短的时间内明白该脚本的作用及工作原理。 变量   在其他编程语言中您必须使用变量。在shell编程中,所有的变量都由字符串组成

linux sed 批量替换字符串

耗尽温柔 提交于 2020-03-15 09:00:20
#################################################### 获取文件内容处理输出 ############################################################## #解析入库配置,获取表名: echo -e '[table]\ntablename=entry_listquery_fatdt0|flatcookie_fatdt0|path_fatdt0|path_stream_fatdt0|refer_listquery_fatdt0' > ./testfile sed -n 's/^tablename=//p' ./testfile | sed -e 's/|/\n/g' -e 's/\r//g' | sort | uniq > ./test_tablename #(-n)选项和p标志一起使用表示只打印那些发生替换的行 #(-e)选项允许在同一行里执行多条命令,上面是将'|'替换为换行,然后将\r去除 #校验入库配置表名和文件名数量是否一致: tableCount=`wc -l ./test_tablename` fileCount=`ll jobs/EnLog/DFSLoader/conf/loaddb | wc -l ` fileCount=`echo $fileCount-1 | bc`

linux sed 批量替换字符串

孤街浪徒 提交于 2020-03-15 08:59:48
比如,要将目录/modules下面所有文件中的zhangsan都修改成lisi,这样做: sed -i "s/zhangsan/lisi/g" `grep zhangsan -rl /modules` 解释一下: -i 表示inplace edit,就地修改文件 -r 表示搜索子目录 -l 表示输出匹配的文件名 这个命令组合很强大,要注意备份文件。 (1)sed 'y/1234567890/ABCDEFGHIJ/' test_sed sed 'y/1234567890/ABCDEFGHIJ/' filename ABCDEFGHIJ BCDEFGHIJA CDEFGHIJAB DEFGHIJABC 注意变换关系是按两个list的位置对应变换 其中:test_sed的内容是: 1234567890 2345678901 3456789012 4567890123 (2) 替换每行所有匹配 sed 's/01/Ab/g' test_sed 1234567890 23456789Ab 3456789Ab2 456789Ab23 注意:第一行的0,1没有分别替换为A,b 删除:d命令 $ sed '2d' example-----删除example文件的第二行。 $ sed '2,$d' example-----删除example文件的第二行到末尾所有行。 $ sed '$d'

linux sed 批量替换字符串

为君一笑 提交于 2020-03-15 08:59:26
sed -i "s/zhangsan/lisi/g" `grep zhangsan -rl /modules` 解释一下: -i 表示inplace edit,就地修改文件 -r 表示搜索子目录 -l 表示输出匹配的文件名 这个命令组合很强大,要注意备份文件。 (1)sed 'y/1234567890/ABCDEFGHIJ/' test_sed sed 'y/1234567890/ABCDEFGHIJ/' filename ABCDEFGHIJ BCDEFGHIJA CDEFGHIJAB DEFGHIJABC 注意变换关系是按两个list的位置对应变换 其中:test_sed的内容是: 1234567890 2345678901 3456789012 4567890123 (2) 替换每行所有匹配 sed 's/01/Ab/g' test_sed 1234567890 23456789Ab 3456789Ab2 456789Ab23 注意:第一行的0,1没有分别替换为A,b 删除:d命令 $ sed '2d' example-----删除example文件的第二行。 $ sed '2,$d' example-----删除example文件的第二行到末尾所有行。 $ sed '$d' example-----删除example文件的最后一行。 $ sed '/test/'d