命令模式

Redis——订阅

﹥>﹥吖頭↗ 提交于 2020-03-13 10:05:49
总结: 服务器状态在pubsub_channels字典保存了所有频道的订阅关系:SUBSCRIBE命令负责将客户端和被订阅的频道关联到这个字典里面,则UNSUBSCRIBE命令则负责解除客户端和退订频道之间 的关联。 服务器状态在pubsub_patterns链表保存了所有模式的订阅关系:PSUBSCRIBE命令负责将客户端 和被订阅的模式记录到这个链表中,而PUNSUBSCRIBE命令则负责移除客户端和被退订模式在链表中的记录。 PUBLISH 命令通过访问pubsub_channels字典来向频道的所有订阅者发送消息,通过访问 pubsub_patterns链表来向所有匹配频道的模式的订阅者发送消息。 PUBSUB命令的三个子命令都是通过读取pubsub_channels字典和pubsub_patterns链表中的信息来实现的。 订阅使用的场景是什么????? 补充: 消息系统该Push/Pull模式分析: http://blog.csdn.net/pi9nc/article/details/27714745 来源: oschina 链接: https://my.oschina.net/u/1475335/blog/682933

[转帖]DOCKER基础技术:DEVICEMAPPER

守給你的承諾、 提交于 2020-03-13 08:06:27
DOCKER基础技术:DEVICEMAPPER https://coolshell.cn/articles/17200.html 2015年08月26日 陈皓 评论 21 条评论 48,398 人阅读 在上一篇 介绍AUFS的文章 中,大家可以看到,Docker的分层镜像是怎么通过UnionFS这种文件系统做到的,但是,因为Docker首选的AUFS并不在Linux的内核主干里,所以,对于非Ubuntu的Linux分发包,比如CentOS,就无法使用AUFS作为Docker的文件系统了。于是作为第二优先级的DeviceMapper就被拿出来做分层镜像的一个实现。 Device Mapper 简介 DeviceMapper自Linux 2.6被引入成为了Linux最重要的一个技术。它在内核中支持逻辑卷管理的通用设备映射机制,它为实现用于存储资源管理的块设备驱动提供了一个高度模块化的内核架构,它包含三个重要的对象概念,Mapped Device、Mapping Table、Target device。 Mapped Device 是一个逻辑抽象,可以理解成为内核向外提供的逻辑设备,它通过Mapping Table描述的映射关系和 Target Device 建立映射。Target device 表示的是 Mapped Device 所映射的物理空间段,对 Mapped Device

[转帖]你可能不知道的SHELL

删除回忆录丶 提交于 2020-03-13 08:05:29
你可能不知道的SHELL https://coolshell.cn/articles/8619.html 2012年11月23日 404null 评论 146 条评论 108,187 人阅读 Shell也叫做命令行界面,它是*nix操作系统下用户和计算机的交互界面。Shell这个词是指操作系统中提供访问内核服务的程序。 这篇文章向大家介绍Shell一些非广为人知、但却实用有趣的知识,权当品尝shell主食后的甜点吧。 科普 先科普几个你可能不知道的事实: Shell几乎是和Unix操作系统一起诞生,第一个Unix Shell是肯·汤普逊(Ken Thompson)以Multics上的Shell为模范在1971年改写而成,并命名Thompson sh。即便是后来流行的bash(shell的一种变体),它的年龄实际上比当前流行的所有的Linux kernel都大,可谓在Linux系统上是先有Shell再有Kernel。 当前绝大部分*nix和MacOS操作系统里的默认的Shell都是bash,bash由Brian Fox在1987年创造,全称Bourne Again shell ( bash)。 你或许听说除了bash之外,还有Bourne shell ( sh),Korn shell ( ksh),C shell (包括 csh and tcsh)

Linux中配置ftp服务器

孤者浪人 提交于 2020-03-13 03:29:33
1. 先用rpm -qa| grep vsftpd命令检查是否已经安装,如果ftp没有安装,使用yum -y install vsftpd 安装,(ubuntu 下使用apt-get install vsftpd) 2. service vsftpd start / service vsftpd restart 启动要让FTP每次开机自动启动,运行命令: chkconfig --level 35 vsftpd on 3. 设置ftp权限 vi /etc/vsftpd/vsftpd.conf 将anonymous_enable=YES 改为 anonymous_enable=NO ESC返回,输入“:wq”保存并推出 刷新防火墙 #iptables -F 其中vsftpd的主配置文件是: /etc/vsftpd/vsftpd.conf 实验一: 如果我不允许FTP匿名登陆,我们可以修改vsftpd的主配置文件来实现 #vi /etc/vsftpd/vsftpd.conf 把anonymous_enable=YES 改为anonymous_enable=NO 实验二: windows中FTP服务器可以设置欢迎词,最大连接数,那我们在Linux的FTP服务器中设置呢?我要回答的是:同样可以,我们同样可以vsftpd的主配置文件来实现# vi /etc/vsftpd/vsftpd.conf

亦步亦趋在CentOS 6.4下安装Oracle 11gR2(x64)

别等时光非礼了梦想. 提交于 2020-03-13 02:05:40
安装前须知: 内存(RAM)的最小要求是 1GB,建议 2GB 及以上。 虚拟内存 swap 建议:内存为 1GB~2GB 时建议swap大小为内存大小的 1.5 倍;内存为 2GB~16GB 时建议swap大小为内存的大小;内存超过 16GB 时swap保持16GB。 要求临时文件目录,如 /tmp 的磁盘空间至少 1GB。 磁盘空间要求:企业版为4.35GB的安装空间和1.7GB以上的数据文件空间;标准版为4.22GB的安装空间和1.5GB以上的数据文件空间。 需要 X window 图形界面。 需要 root 用户权限 本文安装环境: 操作系统 CentOS 6.4 2.6.32-358.el6.x86_64(desktop),2GB RAM,80GB 硬盘空间(4GB swap、100MB /boot、40GB /) 主机名 mophee, IP 192.168.80.19(静态) 环境:VMware Workstation 9.0 安装所需程序包(在root帐号下操作): 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 binutils-2.17.50.0.6 compat-libstdc++-33-3.2.3 compat-libstdc++-33-3.2

CentOS 6.4下安装Oracle 11gR2

流过昼夜 提交于 2020-03-13 02:05:18
安装前须知: 内存(RAM)的最小要求是 1GB,建议 2GB 及以上。 虚拟内存 swap 建议:内存为 1GB~2GB 时建议swap大小为内存大小的 1.5 倍;内存为 2GB~16GB 时建议swap大小为内存的大小;内存超过 16GB 时swap保持16GB。 要求临时文件目录,如 /tmp 的磁盘空间至少 1GB。 磁盘空间要求:企业版为4.35GB的安装空间和1.7GB以上的数据文件空间;标准版为4.22GB的安装空间和1.5GB以上的数据文件空间。 需要 X window 图形界面。 需要 root 用户权限 本文安装环境: 操作系统 CentOS 6.4 2.6.32-358.el6.x86_64(desktop),2GB RAM,80GB 硬盘空间(4GB swap、100MB /boot、40GB /) 主机名 mophee, IP 192.168.80.19(静态) 环境:VMware Workstation 9.0 本文的修正版本已发布到以下地址: http://blog.itrunc.com/2013/12/30/install-oracle-11g-release2-in-centos-x64/ 安装所需程序包(在root帐号下操作): binutils-2.17.50.0.6 compat-libstdc++-33-3.2.3 compat

ES6中新加命令

拈花ヽ惹草 提交于 2020-03-13 00:59:34
1.2、let 和 const 命令   var     var 有一个问题,就是定义的变量有时会莫名奇妙的成为全局变量。例如这样的一段代码: 1 for(var i = 0; i < 5; i++ ) { 2 console.log(i); 3 } 4 console.log("循环外” + i);            这样的变量成了全局变量,造成了困扰。     可以看出,在循环外部也可以获取到变量i的值,显然变量i的作用域范围太大了,在做复杂页面时,会带来很大的问题。    let      let 所声明的变量,只在 let 命令所在的代码块内有效。我们把刚才的 var 改成 let 试试: for(let i = 0; i < 5; i++){ console.log(i); }console.log("循环外:" + i)     这样,就把变量的i的作用域控制在了循环内部。 const     const 声明的变量是常量,不能被修改,类似于java中final关键字 const a = 1; console.log("q = ", a); // 给a 赋值 a = 2; console.log("a = " , a);     可以看到,变量a的值是不能修改的。 1.3、字符串扩展   在ES6中,为字符串扩展了几个新的API:   includes()

详解ssh命令

谁说我不能喝 提交于 2020-03-12 22:36:18
SSH 的详细使用方法如下: ssh [-l login_name] [hostname | user@hostname] [command] ssh [-afgknqtvxCPX246] [-c blowfish | 3des] [-e escape_char] [-i identity_file] [-l login_name] [-o option] [-p port] [-L port:host:hostport] [-R port:host:hostport] [hostname | user@hostname] [command] sshd 为执行 ssh 的 daemon,在读者使用 ssh 之前必须去激活 sshd,在此建议把它加在 /etc/init/rc.local 中,在每次开机时激活。 在执行 sshd 之前可以指定它的 port,例如:sshd –p 999 若有安装 SSL,可以指定 SSL 的 port 443,例如:sshd –p 443 这样就可以经过 SSL 及 SSH 双重的保护,但必须去指明使用的 port ssh –l user –p 443 mouse.oit.edu.tw 才行,若不指明则仍然使用预设的port 22 ssh 选项: -l login_name 指定登入于远程机器上的使用者,若没加这个选项,而直接打 ssh lost

android通过ssh远程登陆控制ubuntu教程

微笑、不失礼 提交于 2020-03-12 21:32:32
前言   众所周知,android手机使用的是linux内核,可以这么说,安卓系统就是一个linux系统。而linux系统最神秘,最精彩的地方是命令,安卓系统能不能运行linux命令呢? 答案是肯定的!通过本教程,你就可以轻松的用你的手机远程遥控你的linux系统了!!  2.工具(本教程使用的工具)   1枚安卓手机(已root)+手机终端应用(如connectBot)+ubuntu+openssh-server  3.步骤   1. 在手机上安装终端模拟器应用,必要时赋予root权限   2.在ubuntu上安装openssh-server,命令如下:    sudo apt-get install openssh-server   3.查看ubuntu的ip和openssh-server的开启状态(注意,ubuntu的ip要为外网ip 或者与手机同处一个网段),命令分别为:    ifconfig 和 netstat -tpl    4.打开手机终端,输入命令进行远程登陆(或者使用图形界面进行登录):    su ssh username@192.168.1.2 (username为ubuntu用户,ip为ubuntu的ip)   5.输入密码后,提示登陆成功,尝试一下输入:   sudo shutdown -h now   输入密码后,电脑关机了 ,有木有!是不是 觉得很吊

Tungsten Fabric与K8s集成指南丨创建隔离命名空间

自闭症网瘾萝莉.ら 提交于 2020-03-12 18:51:44
作者:吴明秘 Hi!欢迎来到Tungsten Fabric与Kubernetes集成指南系列,本文介绍如何创建隔离的命令空间,并对其网络连通性进行验证。Tungsten Fabric与K8s集成指南系列文章,由TF中文社区为您呈现,旨在帮助大家了解Tungsten Fabric与K8s集成的基础知识。大家在相关部署中有什么经验,或者遇到的问题,欢迎与我们联系。 K8s与Tungsten Fabric集成后有四种配置模式,分别为:默认模式、自定义隔离模式、命名空间隔离模式、嵌套模式。 默认模式 :Tungsten Fabric创建一个由所有命名空间共享的虚拟网络,并从中分配service和pod的IP地址,在Kubernetes集群中产生的所有命名空间中的所有pod都能够彼此通信。 自定义隔离模式 :管理员和应用程序开发人员可以添加注释("opencontrail.org/network: <fq_network_name>")来指定虚拟网络。在这个虚拟网络中,一个命令空间中的一个或所有pod将在这个虚拟网络中被启动。如果该注释是在pod上配置的,那么pod将在该网络中启动;如果注释是在命名空间中配置的,那么命名空间中的所有pod都将在该网络中启动。 命名空间隔离模式 :集群管理员可以在创建新的命令空间时,添加注释("opencontrail.org/isolation : true