无需言 做自己 业 ,精于勤 荒于嬉.

磁盘管理 repquota(report quota) 检查磁盘空间限制的状态

发表日期:2021-06-26 17:21:57 | 来源: | 分类:磁盘管理

功能说明:检查磁盘空间限制的状态。

语  法:repquota [-aguv][文件系统...]

补充说明:执行repquota指令,可报告磁盘空间限制的状况,清楚得知每位用户或每个群组已使用多少空间。

参  数:
  -a   列出在/etc/fstab文件里,有加入quota设置的分区的使用状况,包括用户和群组。
  -g   列出所有群组的磁盘空间限制。
  -u   列出所有用户的磁盘空间限制。
  -v   显示该用户或群组的所有空间限制。    

阅读全文 »

磁盘管理 quotaon 开启磁盘空间限制

发表日期:2021-06-26 17:21:38 | 来源: | 分类:磁盘管理

功能说明:开启磁盘空间限制。

语  法:quotaon [-aguv][文件系统...]

补充说明:执行quotaon指令可开启用户和群组的才磅秒年空间限制,各分区的文件系统根目录必须有quota.user和quota.group配置文件。

参  数:
  -a   开启在/ect/fstab文件里,有加入quota设置的分区的空间限制。
  -g   开启群组的磁盘空间限制。
  -u   开启用户的磁盘空间限制。
  -v   显示指令指令执行过程。    

阅读全文 »

磁盘管理 quotaoff 关闭磁盘空间限制

发表日期:2021-06-26 17:21:20 | 来源: | 分类:磁盘管理

功能说明:关闭磁盘空间限制。

语  法:quotaoff [-aguv][文件系统...]

补充说明:执行quotaoff指令可关闭用户和群组的磁盘空间限制。

参  数:
  -a   关闭在/etc/fstab文件里,有加入quota设置的分区的空间限制。
  -g   关闭群组的磁盘空间限制。
  -u   关闭用户的磁盘空间限制。
  -v   显示指令执行过程。

阅读全文 »

磁盘管理 quotacheck 检查磁盘的使用空间与限制

发表日期:2021-06-26 17:20:59 | 来源: | 分类:磁盘管理

功能说明:检查磁盘的使用空间与限制。

语  法:quotacheck [-adgRuv][文件系统...]

补充说明:执行quotacheck指令,扫描挂入系统的分区,并在各分区的文件系统根目录下产生quota.user和quota.group文件,设置用户和群组的磁盘空间限制。

参  数:
  -a   扫描在/etc/fstab文件里,有加入quota设置的分区。
  -d   详细显示指令执行过程,便于排错或了解程序执行的情形。
  -g   扫描磁盘空间时,计算每个群组识别码所占用的目录和文件数目。
  -R   排除根目录所在的分区。
  -u   扫描磁盘空间时,计算每个用户识别码所占用的目录和文件数目。
  -v   显示指令执行过程。    

阅读全文 »

磁盘管理 quota 显示磁盘已使用的空间与限制

发表日期:2021-06-26 17:20:23 | 来源: | 分类:磁盘管理

功能说明:显示磁盘已使用的空间与限制。

语  法:quota [-quvV][用户名称...] 或 quota [-gqvV][群组名称...]

补充说明:执行quota指令,可查询磁盘空间的限制,并得知已使用多少空间。

参  数:
  -g   列出群组的磁盘空间限制。
  -q   简明列表,只列出超过限制的部分。
  -u   列出用户的磁盘空间限制。
  -v   显示该用户或群组,在所有挂入系统的存储设备的空间限制。
  -V   显示版本信息。

阅读全文 »

磁盘管理 pwd(print working directory) 显示当前工作目录

发表日期:2021-06-26 17:19:30 | 来源: | 分类:磁盘管理

功能说明:显示工作目录。

语  法:pwd [--help][--version]

补充说明:执行pwd指令可立刻得知您目前所在的工作目录的绝对路径名称。

参  数:
  --help   在线帮助。
  --version   显示版本信息。

阅读全文 »

磁盘管理 mkdir(make directory) 建立目录

发表日期:2021-06-26 17:18:17 | 来源: | 分类:磁盘管理

功能说明:建立目录

语  法:mkdir [-p][--help][--version][-m <目录属性>][目录名称]

补充说明:mkdir可建立目录并同时设置目录的权限。

参  数:
  -m<目录属性>或--mode<目录属性>   建立目录时同时设置目录的权限。
  -p或--parents   若所要建立目录的上层目录目前尚未建立,则会一并建立上层目录。
  --help   显示帮助。
  --verbose   执行时显示详细的信息。
  --version   显示版本信息。

阅读全文 »

PHP杂项 tp+nginx

发表日期:2021-03-11 14:40:33 | 来源: | 分类:PHP杂项

server

    {   


        listen 80;


        #listen [::]:80;


        server_name xxxx.com.cn ;


        index index.html index.htm index.php default.html default.htm default.php;


        root  /home/wwwroot/xxx;


        


        #include rewrite/thinkphp.conf;


        location / {


            if (!-e $request_filename) {


                rewrite ^(.*)$ /index.php?s=/$1 last;


                break;


            }


        }


        #error_page   404   /404.html;


        


        # Deny access to PHP files in specific directory


        #location ~ /(wp-content|uploads|wp-includes|images)/.*\.php$ { deny all; }


        


        #include enable-php-pathinfo.conf;

        location ~ [^/]\.php(/|$)

        {


            fastcgi_pass  unix:/tmp/php-cgi.sock;


            fastcgi_index index.php;


            include fastcgi.tp.conf;


            #include pathinfo.conf;

            fastcgi_split_path_info ^(.+?\.php)(/.*)$;

            set $path_info $fastcgi_path_info;

            fastcgi_param PATH_INFO       $path_info;

            try_files $fastcgi_script_name =404;


        }


        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$


        {   


            expires      30d;


        }



        location ~ .*\.(js|css)?$


        {   


            expires      12h;


        }


        location ~ /.well-known {


            allow all;


        }


        location ~ /\.


        {   


            deny all;


        }



        access_log  /home/wwwlogs/xxx.log;


}


阅读全文 »

PHP杂项 nginx配置

发表日期:2021-03-11 14:22:24 | 来源: | 分类:PHP杂项

nginx:

server

    {

        listen 80 default_server reuseport;

        #listen [::]:80 default_server ipv6only=on;

        server_name _;

        index index.html index.htm index.php;

        root  /home/wwwroot/default;


        #error_page   404   /404.html;


        # Deny access to PHP files in specific directory

        #location ~ /(wp-content|uploads|wp-includes|images)/.*\.php$ { deny all; }


        include enable-php.conf;

        include rewrite/thinkphp.conf;


        location /nginx_status

        {

            stub_status on;

            access_log   off;

        }


        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$

        {

            expires      30d;

        }


        location ~ .*\.(js|css)?$

        {

            expires      12h;

        }


        location ~ /.well-known {

            allow all;

        }


        location ~ /\.

        {

            deny all;

        }


        access_log  /home/wwwlogs/access.log;

    }


vhost:

server

    {   

        listen 80;

        #listen [::]:80;

        server_name xxxx.com.cn ;

        index index.html index.htm index.php default.html default.htm default.php;

        root  /home/wwwroot/xxx;

        

        include rewrite/thinkphp.conf;

        #error_page   404   /404.html;

        

        # Deny access to PHP files in specific directory

        #location ~ /(wp-content|uploads|wp-includes|images)/.*\.php$ { deny all; }

        

        include enable-php-pathinfo.conf;

        

        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$

        {   

            expires      30d;

        }

        

        location ~ .*\.(js|css)?$

        {   

            expires      12h;

        }

        

        location ~ /.well-known {

            allow all;

        }

        

        location ~ /\.

        {   

            deny all;

        }

        

        access_log  /home/wwwlogs/xxx.log;

    }


thinkphp:

location / {

    if (!-e $request_filename) {

        rewrite ^(.*)$ /index.php?s=/$1 last;

        break;

    }

}


pathinfo.conf

fastcgi_split_path_info ^(.+?\.php)(/.*)$;

set $path_info $fastcgi_path_info;

fastcgi_param PATH_INFO       $path_info;

try_files $fastcgi_script_name =404;


enable-php-pathinfo.conf

        location ~ [^/]\.php(/|$)

        {

            fastcgi_pass  unix:/tmp/php-cgi.sock;

            fastcgi_index index.php;

            include fastcgi.tp.conf;

            include pathinfo.conf;

        }


enable-php.conf


        location ~ [^/]\.php(/|$)

        {

            try_files $uri =404;

            fastcgi_pass  unix:/tmp/php-cgi.sock;

            fastcgi_index index.php;

            include fastcgi.conf;

        }


fastcgi.conf

fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;

fastcgi_param  QUERY_STRING       $query_string;

fastcgi_param  REQUEST_METHOD     $request_method;

fastcgi_param  CONTENT_TYPE       $content_type;

fastcgi_param  CONTENT_LENGTH     $content_length;


fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;

fastcgi_param  REQUEST_URI        $request_uri;

fastcgi_param  DOCUMENT_URI       $document_uri;

fastcgi_param  DOCUMENT_ROOT      $document_root;

fastcgi_param  SERVER_PROTOCOL    $server_protocol;

fastcgi_param  REQUEST_SCHEME     $scheme;

fastcgi_param  HTTPS              $https if_not_empty;


fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;

fastcgi_param  SERVER_SOFTWARE    nginx/$nginx_version;


fastcgi_param  REMOTE_ADDR        $remote_addr;

fastcgi_param  REMOTE_PORT        $remote_port;

fastcgi_param  SERVER_ADDR        $server_addr;

fastcgi_param  SERVER_PORT        $server_port;

fastcgi_param  SERVER_NAME        $server_name;


# PHP only, required if PHP was built with --enable-force-cgi-redirect

fastcgi_param  REDIRECT_STATUS    200;

fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/:/tmp/:/proc/:/sys/";



fastcgi.tp.conf

fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;

fastcgi_param  QUERY_STRING       $query_string;

fastcgi_param  REQUEST_METHOD     $request_method;

fastcgi_param  CONTENT_TYPE       $content_type;

fastcgi_param  CONTENT_LENGTH     $content_length;


fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;

fastcgi_param  REQUEST_URI        $request_uri;

fastcgi_param  DOCUMENT_URI       $document_uri;

fastcgi_param  DOCUMENT_ROOT      $document_root;

fastcgi_param  SERVER_PROTOCOL    $server_protocol;

fastcgi_param  REQUEST_SCHEME     $scheme;

fastcgi_param  HTTPS              $https if_not_empty;


fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;

fastcgi_param  SERVER_SOFTWARE    nginx/$nginx_version;


fastcgi_param  REMOTE_ADDR        $remote_addr;

fastcgi_param  REMOTE_PORT        $remote_port;

fastcgi_param  SERVER_ADDR        $server_addr;

fastcgi_param  SERVER_PORT        $server_port;

fastcgi_param  SERVER_NAME        $server_name;


# PHP only, required if PHP was built with --enable-force-cgi-redirect

fastcgi_param  REDIRECT_STATUS    200;

fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/../:/tmp/:/proc/:/sys/";


fastcgi_params


fastcgi_param  QUERY_STRING       $query_string;

fastcgi_param  REQUEST_METHOD     $request_method;

fastcgi_param  CONTENT_TYPE       $content_type;

fastcgi_param  CONTENT_LENGTH     $content_length;


fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;

fastcgi_param  REQUEST_URI        $request_uri;

fastcgi_param  DOCUMENT_URI       $document_uri;

fastcgi_param  DOCUMENT_ROOT      $document_root;

fastcgi_param  SERVER_PROTOCOL    $server_protocol;

fastcgi_param  REQUEST_SCHEME     $scheme;

fastcgi_param  HTTPS              $https if_not_empty;


fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;

fastcgi_param  SERVER_SOFTWARE    nginx/$nginx_version;


fastcgi_param  REMOTE_ADDR        $remote_addr;

fastcgi_param  REMOTE_PORT        $remote_port;

fastcgi_param  SERVER_ADDR        $server_addr;

fastcgi_param  SERVER_PORT        $server_port;

fastcgi_param  SERVER_NAME        $server_name;


# PHP only, required if PHP was built with --enable-force-cgi-redirect

fastcgi_param  REDIRECT_STATUS    200;




阅读全文 »

idea小技巧 最好用的IntelliJ IDEA_PhpStorm_WebStorm翻译插件

发表日期:2019-01-07 18:04:24 | 来源: | 分类:idea小技巧

推荐一款最好用的 IntelliJ IDEA、PhpStorm、WebStorm的翻译插件,支持切换百度翻译、有道翻译、谷歌翻译。只需两步安装搞定。

第一步:打开 IntelliJ IDEA、PhpStorm、WebStorm的菜单File》Settings》Plugins 

第二步:在Plugins 页面搜索框搜索:Translation ,找到对应名称的插件点击install 安装,安装完重启idea即可。

翻译快捷键:Ctrl+Shift+o 


第二种安装方式是去官网下载插件,手动安装,官网下载页面:

https://plugins.jetbrains.com/plugin/8579-translation

阅读全文 »

PHP杂项 PHP测试mysql数据库MYSQLI和PDO的性能比较

发表日期:2019-01-07 17:35:07 | 来源: | 分类:PHP杂项

测试服务器 远程腾讯云服务器 memory.canquick.com


server-id=8

master-host=test.canquick.com

master-port=3306

master-user=root

master-password=我的MySQL密码

replicate-do-db=canquick

master-retry-count = 999

master-connect-retry = 60



binlog_checksum = none

/var/log/mysql-demo.log


change master to master_host='123.206.17.224',master_user='root',master_password='我的MySQL密码',master_log_file='mysql-bin.000001',master_log_pos=120;



SLAVE STOP; 

CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000003', MASTER_LOG_POS=0; 

SLAVE START; 



123.206.17.224

--------------MYSQLI--------------

开始执行: 1486218931.2297

结束执行: 1486218949.4013

共耗时: 18.1715259552

总计执行(10000)次,成功(10000)次,失败(0)次。


--------------PDO--------------

开始执行: 1486218949.4024

结束执行: 1486218968.5342

共耗时: 19.1318359375

总计执行(10000)次,成功(10000)次,失败(0)次。


MYSQLI比PDO快0.9603099822998


===================================================

127.0.0.1

--------------MYSQLI--------------

开始执行: 1486219064.0036

结束执行: 1486219064.8307

共耗时: 0.82706999778748

总计执行(10000)次,成功(10000)次,失败(0)次。


--------------PDO--------------

开始执行: 1486219064.831

结束执行: 1486219065.7146

共耗时: 0.88354015350342

总计执行(10000)次,成功(10000)次,失败(0)次。


MYSQLI比PDO快0.056470155715942

====================================================

127.0.0.1

--------------MYSQLI--------------

开始执行: 1486219122.693

结束执行: 1486219123.5779

共耗时: 0.88489890098572

总计执行(10000)次,成功(10000)次,失败(0)次。


--------------PDO--------------

开始执行: 1486219123.5783

结束执行: 1486219124.3998

共耗时: 0.82153511047363

总计执行(10000)次,成功(10000)次,失败(0)次。


PDO比MYSQLI快0.063363790512085

====================================================

127.0.0.1

--------------MYSQLI--------------

开始执行: 1486219164.3198

结束执行: 1486219165.3083

共耗时: 0.98849296569824

总计执行(10000)次,成功(10000)次,失败(0)次。


--------------PDO--------------

开始执行: 1486219165.3086

结束执行: 1486219166.3177

共耗时: 1.0090320110321

总计执行(10000)次,成功(10000)次,失败(0)次。


MYSQLI比PDO快0.020539045333862

====================================================




结论:

1.本地程序连接远程数据库速度奇慢无比,主要是网络问题

2.远程服务器使用本机IP连接本地数据库较慢20多倍,所以还是使用127.0.0.1比较快

3.在连接远程数据库的情况下,mysqli的性能稍强与pdo,mysqli胜在数据库网络连接速度上,但差距细微



        /**

         * cracker

         * 截至(16354)耗时: 64.691699981689

         * 截至(16356)耗时: 89.576122999191

         * 截至(16353)耗时: 87.792021989822

         * 截至(16460)耗时: 115.30559492111

         * 截至(16354)耗时: 64.484688043594

         * 截至(16368)耗时: 71.312078952789

         *  unable to connect to tcp://127.0.0.1:2900

         *

         * 16352

         * 16343

         * 16358

         */


        /**

         * 空循环万次

         * 0.00099992752075195

         * 0

         * 0.0010008811950684

         * 0

         * 0.0010001659393311

         */

        /**

         * innoDB 万次

         * 69.475973844528

         * 79.686558008194

         * 79.392540931702

         * 70.874053955078

         * crash  76.892397880554

         * --------------

         * 41.769388914108

         * 41.196356058121

         * 38.514203071594

         */


        /**

         * Memory 5千次

         * 18.137037992477

         * 15.026859045029

         * 20.079149007797

         * 16.641952037811

         * 16.507943868637

         */


        /**

         * MyISAM 万次

         * 89.420114994049

         * 77.112410783768

         * 69.751988887787

         * 31.551805019379

         * 29.732701063156

         * --------------

         * 16.20192694664

         * 18.710070133209

         * 18.69206905365

         * 18.037031888962

         * 15.381880044937

         * 18.059032917023

         * 17.152981042862

         *

         * 21.865249872208

         * 20.53817486763

         * 18.204041004181

         *

         * 16.967969894409

         * 14.896852970123

         * 14.141809225082

         * 16.519944906235

         * 16.704956054688

         * 17.296989202499

         */


        /**

         *  MRG_MyISAM

         *  Table 'can_user_chat' is read only'

         */


        /**

         * BLOCKHOLE 不储存[黑洞]

         * 19.395109891891

         * 33.976943016052

         * 40.913339853287

         * 17.224985122681

         * 15.877907991409

         * 15.663895845413

         * 17.465998888016

         */


        /**

         * ARCHIVE 不支持索引

         * 18.975085020065

         * 12.190696954727

         * 18.066033840179

         */


        /**

         * CSV 不支持索引

         * 17.962027072906

         * 20.955197811127

         * 20.027145862579

         */


阅读全文 »

Android杂项 安卓生命周期

发表日期:2019-01-05 23:15:20 | 来源: | 分类:Android杂项

-----第一次进入

/              onCreate创建

/              onStart 开始

/              onResume继续

-----返回按钮

/              onPause暂停

/              onStop停止

/              onDestroy 销毁

-----再次进入

/              onCreate创建

/              onStart 开始

/              onResume继续

-----息屏

/              onPause暂停

/              onStop停止

/protected onSaveInstanceState

------亮屏

/              onRestart重新开始

/              onStart 开始

/              onResume继续

-----回到桌面

/              onPause暂停

/              onStop停止

/protected onSaveInstanceState

----进入

/              onRestart重新开始

/              onStart 开始

/              onResume继续

-----反回-》退出

/              onPause暂停

/              onStop停止

/              onDestroy 销毁

-----》》退出

-----》》打开

-----》》进入

/              onCreate

/              onStart

/              onResume

--------------------------------------------------

================第一次进入================

onCreate

onStart

onResume

-------finish

onPause

onStop

onDestroy

=====> 再次进入

onCreate

onStart

onResume

-------start activity

onPause

onStop

protected onSaveInstanceState

=======《返回按钮进入

onRestart

onStart

onResume

---------start activity ---finish

onPause

onStop

onDestroy

=========》再次进入

onCreate

onStart

onResume

---------finish--start activity

onPause

onStop

onDestroy


---------------------------------------------------

只要是startActivity()

/              onCreate创建

/              onStart 开始

/              onResume继续

只要是点返回按钮/finish

/              onPause暂停

/              onStop停止

/              onDestroy 销毁

只要是息屏/回到桌面/start activity

/              onPause暂停

/              onStop停止

/protected onSaveInstanceState

只要是亮屏/桌面返回/start activity后返回按钮  

/              onRestart重新开始

/              onStart 开始

/              onResume继续

===============================

只要是息屏/回到桌面/start activity 都不会执行onDestroy

只要不是start activity进入的都不会执行onCreate

只要没有执行onDestroy方法,再次回到该界面的时候UI不会受影响,数据不会丢失

而一旦执行onDestroy后,会清理非static的内存/变量,数据丢了,所以UI受影响

所以我们可以把主要数据存为static




阅读全文 »

PHP杂项 PHP高级扩展介绍,高手必学

发表日期:2019-01-05 23:09:33 | 来源: | 分类:PHP杂项


开源项目


yaf:在PHP扩展PHP框架


yar:Yar 是一个轻量级, 高效的RPC框架, 它提供了一种简单方法来让PHP项目之间可以互相远程调用对方的本地方法. 并且Yar也提供了并行调用的能力. 可以支持同时调用多个远程服务的方法.


yac:YAC是共享存储用户数据缓存PHP。它可以用来取代APC或本地缓存。YAC是无锁的,这意味着,这是非常快的,但有可能是一个机会,你会得到一个错误的数据(取决于很多关键的时隙分配多少密钥存储),所以你最好确保你的产品是不是很敏感。


yaconf:PHP持久配置容器,它解析INI文件,在PHP启动时预加载(储存/读取)结果


Taint:一个扩展用于检测XSS代码嗅探器(污染的字符串),也可用于防范的SQL注入漏洞,壳注入,等。


Lua:Lua是一个功能强大,速度快,轻量级,可嵌入的脚本语言。" 这个扩展嵌入Lua解释器,并对lua变量和函数提供面向对象的API。 


msgpack:是一个高效的二进制序列化格式。它让你像JSON一样可以在各种语言之间交换数据。但是它比JSON更快、更小。小的整数会被编码成一个字节,短的字符串仅仅只需要比它的长度多一字节的大小。


Couchbase:PHP的客户端库提供快速访问存储在Couchbase服务器中的文档。(Couchbase是一种NoSql数据库



APC:Alternative PHP Cache 官方翻译叫”可选PHP缓存”。它为我们提供了缓存和优化PHP的中间代码的框架。 APC的缓存分两部分:系统缓存和用户数据缓存。

APC一个开源的PHP opcode 缓存框架,高速缓冲储存器工具,它能够缓存opcode的php中间码。它的目标是提供一个自由、 开放,和健全的框架用于缓存和优化PHP的中间代码。 

opcode还有另一种称谓:字节码(byte codes)。


OPcache (Zend OPCache):通过将PHP脚本预编译的字节码存储到共享内存中来提升PHP的性能,存储预编译字节码的好处就是省去了每次加载和解析PHP 脚本的开销。

Zend OPCache的前身是Zend Optimizer + (Zend O+),在PHP5.5的发行版本中自带了Zend O+,并重新命名为:Zend OPCache。但是默认是没有启用的,可以在ini文件中enable一下。据统计,zend opcache比apc性能要好,可以提升提升 5%-9%。


Zend Optimizer:Zend代码优化器


memcache:Memcache模块提供了于memcached方便的面向过程及面向对象的接口,memcached是为了降低动态web应用 从数据库加载数据而产生的一种常驻进程缓存产品。 是一套分布式的高速缓存系统,由LiveJournal的Brad

Fitzpatrick开发,但目前被许多网站使用以提升网站的访问速度,尤其对于一些大型的、需要频繁访问数据库的网站访问速度提升效果十分显著。

MemCache的工作流程如下:先检查客户端的请求数据是否在memcached中,如有,直接把请求数据返回,不再对数据库进行任何操作;如果请求的数据不在memcached中,就去查数据库,把从数据库中获取的数据返回给客户端,同时把数据缓存一份到memcached中(memcached客户端不负责,需要程序明确实现);每次更新数据库的同时更新memcached中的数据,保证一致性;当分配给memcached内存空间用完之后,会使用LRU(Least Recently Used,最近最少使用)策略加上到期失效策略,失效数据首先被替换,然后再替换掉最近未使用的数据。



memcached:memcached是一个高性能分布式的内存对象缓存系统,通常被用于降低数据库加载压力以提高动态web应用的响应速度。 此扩展使用了libmemcached库提供的api与memcached服务端进行交互。它同样提供了一个session处理器(memcached)。

是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的hashmap。其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信。

Memcached是以守护程序(监听)方式运行于一个或多个服务器中,随时会接收客户端的连接和操作。


new memcache是pecl扩展库版本

new memcached是libmemcached版本

1、基于的库不同(我觉得这是本质区别,库的不同决定了后续差异)。memcache扩展是原生的(基于pecl扩展库)。memcached扩展是基于libmemcached库开发的,所以支持cas操作,cas操作就是多个线程并发修改同一个key的值的时候能够进行处理。

2、mc支持面向对象和面向过程两套接口操作服务端。而mcd扩展只支持面向对象方式操作。这也是库(libmemcached与libmemcache)的不同影响的。

3、 memcached支持Binary Protocol,而memcache不支持。还是库的不同导致。这意味着memcached会有更高的性能。


Memcached、memcached、memcache。

    其中首字母大写的Memcached,指的是Memcached服务器,就是独立运行Memcached的后台服务器,用于存储数据的“数据库”。

    而memcached和memcache指的是Memcached的客户端,就是通过memcached或memcache来访问Memcached服务器。

在PHP的插件中有一个memcache,还有一个memcached,两者在用法上不同。


Redis:Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。

redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。

Redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部 分场合可以对关系数据库起到很好的补充作用。它提供了Java,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang等客户端,使用很方便


Xcache:XCache 是一个开源的 opcode 缓存器/优化器, 这意味着他能够提高您服务器上的 PHP 性能. 他通过把编译 PHP 后的数据缓冲到共享内存从而避免重复的编译过程, 能够直接使用缓冲区已编译的代码从而提高速度. 通常能够提高您的页面生成速率 2 到5 倍, 降低服务器负载.


eAccelerator(ea):eAccelerator是一个自由开放源码php加速器,优化和动态内容缓存,提高了php脚本的缓存性能,使得PHP脚本在编译的状态下,对服务器的开销几乎完全消除。 它还有对脚本起优化作用,以加快其执行效率。使您的PHP程序代码执效率能提高1-10倍。


Shmop:是一个易于使用的功能集,允许PHP读写创建和删除UNIX共享内存段。实现共享高速内存数据池。 类似asp/jsp的application。


php-fpm(FastCGI Process Manager:FastCGI进程管理器):是一个PHPFastCGI管理器,是只用于PHP的。性能貌似高过Fastcgi


SOA:面向服务的体系结构


SOAP:简单对象访问协议是交换数据的一种协议规范,是一种轻量的、简单的、基于XML(标准通用标记语言下的一个子集)的协议,它被设计成在WEB上交换结构化的和固化的信息。SOAP、WSDL(WebServicesDescriptionLanguage)、UDDI(UniversalDescriptionDiscovery andIntegration)之一, soap用来描述传递信息的格式, WSDL 用来描述如何访问具体的接口, uddi用来管理,分发,查询webService 。具体实现可以搜索 Web Services简单实例 ; SOAP 可以和现存的许多因特网协议和格式结合使用,包括超文本传输协议(HTTP),简单邮件传输协议(SMTP),多用途网际邮件扩充协议(MIME)。它还支持从消息系统到远程过程调用(RPC)等大量的应用程序。SOAP使用基于XML的数据结构和超文本传输协议(HTTP)的组合定义了一个标准的方法来使用Internet上各种不同操作环境中的分布式对象。


RPC:RPC(Remote Procedure Call Protocol)——远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使得开发包括网络分布式多程序在内的应用程序更加容易。


cURL:(Client URL Library)curl是利用URL语法在命令行方式下工作的开源文件传输工具。PHP支持的由Daniel Stenberg创建的libcurl库允许你与各种的服务器使用各种类型的协议进行连接和通讯。libcurl目前支持http、https、ftp、gopher、telnet、dict、file和ldap协议。libcurl同时也支持HTTPS认证、HTTP POST、HTTP PUT、 FTP 上传(这个也能通过PHP的FTP扩展完成)、HTTP 基于表单的上传、代理、cookies和用户名+密码的认证。

主要用途是可以利用curl从不同服务器上获取资源。如用curl访问远程webservice数据接口资源,做网站的分布式。

例如:你访问一个web服务器 A,这个web服务器A可以从服务器B上读取数据,从服务器C中获取密集计算后的数据,从服务器D中获取网页图片。可以做网站的分布式。


SPL :Standard PHP Library 标准PHP类库


OAuth : (Open authorization)开放式授权协议,此扩展提供 OAuth 消费方和提供方之间的绑定。OAuth 是一种建立在 HTTP 之上的授权协议,用于允许应用程序安全访问数据而无需存储用户名和密码。 {第三方授权登录,帐号绑定功能,如用微信登录、QQ登录,深入点在于实现用我们的程序做第三方授权登录提供商}


阅读全文 »

PHP杂项 数组转XML

发表日期:2019-01-05 23:08:27 | 来源: | 分类:PHP杂项

<?php


/**

 * 数组转XML

 */

class ArrayToXML

{


private $xmlString;


private function header()

{

$this->xmlString .= '<?xml version="1.0" encoding="utf-8" ?>';

$this->xmlString .= '<root>';

}


private function footer()

{

$this->xmlString .= '</root>';

}

public function encode($array)

{


header('Content-type:text/xml;');


$this->header();


$this->paser($array);


$this->footer();


return $this->xmlString ;

}


private function paser($array)

{

foreach ($array as $key => $value)

{

$tag = is_numeric($key) ? 'item' : $key;

$this->xmlString .= "<$tag";



if (is_array($value))

{

if (isset($value['id'])) $this->xmlString .= " id=\"{$value['id']}\"";

$this->xmlString .= ">";


$this->paser($value);

}

else

{

$this->xmlString .= ">";


$this->xmlString .= $value;

}


$this->xmlString .= "</$tag>";

}

}

}


$array = array(

'code' => 200,

'message' => 'succeess',

'data' => array(

array(

'id' => 1,

'title' => 'demo2',

),

array(

'id' => 2,

'title' => 'demo3',

)

)

);



$xml = new ArrayToXML;


echo $xml->encode($array);

?>

阅读全文 »

PHP杂项 Memcache和Redis的区别

发表日期:2019-01-05 23:05:25 | 来源: | 分类:PHP杂项

1.Memcache和Redis都是用来管理数据的

2.他们的数据都是存放在内存里

3.Redis可以定期将数据备份到磁盘(永久化)

4.Memcache只是简单的key/value缓存

5.Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,hash等数据结构的存储



Redis常用操作:

1.开启Redis服务 redis-server.exe redis.windows.conf

开启Redis客户端新cmd窗口redis-cli.exe

2.设置键值对 set key value

3.查看键值 get key

4.设置key的过期时间,单位为秒 setex key time value

5.删除键值del key


阅读全文 »

PHP杂项 PHP7.0新特性

发表日期:2019-01-05 23:03:31 | 来源: | 分类:PHP杂项

PHP7.0新特性

php7的主题是线程优化

php之前版本,开发效率快,语言本身性能差

普通的PHP网站:IO密集型,瓶颈在mysql上,体现不出PHP的性能劣势,在密集计算的方面比C、C++、java差几十倍升至上百倍


PHP各版本 qps分数

PHP5.0 0

PHP5.1 0

PHP5.2 -------75

PHP5.3 ---------82

PHP5.4 -----------107

PHP5.5 ------------110

PHP5.6 -------------112

PHP7.0 ---------------------------------------------312


QQ农场曾经用PHP编写,后来因为线程问题,用C重构,性能提示70%

FaceBook曾经用PHP开发,后来因为性能原因,对PHP二次开发,重写了PHP核心引擎(HHVM,性能提升100%


PHP7.0 重写ZendVM 比 PHP 5.6 性能提升300%

据WordPress最新测试PHP7.0性能超越HHVM,可以说PHP的性能得到了很大的性能提升



新特性:

函数、方法支持类型声明

try{}catch(Excption e){} 异常捕获


性能优化:

zval 可以直接使用栈内存

PHP5: zval *val;MAKE_STD_ZVAL(val);

PHP7: zval val;

zend_string存储hash值,array查询不再需要重复计算hash

struct _zend_string{

zend_refcounted gc;

zend_ulong h;

size_t len;

char val[1];

}

hashtable桶内直接存储数据,减少了内存申请次数,提升了casche命中率和内容速度


阅读全文 »

idea小技巧 IntelliJ idea 、PhpStorm 、webStorm常用快捷键命令

发表日期:2019-01-05 23:02:38 | 来源: | 分类:idea小技巧

要快速打开编辑器中的任何类,请按Ctrl+N(Navigate|Class)并开始键入类的名称。然后,从建议列表中选择类

代码完成使您可以快速完成代码中的各种语句。例如,开始键入类名并按Ctrl + 空格完成它。当多个选项可用时,它们在查找列表中显示。

通过将插入符号定位在符号名称或在代码中使用,并按Alt+F7(Edit|Find|Find Usages),可以快速找到在整个项目中使用特定类、方法或变量的所有位置

若要快速查看编辑器插入符号中使用的类或方法的文档,请按CTRL+Q

若要导航到代码中某处使用的类、方法或变量的声明,请将插入符号定位到使用位置并按Ctrl+B(Navigate|.)。您还可以单击使用Ctrl(Windows或Linux)/Cmd(MacOS)键以跳转到声明。

您可以在CCTL+F12(导航文件结构)中快速浏览当前编辑的文件。

文件结构显示当前类的成员列表。选择要导航的元素,然后按Enter键或F4键。

要在列表中轻松定位一个项目,只需开始键入其名称即可。

您可以轻松地重命名类、方法和变量,并自动更正使用它们的所有位置。

将插入符号放在要重命名的符号上,按Shift +F6(重构因子重命名)。键入新名称并按Enter。

阅读全文 »

文档编辑 vi / vim 最好用的编辑器详解

发表日期:2019-01-05 22:58:54 | 来源: | 分类:文档编辑

i insert 切换到输入模式

o 在光标所在行的下一行插入一行,并切换到输入模式

p 在光标所在行的下一行粘贴

dd 删除光标所在行

yy 复制光标所在行

:wq 保存退出

vim + file  打开文件并将光标定位到最后一行

vim +3 file  打开文件并将光标定位到第三行

vim +/keywords file  打开文件光标定位到查询到的第一个keywords的行,按n可以切换下一个keywords所在行

vim file1 file2 file3 ,按:n 可以切换到下一个打开的文件; :N 切换到上一个文件 或:prev;

:! 强制执行;

:w 保存;

:q 退出;

:q! 不保存退出;

:wq 保存退出;

:ls 列出打开的所以文件;

:15 光标快速定位到15行;

/keywords 从光标当前位置向后搜索关键字

/keywords 从光标当前位置向前搜索关键字

命令模式下:光标 k上移 j下移 h左移 l右移

ctrl + f 向下翻页

ctrl + b 向上翻页

ctrl + d 向下翻半页

ctrl + u 向上翻半页

阅读全文 »

Linux实战应用 linux 目录权限详解

发表日期:2019-01-05 22:58:29 | 来源: | 分类:Linux实战应用


/**

 * @crd

 * c:create 创建

 * r:rename 重命名/移动

 * d:delete 删除;

 */



目录只有执行权限 <--x 1>

可以cd到其目录内

不可以列出目录内容

不可以crd目录内容

@note 无意义


目录只有写权限 <-w- 2>

权限不够,你什么也干不了

@note 无意义


目录只有读权限 <r-- 4>

可以列出目录内容

不能访问目录内文件的属性,会提示权限不够

不能cd进入该目录

不可以crd目录内容

@note 无意义

----------------------------


目录有写权限2和执行权限1 <-wx 3>

可以cd进入该目录

可以crd目录内容

不可以列出目录内容

@note 无意义


目录有读权限4和执行权限1<r-x 5>

可以cd进入该目录

可以列出目录内容

不可以crd目录内容

@note 可访问/列目录,但不许增加/删除/改名/移动目录内的文件,起到保护目录结构



目录有读权限4和写权限2<rw- 6>  # 同<r-- 4> 结果一样

可以列出目录内容

不能访问目录内文件的属性,会提示权限不够

不可以cd进入该目录

不可以crd目录内容

@note 无意义


目录有读权限4和写权限2和执行权限1<rwx 7>

拥有最高权限

@note 注意所有者,是否存在安全风险


阅读全文 »

Linux实战应用 解决ssh无法连接远程Ubuntu,Uuntu安装ssh-server

发表日期:2019-01-05 22:56:54 | 来源: | 分类:Linux实战应用

ssh无法连接Ubuntu原因:

Ubuntu安装完成默认情况下,只安装了ssh-client,也就是说你可以在该Ubuntu下用ssh连接其它服务器,但是没有安装ssh-server,因此你无法连接到此Ubuntu上,解决办法就是安装ssh-server。

一、安装ssh

命令:

sudo apt-get install openssh-server -y

二、查看ssh服务是否启动

命令:

sudo ps -e |grep ssh

#如果显示有sshd 这一项说明,说明ssh已经启动成功,到此结束。那么你可以远程连接ssh了。

#如果没有sshd、只有ssh-agent,说明ssh启动失败,需要配置,继续完成后续步骤。

三、启动ssh服务

sudo service ssh start  或 /etc/init.d/ssh restart

命令执行完成后,重复一次第二步,看看ssh是否启动成功。如果依旧没有启动成功,那么继续完成后续步骤。

四、修改ssh配置文件

命令:

vi /etc/ssh/ssh_config

#编辑配置文件,大约在39,40行,将这两句代码前的#取消掉保存退出。

Port 22

    Protocol 2,1

五、重启Ubuntu

到这一步本人试过多次,启动、重启ssh服务依然失败,但重启一下Ubuntu就好了,。不知道这是什么鬼,但是屡试不爽,不妨试一下。

(4)ssh还不能登录上,就修改sshd的默认配置

ssh出现permission denied (publickey)问题:

修改/etc/ssh/sshd-config文件.

PubkeyAuthentication yes修改为no

阅读全文 »

全部博文(1580)
集速网 copyRight © 2015-2022 宁ICP备15000399号-1 宁公网安备 64010402001209号
与其临渊羡鱼,不如退而结网
欢迎转载、分享、引用、推荐、收藏。