那些年的记忆

习惯改变行为,行为决定命运。

在CentOS 6.6上安装ElasticSearch

1. 首先,检查是否安装Java:

[root@localhost ~]# java -version
openjdk version "1.8.0_45"
OpenJDK Runtime Environment (build 1.8.0_45-b13)
OpenJDK Server VM (build 25.45-b02, mixed mode)

注:这里需要安装1.8.0以上的版本,否则可能会在启动ElasticSearch时报错。

没有安装的话,使用yum直接安装:

yum install java-1.8.0-openjdk-devel


[转]PHP底层的运行机制与原理

PHP说简单,但是要精通也不是一件简单的事。我们除了会使用之外,还得知道它底层的工作原理。

PHP是一种适用于web开发的动态语言。具体点说,就是一个用C语言实现包含大量组件的软件框架。更狭义点看,可以把它认为是一个强大的UI框架。

了解PHP底层实现的目的是什么?动态语言要像用好首先得了解它,内存管理、框架模型值得我们借鉴,通过扩展开发实现更多更强大的功能,优化我们程序的性能。

1. PHP的设计理念及特点

  • 多进程模型:由于PHP是多进程模型,不同请求间互不干涉,这样保证了一个请求挂掉不会对全盘服务造

    成影响,当然,随着时代发展,PHP也早已支持多线程模型。

  • 弱类型语言:和C/C++、Java、C#等语言不同,PHP是一门弱类型语言。一个变量的类型并不是一开始就

    确定不变,运行中才会确定并可能发生隐式或显式的类型转换,这种机制的灵活性在web开发中非常方便、

    高效,具体会在后面PHP变量中详述。

  • 引擎(Zend)+组件(ext)的模式降低内部耦合。

  • 中间层(sapi)隔绝web server和PHP。

  • 语法简单灵活,没有太多规范。缺点导致风格混杂,但再差的程序员也不会写出太离谱危害全局的程序。

Linux 限制SFTP用户只能访问某个目录

这里需要注意OpenSSH的版本,需要4.8以上

> ssh -V
OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11 Feb 2013


1. 新建用户并设置密码

> useradd suser
> passwd suser   // 输入密码


2. 设置sshd配置文件

> cd /etc/ssh/
> cp sshd_config sshd_config.back      // 备份
> vi sshd_config

// 注释该行 不注释的话会报错
#Subsystem      sftp    /usr/libexec/openssh/sftp-server    

Subsystem sftp internal-sftp
Match User suser
        ChrootDirectory /var/opt/sftp
        X11Forwarding no
        AllowTcpForwarding no
        ForceCommand internal-sftp

复习(九) MySQL存储引擎

MySQL将数据以不同的技术存储在文件(内存)中,这种技术称为存储引擎。

常用存储引擎及特点

特点
MyISAM InnoDBMemoryArchive
存储限制256TB
64TB
事务安全
-
支持--
支持索引
支持支持
支持
-
表锁
行锁
表锁
行锁
数据压缩支持
-
-支持
支持外键-
支持
-
-


复习(八) MySQL存储过程

存储过程是SQL语句和控制语句的预编译集合,以一个名称存储并作为一个单元处理。

优点:

    增强SQL语句的功能和灵活性

    实现较快的执行速度

    减少网络流量

创建存储过程

CREATE

[DEFINER = {user | CURRENT_USER}]

PROCEDURE sp_name ([proc_parameter[,...]])

[characteristic ...] routine_body

复习(七) 自定义函数

用户自定义函数(user-defined function,UDF)是一种MySQL扩展的途径,其用法与内置函数相同。

函数可以返回任意类型的值,也可以接收这些类型的参数。

创建自定义函数

CREATE FUNCTION function_name

RETURNS

{STRING | INTERGER | REAL | DECIMAL}

routine_body

复习(六) 运算符和函数

字符函数

CONCAT()    字符连接

CONCAT_WS() 使用指定的分隔符进行连接

FORMAT()    数据格式化

LOWER()     转换为小写字母

UPPER()     转换为大写字母

LEFT()      获取左侧字符

RIGHT()     获取右侧

复习(五) 子查询与连接

在客户端设置字符集

mysql> SET NAMES gbk;

子查询

子查询是指出现左其他SQL语句内的SELECT子句。

子查询指嵌套在查询内部,且必须始终出现在圆括号内。

子查询可以包含多个关键字或条件,如DISTINCT、GROUP BY、ORDER BY、LIMIT、函数等。

子查询的外层查询可以是:S

复习(四) 表记录操作

插入记录 INSERT

INSERT [INTO] table_name [(col_name,...)] {VALUES | VALUE} ({expr | DEFAULT},...),(...),...

INSERT [INTO] table_name SET col_name = {expr | DEFAULT},...

INSERT [INTO] table_name [(col_name,...)] SELECT ...

例如:

复习(三) 约束及修改数据表

约束的概念

约束保证数据的完整性和一致性。

约束分为表级约束和列级约束

约束类型包括:

    NOT NULL(非空约束)

    PRIMARY KEY(主键约束)

    UNIQUE KEY(唯一约束)

    DEFAULT(默认约束)

    FOREIGN KEY(外键约束)