运行命令

redis事务

只愿长相守 提交于 2020-02-05 14:08:25
  1、redis是单线程处理所有client的请求,所以redis只能保证一个client发起的事务中的命令可以连续的执行,而中间不会插入其他client的命令。   2、在一个redis事务中,redis要么执行其中的所有命令,要不都不执行。因此,redis事务能够保证原子性   命令:   1、multi:用于标记事务块的开始。redis会将后续的命令逐个放入队列中,然后才能使用exec命令原子化的执行命令序列。   2、exec:在一个事务中执行所有先前放入队列的命令,然后恢复正常连接状态。       当使用watch命令时,只有当受监控的键没有被修改时,exec命令才会执行事务中的命令这种命令利用了验证再设置(cas)的机制   3、discard:清除所有先前在一个事务中放入队列的命令,然后恢复正常连接状态,如果使用了watch命令,那么discard命令就会将当前连接监控的所有键取消监控   4、watch:当某个事务需要按条件执行时,就要使用这个命令将给定的键设置为受监控的。   5、unwatch:清楚所有先前为一个事务监控的键,如果调用了exec或discard命令,那么就不需要手动调用unwatch命令   事务内部的错误   在一个事务的运行期间,可能会遇到两种类型的命令错误:   1、一个命令可能会在被放入队列时失败。因此

Redis的事务功能详解

£可爱£侵袭症+ 提交于 2020-02-05 14:04:41
Redis的事务功能详解 MULTI、EXEC、DISCARD和WATCH命令是Redis事务功能的基础 。Redis事务允许在一次单独的步骤中执行一组命令,并且可以保证如下两个重要事项: > Redis会将一个事务中的所有命令序列化 ,然后按顺序执行。Redis不可能在一个Redis事务的执行过程中插入执行另一个客户端发出的请求。这样便能保证Redis将这些命令作为一个单独的隔离操作执行。 > 在一个Redis事务中,Redis要么执行其中的所有命令,要么什么都不执行 。 因此,Redis事务能够保证原子性 。EXEC命令会触发执行事务中的所有命令。因此,当某个客户端正在执行一次事务时,如果它在调用MULTI命令之前就从Redis服务端断开连接,那么就不会执行事务中的任何操作;相反,如果它在调用EXEC命令之后才从Redis服务端断开连接,那么就会执行事务中的所有操作。当Redis使用只增文件(AOF:Append-only File)时,Redis能够确保使用一个单独的write(2)系统调用,这样便能将事务写入磁盘。然而,如果Redis服务器宕机,或者系统管理员以某种方式停止Redis服务进程的运行,那么Redis很有可能只执行了事务中的一部分操作。Redis将会在重新启动时检查上述状态,然后退出运行,并且输出报错信息。使用redis-check

linux 后台任务 运行 关闭 查看

二次信任 提交于 2020-02-05 11:57:05
一、& 加在一个命令的最后,可以把这个命令放到后台执行,如 watch -n 10 sh test.sh & #每10s在后台执行一次test.sh脚本 二、ctrl + z 可以将一个正在前台执行的命令放到后台,并且处于暂停状态。 三、jobs 查看当前有多少在后台运行的命令 jobs -l 选项可显示所有任务的PID,jobs的状态可以是running, stopped, Terminated。但是如果任务被终止了(kill),shell 从当前的shell环境已知的列表中删除任务的进程标识。 四、fg 将后台中的命令调至前台继续运行。如果后台中有多个命令,可以用fg %jobnumber(是命令编号,不是进程号)将选中的命令调出。 五、bg 将一个在后台暂停的命令,变成在后台继续执行。如果后台中有多个命令,可以用bg %jobnumber将选中的命令调出。 六、kill 法子1:通过jobs命令查看job号(假设为num),然后执行kill %num 法子2:通过ps命令查看job的进程号(PID,假设为pid),然后执行kill pid 前台进程的终止:Ctrl+c 七、nohup 如果让程序始终在后台执行,即使关闭当前的终端也执行(之前的&做不到),这时候需要nohup。该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。关闭中断后

iOS 创建xcode插件

强颜欢笑 提交于 2020-02-05 09:09:31
苹果的"一个足以应付所有"策略使得它的产品越来越像一个难以下咽的药丸。尽管苹果已经将一些工作流带给了iOS/OS X的开发者,我们仍然希望通过插件来使得Xcode更加顺手! 虽然苹果并没有提供任何的官方文档来指导我们如何创建一个xcode插件,但是开发者社区做了大量的工作开发了一些非常有用的工具,通过这些工具,可以用来帮助开发者。 从 自动完成图片名的插件 ,到 清除缓存的插件 再到 使Xcode变成一个vim编辑器的插件 ,Xcode的插件社区已经拓展了我们的思维,我们可以让Xcode变得更加智能。 在这个不算短的三部分教程中,你将创建一个Xcode的插件来娱乐你的同事,其特色莫过于显示的内容并不是他所期望看到的!尽管这个插件是很轻量级的,你仍然可以学习到很多知识,例如,通过调试Xcode,怎样找出你感兴趣的元素并且修改它,怎样将系统的功能函数替换为你自己的函数(通过swizzle技术)! 你将会使用 x86汇编知识 , 代码定技能 以及 LLDB调试技能 来查阅未公开的私有framework,并且要探索这些私有framework中的私有API,还要使用 method swizzleing 来进行代码的注入。正因为有这么多内容,所以本教程的讲解速度会很快。在继续之前,请务必确定你已经掌握了相关的 iOS/OS X的开发。 使用Swift来开发插件,还是一个比较复杂的主题

性能检测工具介绍-Linux系统命令行

ぐ巨炮叔叔 提交于 2020-02-05 07:01:38
本文介绍的关于Linux自带命令进行性能检测的介绍,详细介绍这些linux自带的工具的使用。 一、uptime uptime命令的显示结果包括服务器已经运行了多长时间,有多少登陆用户和对服务器性能的总体评估(load average)。load average值分别记录了上个1分钟,5分钟和15分钟间隔的负载情况,load average不是一个百分比,而是在队列中等待执行的进程的数量。如果进程要求CPU时间被阻塞(意味着CPU没有时间处理它),load average值将增加。另一方面,如果每个进程都可以立刻得到访问CPU的时间,这个值将减少。 load average的最佳值是1,这说明每个进程都可以立刻被CPU处理,当然,更低不会有问题,只说明浪费了一部分的资源。但在不同的系统间这个值也是不同的,例如一个单CPU的工作站,load average为1或者2都是可以接受的,而在一个多CPU的系统中这个值应除以物理CPU的个数,假设CPU个数为4,而load average为8或者10,那结果也是在2多点而已。 可以使用uptime判断一个性能问题是出现在服务器上还是网络上。例如,如果一个网络应用运行性能不理想,运行uptime检查系统负载是否比较高,如果不是这个问题更可能出现在你的网络上。 二、top Top命令显示了实际CPU使用情况,默认情况下

Linux常用性能检测命令

故事扮演 提交于 2020-02-05 06:57:37
Linux常用性能检测命令、uptime、top、iostat、Vmstat、pstree、Numastat、sar、free、Pmap、Strace、ulimit 一、uptime Uptime命令的显示结果包括服务器已经运行了多长时间,有多少登陆用户和对服务器性能的总体评估(load average)。load average值分别记录了上个1分钟,5分钟和15分钟间隔的负载情况,load average不是一个百分比,而是在队列中等待执行的进程的数量。如果进程要求CPU时间被阻塞(意味着CPU没有时间处理它),load average值将增加。另一方面,如果每个进程都可以立刻得到访问CPU的时间,这个值将减少。 UP kernel下的load average的最佳值是1,这说明每个进程都可以立刻被CPU处理,当然,更低不会有问题,只说明浪费了一部分的资源。但在不同的系统间这个值也是不同的,例如一个单CPU的工作站,load average为1或者2都是可以接受的,而在一个多CPU的系统中这个值应除以物理CPU的个数,假设CPU个数为4,而load average为8或者10,那结果也是在2多点而已。 你可以使用uptime判断一个性能问题是出现在服务器上还是网络上。例如,如果一个网络应用运行性能不理想,运行uptime检查系统负载是否比较高

操作 Docker 容器 访问 Docker 仓库28

我是研究僧i 提交于 2020-02-04 12:07:23
操作 Docker 容器 28 启动容器 新建并启动 启动已终止容器 守护态运行 终止容器 进入容器 attach 命令 exec 命令 -i -t 参数 访问 Docker 仓库 Docker Hub 注册 登录 拉取镜像 推送镜像 自动创建 Docker 私有仓库 安装运行 docker-registry 容器运行 在私有仓库上传、搜索、下载镜像 注意事项 Ubuntu 16.04+, Debian 8+, centos 7 其他 容器是 Docker 又一核心概念。 简单的说,容器是独立运行的一个或一组应用,以及它们的运行态环境。对应的,虚拟机可以理解为模拟运行的一整套操作系统(提供了运行态环境和其他系统环境)和跑在上面的应用。 本章将具体介绍如何来管理一个容器,包括创建、启动和停止等。 启动容器 启动容器有两种方式,一种是基于镜像新建一个容器并启动,另外一个是将在终止状态( stopped )的容器重新启动。 因为 Docker 的容器实在太轻量级了,很多时候用户都是随时删除和新创建容器。 新建并启动 所需要的命令主要为 docker run 。 例如,下面的命令输出一个 “Hello World”,之后终止容器。 $ docker run ubuntu:14.04 /bin/echo 'Hello world' Hello world 这跟在本地直接执行 /bin

Docker入门

时光怂恿深爱的人放手 提交于 2020-02-04 10:25:25
一:目前面临的难题 软件开发最大的麻烦事之一,就是环境配置。用户计算机的环境都不相同,你怎么知道自家的软件,能在那些机器跑起来? 用户必须保证两件事:操作系统的设置,各种库和组件的安装。只有它们都正确,软件才能运行。举例来说,安装一个 Python 应用,计算机必须有 Python 引擎,还必须有各种依赖,可能还要配置环境变量。 如果某些老旧的模块与当前环境不兼容,那就麻烦了。开发者常常会说:"它在我的机器可以跑了"(It works on my machine),言下之意就是,其他机器很可能跑不了。 环境配置如此麻烦,换一台机器,就要重来一次,旷日费时。很多人想到,能不能从根本上解决问题,软件可以带环境安装?也就是说,安装的时候,把原始环境一模一样地复制过来。 二:虚拟机和Linux容器的区别   虚拟机: (1)资源占用多 虚拟机会独占一部分内存和硬盘空间。它运行的时候,其他程序就不能使用这些资源了。哪怕虚拟机里面的应用程序,真正使用的内存只有 1MB,虚拟机依然需要几百 MB 的内存才能运行。 (2)冗余步骤多 虚拟机是完整的操作系统,一些系统级别的操作步骤,往往无法跳过,比如用户登录。 (3)启动慢 启动操作系统需要多久,启动虚拟机就需要多久。可能要等几分钟,应用程序才能真正运行。   Linux容器: 由于虚拟机存在这些缺点,Linux 发展出了另一种虚拟化技术

docker学习整理

只愿长相守 提交于 2020-02-02 18:32:34
1.安装 Docker 支持 CentOS6 及以后的版本 对于 CentOS6,可以使用 EPEL 库安装 Docker CentOS7 系统 CentOS-Extras 库中已带 Docker,可以直接安装 yum install docker-io service docker start chkconfig docker on 看docker版本 docker version 2.docker启动时报错 docker: relocation error: docker: symbol dm_task_get_info_with_deferred_remove,.... 解决办法: 执行:yum upgrade device-mapper-libs 当出现 Transaction check error: file /usr/lib/systemd/system/blk-availability.service from install of device-mapper-7:1.02.107-5.el7_2.1.x86_64 conflicts with file from package lvm2-7:2.02.105-14.el7.x86_64 安装包冲突,先yum remove lvm2-7:2.02...... 3.docker搜索

GIT之二 基础篇(1)

ε祈祈猫儿з 提交于 2020-02-01 19:38:09
GIT基础 取得项目的 Git 仓库 有两种取得 Git 项目仓库的方法。第一种是在现存的目录下,通过导入所有文件来创建新的 Git 仓库。第二种是从已有的 Git 仓库克隆出一个新的镜像仓库来。 在工作目录中初始化新仓库 要对现有的某个项目开始用 Git 管理,只需到此项目所在的目录,执行: $ git init 初始化后,在当前目录下会出现一个名为 .git 的目录,所有 Git 需要的数据和资源都存放在这个目录中。 如果当前目录下有几个文件想要纳入版本控制,需要先用 git add 命令告诉 Git 开始对这些文件进行跟踪,然后提交: $ git add *.c $ git add README $ git commit -m 'initial project version' 现在,你已经得到了一个实际维护着若干文件的 Git 仓库。 从现有仓库克隆 如果想对某个开源项目出一份力,可以先把该项目的 Git 仓库复制一份出来,这就需要用到 git clone 命令。如果你熟悉其他的VCS,你可能已经注意到这里使用的是 clone 而不是checkout。这是个非常重要的差别,Git 收取的是项目历史的所有数据(每一个文件的每一个版本),服务器上有的数据克隆之后本地也都有了。实际上,即便服务器的磁盘发生故障,用任何一个克隆出来的客户端都可以重建服务器上的仓库