命令模式

redis事件

佐手、 提交于 2020-03-22 01:36:20
Redis服务器是一个事件驱动程序,服务器需要处理以下两类事件 1:文件事件(file event):Redis服务器通过套接字与客户端进行连接,而文件事件就是服务器对套接字操作的抽象。服务器与客户端的通信会产生相应的文件事件,而服务器则通过监听并处理这些事件来完成一系列网络通信操作 2:时间事件(time event):Redis服务器中的一些操作(比如serverCron函数)需要在给定的时间点执行,而时间事件就是服务器对这类定时操作的抽象 文件事件 Redis基于Reactor模式开发了自己的网络事件处理器:这个处理器被称为文件事件处理器(file event handler) 1:文件事件处理器使用I/O多路复用程序来同时监听多个套接字,并根据套接字目前执行的任务来为套接字关联不同的事件处理器 2:当被监听的套接字准备好执行连接应答(accept)、读取(read)、写入(write)、关闭(close)等操作时,与操作相对应的文件事件就会发生,这时文件事件处理器就会调用套接字之前关联好的事件处理器来处理这些事件 虽然文件事件处理器以单线程方式运行,但通过使用I/O多路复用程序来监听多个套接字,文件事件处理器既实现了高性能的网络通信模型,又可以很好地与Redis服务器中其他同样以单线程方式运行的模块进行对接,这保持了Redis内部单线程设计的简单性 文件事件处理器的构成

linux下定时执行任务的方法

爱⌒轻易说出口 提交于 2020-03-22 01:28:31
在LINUX中你应该先输入crontab -e,然后就会有个vi编辑界面,再输入0 3 * * 1 /clearigame2内容到里面 :wq 保存退出。 在LINUX中,周期执行的任务一般由cron这个守护进程来处理[ps -ef|grep cron]。cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间。 cron的配置文件称为“crontab”,是“cron table”的简写。 一、cron在3个地方查找配置文件: 1、/var/spool/cron/ 这个目录下存放的是每个用户包括root的crontab任务,每个任务以创建者的名字命名,比如tom建的crontab任务对应的文件就是/var/spool/cron/tom。 一般一个用户最多只有一个crontab文件。 二、/etc/crontab 这个文件负责安排由系统管理员制定的维护系统以及其他任务的crontab。 三、/etc/cron.d/ 这个目录用来存放任何要执行的crontab文件或脚本。 四、权限 crontab权限问题到/var/adm/cron/下一看,文件cron.allow和cron.deny是否存在 用法如下: 1、如果两个文件都不存在,则只有root用户才能使用crontab命令。 2、如果cron.allow存在但cron.deny不存在,则只有列在cron

crontab-Linux下定时执行脚本

流过昼夜 提交于 2020-03-21 22:45:12
3 月,跳不动了?>>> http://www.blogjava.net/decode360/archive/2009/09/18/287743.html 今天做了个数据库的备份脚本,顺便系统得学习一下Linux下定时执行脚本的设置。Linux下的定时执行主要是使用crontab文件中加入定制计划来执行,设置比Windows稍微复杂一些(因为没有图形界面嘛),但是也不是非常复杂,基本上用过一遍就能记住了,关键是要记住/var/spool/cron这个目录。下面看一下具体的用法: 首先 查看一下/etc/crontab文件: $ cat /etc/crontab SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/ # run-parts 01 * * * * root run-parts /etc/cron.hourly 02 4 * * * root run-parts /etc/cron.daily 22 4 * * 0 root run-parts /etc/cron.weekly 42 4 1 * * root run-parts /etc/cron.monthly 前四行是有关设置cron任务运行的环境变量。SHELL变量的值指定系统使用的SHELL环境(该样例为bash shell)

shell之xargs与-exec与管道的区别你造吗?

江枫思渺然 提交于 2020-03-21 21:23:40
3 月,跳不动了?>>> 1、xargs作用: (1)将前一个命令的标准输出传递给下一个命令,作为它的参数,xargs的默认命令是echo,空格是默认定界符 (2)将多行输入转换为单行 2、使用模式: front command | xargs -option latercommand front command: 前一个命令 -option: xargs的选项 later command: 后一个命令 一般与管道“|”结合使用 3、xargs常用选项 -n: 指定一次处理的参数个数 -d: 自定义参数界定符 -p: 询问是否运行 later command 参数 -t : 表示先打印命令,然后再执行 -i : 逐项处理 ...更多参数查看man xargs 4、xargs与管道|的区别 管道“|” 用来将前一个命令的标准输出传递到下一个命令的标准输入。 xargs 将前一个命令的标准输出传递给下一个命令,作为它的参数。 可见,标准输入与命令参数是不同的。个人理解,命令参数就是直接跟在命令后面的,标准输入可以是键盘,文件等。 所以,管道符 | 所传递给程序的不是简单地在程序名后面输入的参数,它们会被程序内部的读取功能如scanf和gets等接收,而xargs则是将内容作为普通的参数传递给程序,相当于直接跟在命令后面。况且,有些命令是不接受标准输入的,比如kill,rm等命令。 总结

setup命令开机启动服务配置

不想你离开。 提交于 2020-03-21 20:15:19
setup是redhat开发的命令行下命令行模式界面的GUI工具,只适用6.x或5.x版本,其他的版本比如说Suse是没有这个工具的。通过它可配置网络,防火墙,主机名,开机启动服务等,用这个命令比较方便对系统的配置。 setup 命令的基本信息如下。 命令名称:setup。 英文原意:A text mode system configuration tool。 所在路径:/usr/bin/setup。 执行权限:所有用户。 功能描述:系统配置工具。 如果没有安装通过下面的命令进行安装: #安装Setup命令工具 yum -y install setuptool #安装Setup工具配套的系统服务组件 yum -y install ntsysv #安装Setup工具配套的防火墙配置组件 yum -y install system-config-securitylevel-tui #安装Setup工具配套的网络配置组件 yum -y install system-config-network-tui #安装Setup工具配套的验证配置组件 yum -y install authconfig-gtk #安装Setup工具配套的键盘配置组件 yum -y install system-config-keyboard 1、setup 命令会开启一个图形化的配置工具, 这是一个综合工具

redis 订阅与发布

核能气质少年 提交于 2020-03-21 18:37:29
PUBLISH,SUBSCRIBE,等命令实现订阅与发布 订阅/发布到频道 订阅/发布到模式 频道的订阅与信息发送 订阅subscribe,可以让客户端订阅任意数量的频道, 每当有新信息发送到被订阅的频道时,信息就会被发送给所有订阅指定频道的客户端: 当有新消息通过publish命令发送给频道channel1时,这个消息就会被发送给订阅它的三个客户端: 订阅频道 每个 Redis 服务器进程都维持着一个表示服务器状态的 redis.h/redisServer 结构,结构的 pubsub_channels 属性是一个字典,这个字典就用于保存订阅频道的信息: struct redisServer { // ... dict *pubsub_channels; // ... };    其中字典的键为正在被订阅的频道,而字典的值则是一个链表,链表中保存了所有订阅这个频道的客户端。 例如: 当客户端调用subscribe命令时,程序将客户端和要订阅的频道在pubsub_channels字典中关联起来。 举个例子,如果客户端 client10086 执行命令 SUBSCRIBE channel1 channel2 channel3 , 那么前面展示的 pubsub_channels 将变成下面这个样子: 发送信息到频道 当调用 PUBLISH channel message 命令

马哥博客作业第一周

|▌冷眼眸甩不掉的悲伤 提交于 2020-03-21 18:21:57
第一章 1、什么是计算机 所谓的计算机就是一种计算器,而计算器其实是:接受用户输入指令与数据,经由中央处理器的数学与逻辑单元运算处理后,以产生或存储成有用的信息。因此,只要有输入设备(不管是键盘还是触摸屏)以及输出设备(屏幕或直接打印出来),让你可以输入数据使该机器产生信息的,那就是一台计算机了。 1.1 冯·诺依曼体系结构 1946年美籍匈牙利数学家冯·诺依曼于提出存储程序原理,把程序本身当作数据来对待,程序和该程序 处理的数据用同样的方式储存。 冯·诺依曼体系结构冯·诺依曼理论的要点是: 1. 数字计算机的数制采用二进制,bit 位, byte 字节 1 byte =8 bit 2. 计算机应该按照程序顺序执行 3. 计算机硬件由运算器、控制器、存储器、输入设备和输出设备五大部分组成 1.2二进制 2、 操作系统 2 .1操作系统功能 OS: Operating System 操作系统,通用目的的软件程序 主要功能:   硬件驱动,进程管理,内存管理,网络管理,安全管理文件管理 2.2操作系统分类:   OS分类:   服务器OS:CentOS,Ubuntu,Windows Server,AIX   桌面OS:Windows 10,Mac OS,Fedora   移动设备OS:Andriod,IOS,AliOS,HarmonyOS 2.3接口 : ABI Application

Redis 命令,键(key),字符串(String),哈希(Hash),列表(List),集合(Set)(二)

℡╲_俬逩灬. 提交于 2020-03-21 16:55:26
Redis 命令 Redis 命令用于在 redis 服务上执行操作。 要在 redis 服务上执行命令需要一个 redis 客户端。Redis 客户端在我们之前下载的的 redis 的安装包中。 语法 Redis 客户端的基本语法为: $ redis-cli 实例 以下实例讲解了如何启动 redis 客户端: 启动 redis 客户端,打开终端并输入命令 redis-cli 。该命令会连接本地的 redis 服务。 $redis-cli redis 127.0.0.1:6379> redis 127.0.0.1:6379> PING PONG 在以上实例中我们连接到本地的 redis 服务并执行 PING 命令,该命令用于检测 redis 服务是否启动。 在远程服务上执行命令 如果需要在远程 redis 服务上执行命令,同样我们使用的也是 redis-cli 命令。 语法 $ redis-cli -h host -p port -a password 实例 以下实例演示了如何连接到主机为 127.0.0.1,端口为 6379 ,密码为 mypass 的 redis 服务上。 $redis-cli -h 127.0.0.1 -p 6379 -a "mypass" redis 127.0.0.1:6379> redis 127.0.0.1:6379> PING PONG ------

Linux基础(二)之命令

﹥>﹥吖頭↗ 提交于 2020-03-21 16:38:44
01-基础命令 1. 创建一个目录 mkdir /data 创建多级目录 mkdir -p /oldboy/data 2. 查看目录里面的内容 ls /data 3. 查看目录里面的详细信息 ls -l /data 4. 进入到某个目录 cd /data 5. 显示当前位置 pwd 6. 创建文件、更新文件的时间戳 touch /data/hyp.txt 7. 编辑文件 vi /data/hyp.txt 按 i 进行插入模式,按esc键,输入 :wq 保存退出,:q 退出,:q! 强制退出,:wq! 强制保存退出 8. 查看文件hyp.txt内容 cat hyp.txt 9. echo+内容 会把内容显示到屏幕上 echo hello world echo hello world >>/data/hyp.txt 追加到文件里 >> 追加重定向 cat >>/data/hyp.txt <<EOF 追加多行(EOF表示结束标记) 10. 重定向符号 > 标准输出重定向 (先清空文件里的内容,再写入内容) >> 追加重定向 11. 复制 cp /data/hyp.txt /tmp 12. 备份hyp.txt文件 cp /data/hyp.txt /data/hyp.txt.bak 13. 复制目录及目录下的内容 cp -r /data/ /tmp/ cp -a /data/ /tmp/

shell脚本编程高级篇

徘徊边缘 提交于 2020-03-21 12:40:58
SHELL脚本编程进阶 循环执行:简单来说就是把一些指令重复循环。 循环代码具体的指令有三种: for , while , until其中for, while用的最多。 for循环 for 变量名 in 列表;do 循环体 done 关键字的帮助都是用help来查询。 for循环语法:在shell编程中 for,in,do,done。这些都是他的关键字,其中循环的指零就放在do和done之间。 WORDS决定了循环次数。 循环的次数由in 后面跟的WORDS(字符串)的数量决定。字符串的个数决定了do和done之间的指令执行的次数。 $ :for认为是一个整体 br/>$@:for认为是独立的参数 for循环逻辑:↓↓ :这条命令意思是,将i变量为1 22 33 等于说i同时等于这3个变量然后用到$i把变量显示出来第一次i就是1第二次i就是22第三次i就是333这就是for循环的逻辑。 :还可以使用花括号或字母一次性显示完。 for脚本编辑语法:,脚本意思是i变量为arg而$@是独立的一个整体执行为脚本后面跟123代表arg is 独立的123。 :这是重复创建10次用户的意思i变量为{1..10}这个范围 :这是让FILE变量为userlist.txt这个文件然后执行这个文件里有多少用户,在来循环多少次。 :不用创建脚本也可以在外执行for结尾必须使用;隔开done