Malvin's Blog

无志者千难万难,有志者千方百计

0%

MySQL包含对触发器的支持。触发器是一种与表操作有关的数据库对象,当触发器所在表上出现指定事件时,将调用该对象,即表的操作事件触发表上的触发器的执行。

阅读全文 »

Redis 2.4版本之后就内置队列的功能了,如果是日常比较简单的队列应用,可以选择Redis , 效率还很高的!!   Redis 还能实现 有序无序 两种队列(只讨论生产者和消费者这种模式的队列):

阅读全文 »

Redis 的有序集合貌似很厉害,与SQL 中的order其实有点相似;

一、应用场景:排行榜

二、常用的函数命令:

1、ZADD :添加一个或多个成员到有序集合,或者如果它已经存在更新其分数
2、ZRANGE:由索引返回一个成员范围的有序集合
3、ZREM:从有序集合中删除一个或多个成员  

阅读全文 »

在我们编写自己的第一个php扩展之前,先了解一下php的整体架构和运行机制。 0 php的架构如图1所示。其中一个重要的就是SAPI(服务器端应用编程端口),它使得PHP可以和其他应用进行数据交互,把外部错综复杂的外部环境进行抽象化,为内部的php提供一套固定和统一的接口,使得php自身不受外部影响,保持一定的独立性。常见的SAPI有CGI,FastCGI,Shell的CLI,apache的mod_php5,IIS的ISAPI。 另外一个非常重要就是ZendEngine。Zend Engine是官方提供的PHP实现的核心,提供了语言实现上的基础设施,其他比较知名的还有facebook的hiphop实现。例如PHP的语法实现,脚本的编译运行环境,扩展机制以及内存管理等。我们在后面编写php扩展时,也将基于Zend Engine。 PHP3时代还是采用边解释边执行的运行方式,这种方式运行效率很受影响,其次代码整体耦合度比较高,可扩展性也不够好。因此随着php在web应用开发中的普及,于是ZeevSuraski和Andi Gutmans决定重写代码以解决这两个问题,最终他们俩把该项技术的核心引擎命名为Zend Engine 。 Zend Engine最主要的特性就是把PHP的边解释边执行的运行方式改为先预编译(Compile),再执行(Execute)。这两者的分开给 PHP 带来了革命性的变化:执行效率大幅提高。由于实行了功能分离,降低了模块间耦合度,可扩展性也大大增强。 目前PHP的实现和Zend Engine之间的关系非常紧密,例如很多PHP扩展都是使用的Zend API,而Zend正是PHP语言本身的实现,PHP只是使用Zend这个内核来构建PHP语言的,而PHP扩展大都使用Zend API,这就导致PHP的很多扩展和Zend引擎耦合在一起了,后来才有PHP核心开发者就提出将这种耦合解开的建议。不过下面我们还下面在Zend Engine的基础上开始编写我们第一个简单的php扩展。  

阅读全文 »

在实际的开发当中,当系统需要使用简单的任务列表的时候,我们可以使用Redis来充当队列(因为Redis本来就自带队列,简单易用,效率也不低,免去使用MQ等麻烦)。 使用Redis的队列,我们要记住2个常用的命令 : LPUSH  & LPOP 上面两个命令是不是很熟悉:PUSH 和 POP ,不错,其实就是这个英文,只是在前面加上L大写开头。   上例子(PHP):

阅读全文 »

想删除 ubuntu 服务器下的所有 php5.4 的软件,例如:php5.4-cli, php5.4-fpm 等, 但是一个一个来删除,有点难度啊,所以,查了一下,可以使用一下方法: 1、直接 apt-get purge

sudo apt-get purge php5.4*

2、apt-get purge + 筛选函数

sudo apt-get purge `dpkg -l | grep php5.4 | awk ‘{print $2}’ |tr “\n” “ “`

安装软件的时候可能出现缺少头文件而导致的安装失败,笔者就尝试过,在安装 pip install Scrapy 的时候,就出现过:

Command “/usr/bin/python -c “import setuptools, tokenize;__file__=’/private/tmp/pip-build-UX3Es9/lxml/setup.py’;exec(compile(getattr(tokenize, ‘open’, open)(__file__).read().replace(‘\r\n’, ‘\n’), __file__, ‘exec’))” install –record /tmp/pip-VDXsGm-record/install-record.txt –single-version-externally-managed –compile” failed with error code 1 in /private/tmp/pip-build-UX3Es9/lxml

由此导致 安装 lxml 失败,所以安装 scrapy 失败,各种悲伤。 其实这是由于mac os 中缺少 c变异所需的include 头文件导致的,查看: cd /usr/目录下是否缺少 include 文件夹,如果没有,我们可以通过以下命令安装:

xcode-select –install

执行这条命令后,会出现GUI界面安装程序哦,一直 下一步 下一步 就好,记得,必须在有网络的情况下能安装哦。

server {
listen 80;
server_name abc.com;
rewrite / $scheme://www.$host$request_uri permanent; ## Forcibly prepend a www
}

server {
listen 80;
server_name www.abc.com;
set $DOC_ROOT d:/abc.com/shop;
root $DOC_ROOT;
location / {
index index.html index.php; ## Allow a static html file to be shown first
try_files $uri $uri/ @handler; ## If missing pass the URI to Magento’s front handler
expires 30d; ## Assume all files are cachable
}

## These locations would be hidden by .htaccess normally
location ^~ /app/                { deny all; }
location ^~ /includes/           { deny all; }
location ^~ /lib/                { deny all; }
location ^~ /media/downloadable/ { deny all; }
location ^~ /pkginfo/            { deny all; }
location ^~ /report/config.xml   { deny all; }
location ^~ /var/                { deny all; }

location /var/export/ { ## Allow admins only to view export folder
    auth_basic           "Restricted"; ## Message shown in login window
    auth\_basic\_user_file htpasswd; ## See /etc/nginx/htpassword
    autoindex            on;
}

location  /. { ## Disable .htaccess and other hidden files
    return 404;
}

location @handler { ## Magento uses a common front handler
    rewrite / /index.php;
}

location ~ .php/ { ## Forward paths like /js/index.php/x.js to relevant handler
    rewrite ^(.*.php)/ $1 last;
}

 location ~ .php$ { ## Execute PHP scripts
    if (!-e $request\_filename) { rewrite / /index.php last; } ## Catch 404s that try\_files miss

    expires        off; ## Do not cache dynamic content
    fastcgi_pass   127.0.0.1:9000;
    fastcgi\_param  SCRIPT\_FILENAME  $document\_root$fastcgi\_script_name;
    fastcgi\_param  MAGE\_RUN_CODE default; ## Store code is defined in administration > Configuration > Manage Stores
    fastcgi\_param  MAGE\_RUN_TYPE store;
    include        fastcgi\_params; ## See /etc/nginx/fastcgi\_params
}

location ~* ^.+\\.(jpg|jpeg|gif|css|png|js|ico)$ {
    root  $DOC_ROOT;
    index  index.php;
    access_log off;
    expires 30d;

}

如果大家是使用一键环境(如:lnmp.org),有时候防火墙会被设置成正式环境一样,当你是用作测试服务器的时候,这样就很不方便了。 因此,在这里记录一下linux下防火墙的配置: 地址是:/etc/sysconfig/iptables

阅读全文 »