运行命令

《吐血整理》Redis 性能优化的 13 条军规!史上最全

烂漫一生 提交于 2020-03-27 23:04:20
Redis 是基于单线程模型实现的,也就是 Redis 是使用一个线程来处理所有的客户端请求的,尽管 Redis 使用了非阻塞式 IO,并且对各种命令都做了优化(大部分命令操作时间复杂度都是 O(1)),但由于 Redis 是单线程执行的特点,因此它对性能的要求更加苛刻,本文我们将通过一些优化手段,让 Redis 更加高效的运行。 本文我们将使用以下手段,来提升 Redis 的运行速度: 缩短键值对的存储长度; 使用 lazy free(延迟删除)特性; 设置键值的过期时间; 禁用长耗时的查询命令; 使用 slowlog 优化耗时命令; 使用 Pipeline 批量操作数据; 避免大量数据同时失效; 客户端使用优化; 限制 Redis 内存大小; 使用物理机而非虚拟机安装 Redis 服务; 检查数据持久化策略; 禁用 THP 特性; 使用分布式架构来增加读写速度。 1.缩短键值对的存储长度 键值对的长度是和性能成反比的,比如我们来做一组写入数据的性能测试,执行结果如下: 从以上数据可以看出,在 key 不变的情况下,value 值越大操作效率越慢,因为 Redis 对于同一种数据类型会使用不同的内部编码进行存储,比如字符串的内部编码就有三种:int(整数编码)、raw(优化内存分配的字符串编码)、embstr(动态字符串编码),这是因为 Redis

docker常用管理命令

喜你入骨 提交于 2020-03-27 22:00:28
本文只记录docker命令在大部分情境下的使用,如果想了解每一个选项的细节,请参考官方文档,这里只作为自己以后的备忘记录下来。 根据自己的理解,总的来说分为以下几种: 容器生命周期管理 — docker [run|start|stop|restart|kill|rm|pause|unpause] 容器操作运维 — docker [ps|inspect|top|attach|events|logs|wait|export|port] 容器rootfs命令 — docker [commit|cp|diff] 镜像仓库 — docker [login|pull|push|search] 本地镜像管理 — docker [images|rmi|tag|build|history|save|import] 其他命令 — docker [info|version] 看一个变迁图 1. 列出机器上的镜像(images) # docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE ubuntu 14.10 2185fd50e2ca 13 days ago 236.9 MB … 其中我们可以根据REPOSITORY来判断这个镜像是来自哪个服务器,如果没有 / 则表示官方镜像,类似于username/repos

docker学习(2)--基础命令

て烟熏妆下的殇ゞ 提交于 2020-03-27 20:52:51
  转载请注明源出处: http://www.cnblogs.com/lighten/p/6875355.html 1.基本命令   搭建好docker环境之后,使用docker help命令查看docker的基本用法: docker COMMAND.            目前我们较为常使用的是commands下面的指令,如果使用swarm相关功能会用到management commands。目前我使用的是17.03.1-ce,后续版本功能应该会更加细分,可能会替换成management来使用。比如docker images列出所有镜像,和docker image ls的功能是一样的,通常我们习惯使用docker build构建镜像,也可以使用docker image build命令。本文还是介绍commands的相关命令,management的命令更多,熟悉了其实都一样。主旨还是为了学会怎么使用docker,命令不会用就通过docker swarm --help的方式去查看。 2.命令详解   命令太多,介绍不完,这里介绍一些使用docker时接触比较频繁的命令。 2.1 attach   连接一个运行中的容器。      1.detach-key: 覆盖脱离容器的键序列   2.no-stdin:不连接STDIN   3.sig-proxy:代理进程所接收的所有字符

Redis 的键命令、HyperLogLog 命令、脚本命令、连接命令、服务器命令

北战南征 提交于 2020-03-26 09:33:19
Redis 的键命令、HyperLogLog 命令、脚本命令、连接命令、服务器命令 Redis 的键命令 Redis 的键命令主要用于管理 Redis 的键,如删除键、查询键、修改键及设置某个键等。 1. EXISTS 命令:判断键是否存在 2. KEYS 命令:查找键 KEYS 命令用于按照指定的模式(pattern)查找所有的 key。参数 pattern 类似于正则表达式。 ● KEYS*:表示匹配查找数据库中的所有 key。 ● KEYS r?dis:表示匹配 radis、redis、rxdis 等。 ● KEYS r*dis:表示匹配 rdis、redis、reeedis 等。 ● KEYS r[ae]dis:表示匹配 radis 和 redis,但是不会匹配 ridis。 遇到特殊符号需要使用「\」隔开(转义)。 3. OBJECT 命令:查看键的对象 OBJECT 命令用于从内部查看给定 key 的 Redis 对象。该命令通常用在除错或者为了节省空间而对 key 使用特殊编码的情况下。如果要用 Redis 来实现与缓存相关的功能,则可以使用 OBJECT 命令来决定是否清除 key。 OBJECT 命令有如下子命令: ● OBJECT REFCOUNT key 用于返回给定 key 引用所存储的值的次数,多用于除错。 ● OBJECT ENCODING key

Linux开机自启动

不打扰是莪最后的温柔 提交于 2020-03-25 21:59:21
一、 rc.local rc.local脚本是一个Linux开机后会自动执行的脚本,我们可以在该脚本内添加命令行指令。该脚本位于/etc/路径下,需要root权限才能修改。 #!/bin/sh # # This script will be executed *after* all the other init scripts. # You can put your own initialization stuff in here if you don't # want to do the full Sys V style init stuff. touch /var/lock/subsys/local 一般讲自己的开机执行脚本放在 /etc/init .d/下,然后可在此文件中添加: cd /etc/init.d/ sudo update-rc.d new_service.sh defaults 90 这里90表明一个优先级,越高表示执行的越晚。 二、要在登录或注销时执行脚本,分别需要使用 ~.bash_profile 和 ~.bash_logout 文件。多数情况下,后者需要手动创建。在每个文件的底部,添加调用脚本代码,如前面例中所示,就可以实现这个功能。 三、init进程 init进程是非内核进程中第一个被启动运行的,因此它的进程编号PID的值总是1 。init读它的配置文件

使用Dockerfile构建镜像

元气小坏坏 提交于 2020-03-25 17:23:54
Dockfile是一种被Docker程序解释的脚本,Dockerfile由一条一条的指令组成,每条指令对应Linux下面的一条命令。Docker程序将这些Dockerfile指令翻译真正的Linux命令。Dockerfile有自己书写格式和支持的命令,Docker程序解决这些命令间的依赖关系,类似于Makefile。Docker程序将读取Dockerfile,根据指令生成定制的image。相比image这种黑盒子,Dockerfile这种显而易见的脚本更容易被使用者接受,它明确的表明image是怎么产生的。有了Dockerfile,当我们需要定制自己额外的需求时,只需在Dockerfile上添加或者修改指令,重新生成image即可,省去了敲命令的麻烦。 一、Dockerfile的书写规则及指令使用方法 Dockerfile的指令是忽略大小写的,建议使用大写,使用 # 作为注释,每一行只支持一条指令,每条指令可以携带多个参数。 Dockerfile的指令根据作用可以分为两种,构建指令和设置指令。构建指令用于构建image,其指定的操作不会在运行image的容器上执行;设置指令用于设置image的属性,其指定的操作将在运行image的容器中执行。 1.1 FROM(指定基础image) 构建指令,必须指定且需要在Dockerfile其他指令的前面

10个炫酷的 Linux 终端命令大全

家住魔仙堡 提交于 2020-03-25 05:58:51
3 月,跳不动了?>>> 今天给大家分享用了十年的Linux总结出来的11个炫酷的Linux终端命令大全,通过今天这篇文章我将向大家展示一系列的Linux命令、工具和技巧,我希望一开始就有人告诉我这些,而不是曾在我成长道路上绊住我。 1.命令行日常系快捷键 如下的快捷方式非常有用,能够极大的提升你的工作效率: CTRL + U -剪切光标前的内容 CTRL + K -剪切光标至行末的内容 CTRL + Y -粘贴 CTRL + E -移动光标到行末 CTRL + A -移动光标到行首 ALT + F -按单词前移(右向) ALT + B -按单词后移(左向) ALT + Backspace -删除前一个单词 CTRL + W -从光标处删除至字首 Shift + Insert -向终端内粘贴文本 那么为了让上述内容更易理解来看下面的这行命令: sudo apt-get intall programname 如你所见,命令中存在拼写错误,为了正常执行需要把“intall”替换成“install”。 想象现在光标正在行末,我们有很多的方法将她退回单词install并替换它。 我可以按两次ALT+B这样光标就会在如下的位置(这里用指代光标的位置)。 sudo apt-get^intall programname现在你可以按两下方向键并将“s”插入到install中去了。

常用模块介绍

孤街醉人 提交于 2020-03-25 03:10:27
subprocess模块 它是可以远程操作主机,模拟shell命令 'dir'是windows上查看任务的命令 import subprocess obj = subprocess.Popen('dir', shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) #Popen是模拟cmd命令,'dir'是windows上查看任务的命令,shell=True是指可以用shell命令了, 输出和错误,放到管道(PIPE)里 # print(obj.stdout.read().decode('gbk')) #打印输出的内容 # print(obj.stderr.read().decode('gbk')) #打印错误的内容 res = obj.stdout.read() + obj.stderr.read() #错误和输入放到一起给变量res print(res.decode('gbk')) #打印res 在linux里可以创建python脚本,写入 import subprocess obj = subprocess.Popen('ls;lsblk', shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) #Popen是模拟cmd命令,'dir

shell脚本学习

拟墨画扇 提交于 2020-03-25 02:54:18
shell是一种脚本语言,和windows中的bat性质上差不多 1-1shell入门 在编写shell脚本程序中首先需要接触到的就是约定标记,这个约定标记表示使用什么解释器进行执行。 ps:解释器:解释器就是对shell程序使用的哪个东西后进行解释执行的语句 一个简单的shell程序如下 #!/bin/bash echo "Hello World !" 上述代码执行以后直接在控制台中显示以下代码 Hello World ! 在本代码中的 #! 是一个约定的标记,表示使用bash解释器来执行。使用的就是bash版本的shell脚本 sh/bash/csh/Tcsh/ksh/pdksh等shell的区别 sh(全称 Bourne Shell) : 是UNIX最初使用的 shell,而且在每种 UNIX 上都可以使用。 Bourne Shell 在 shell 编程方面相当优秀,但在处理与用户的交互方面做得不如其他几种 shell。 bash(全称 Bourne Again Shell) : LinuxOS 默认的,它是 Bourne Shell 的扩展。 与 Bourne Shell 完全兼容,并且在 Bourne Shell 的基础上增加了很多特性。可以提供命令补全,命令编辑和命令历史等功能。它还包含了很多 C Shell 和 Korn Shell 中的优点,有灵活和强大的编辑接口