上次完成了基本的配置,咱们的代码也能够正常运行了,在测试的时候,也发现了一些问题(是个人网站的一些问题),好比上传文件的路径写的是在Windows开发时的虚拟站点的域名,上线后致使上传出现问题,由于线上的域名与写代码时候的域名不同,致使出来的问题,因此在日常的开发时,必定要确认好这些小问题,否则上线后就会有各类问题,还好是我本身的项目,否则铁定少不了一顿骂。php
相似上面的状况,最好的解决办法就是,这些可能会改变的东西,分离出来是最好的,就laravel来讲,配置文件是最好的选择。.config或者.env,固然这二者仍是有些区别的,具体请看html
http://www.javashuo.com/article/p-yxnwyjcn-nt.htmllinux
下载源码包nginx
http://www.memcached.org/laravel
下载源码redis
下载好后解压 vim
tar xvzf memcached-1.6.7.tar.gzwindows
查看,configurecentos
有了它咱们就能够编译了,使用缓存
./configure --prefix=你指定的目录
报错了。。。。。
须要libevent依赖,那咱们就装上它,有些人可能会有疑问,咋不早点装它,这样就看不到错误了,其实吧,,我早知道须要这个依赖,这是教学篇,因此报错是好的,再说咱们怎么知道有没有装过那个依赖,,他缺乏啥,我们就装啥,搞起。
使用 yum install -y libevent libevent-devel.x86_64
装完以后,再次执行 ./configure --prefix=你指定的目录
而后就OK了,就编译好了
接下来,安装它 使用make && make install
等待一会就装好了,进入目录看看
接下来是启动,这里有些参数,根据须要指定
/usr/local/memcached/bin/memcached -d -u root -m 16m -p 11211
-m 启动16兆内存 一个原则,指定的内存大小比物理内存在小
-p 默认端口11211
-d 启动守护进程
-u 指定用户
-c 指定链接数(并发数)
-l是监听的服务器IP地址 127.0.0.1 0.0.0.0 谁均可以访问
注:memcached默认的端口号为:11211
### 关闭memcached
pkill memcached
启动成功
接下来,安装Telnet,Telnet是用来链接memcached的,也能够操做。
安装成功,q表示退出Telnet。
语法
telnet ip port 回车
链接成功 按下 crtl+]
在linux中执行telnet命令链接memcached服务
彻底正常,继续往下。
获取、添加、设置数据 # 获取存储在 key(键) 中的 value(数据值) ,若是 key 不存在,则返回空。 get key # 添加 add 只能添加不存在的key或过时了的key,存在的key添加则报错 add key flags exptime bytes\n value\n # 设置 set key存在则修改,不存在则添加 set key flags exptime bytes\n value\n
参数说明以下: key:结构中的 key,用于查找缓存值。 flags:客户机使用它存储关于键值对的额外信息(0|1|2) exptime:在缓存中保存键值对的时间长度(以秒为单位,0 表示永远)[时间长度(最长30天),时间戳(时间戳能够设置好久的时间超过30天的限制)] bytes:在缓存中存储的字节数 value:存储的值长度和bytes长度设置的同样的 输出信息说明: STORED:保存成功后输出。 ERROR:在保存失败后输出。 自增和自减 # incr 与 decr 命令用于对已存在的 key(键) 的数字值进行自增或自减操做 # incr 与 decr 命令操做的数据必须是十进制的32位无符号整数 # 自增 # 统计 set key 0 3600 1 value incr key increment_value(能够想写多少就写多少,且必须是正数) 自增和自减,通常用于统计 注:使用自增或自减第1步,要用set或add建立一个key值,后才可使用incr或decr 删除数据 # delete 命令用于删除已存在的 key(键) delete key # 清除全部 尽可能不要去使用 flush_all 输出信息说明: DELETED:删除成功。 ERROR:语法错误或删除失败。 NOT_FOUND:key 不存在。 查看状态 # 用于返回统计信息例如 PID(进程号)、版本号、链接数等 stats pid: memcache服务器进程ID uptime:服务器已运行秒数 curr_connections:当前链接数量 cmd_get:get命令请求次数 cmd_set:set命令请求次数 get_hits:get命令命中次数 get_misses:get命令未命中次数 命中率 get_hits/cmd_get 60% – 90%
这个我们还不涉及memcached的具体应用,因此先了解这些经常使用命令,至于实战运用,会在后面的教程中进行讲解。
但这就像单机游戏同样,本身玩没啥意思,因此php他来了 ,上次我么整合php+nginx,此次咱们整合php+memcached
PHP Memcache 扩展包下载地址:http://pecl.php.net/package-search.php?pkg_name=memcache,你能够下载最新稳定包(stable)。
一样,进入网站,复制连接,使用wget 下载,解压,这些操做是相同的因此,这里再也不赘述,如有不明白的,能够看以前的,刚开始讲解的详细点,熟悉了以后就不装了,摊牌了。我是京城一哥--张大炮是也。。。
开个玩笑,我们继续。。。。
此次先装依赖,上次是不装了,摊牌了,此次咱先装上依赖。(装最新的稳定版的就行,没必要和个人版本同样,你可能十年后看到这篇文章,你难道装十年前的扩展吗?因此的注意时差)
# 安装依赖 安装安装安装 yum install -y libmemcached.x86_64 libmemcached-devel.x86_64 # 安装memcached扩展 wget http://pecl.php.net/get/memcache-4.0.5.2.tgz
tar zxvf memcache-4.0.5.2.tgz cd memcache-4.0.5.2 phpize 命令 (在扩展文件所解压目录中去执行) ./configure --with-php-config=/usr/local/php/bin/php-config make && make install 配置php.ini 注意这里可能会报错 extension = memcached.so 注:windows中的扩展后缀名叫.dll linux中的扩展的后缀名为.so
咱们来看看那个报错
PHP Warning: PHP Startup: Unable to load dynamic library 'memcached.so' (tried: /usr/lib64/php/modules/memcached.so (/usr/lib64/php/modules/memcached.so: cannot open shared object file: No such file or directory), /usr/lib64/php/modules/memcached.so.so (/usr/lib64/php/modules/memcached.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
好家伙,挺长的报错,这是什么缘由形成的?百度看看,会有人跟你说,是centos的系统致使的,或者是PHP自己致使的。。。。。
其实都不是,这是由于咱们使用yum安装的,yum安装时给咱们作了不少的规范,因此,当咱们不听从这些规范的时候理所应当的就报错了。
做为良心博主,不进告诉你错误的缘由,还教你怎么解决(*^▽^*)
若是是源码安装的php,那么可使用修改php.ini文件来发现扩展,毕竟咱们Windows中开启扩展页是修改php.ini文件。
解决办法:
一、cd /etc/php.d 目录下 随意复制一份配置文件 好比 cp bz2.ini memcached.ini //这里的memcached.ini 是带 d 的 注意 后面有个不带d 的
二、复制完后 ,vim memcached.ini
进行如图修改
三、wq保存退出
使用 php -m |grep 扩展名 能够查找扩展是否安装 显而易见,咱们的memcached扩展已经安装好了
这里跟上面操做基本同样,我写伪代码解释一下。
一、赋值连接,wget下载,tar zxvf redis。。。gz 解压
二、进入解压后的目录,而后直接执行 make
三、执行完make后,执行 make PREFIX=/usr/local/redis install 这里记得 指定安装目录 还有 就是 PREFIX 得是大写的 小写不行
这样就安装好了
四、赋值 解压后的目录中的redis.conf 到 /usr/local/redis/bin
五、修改 redis.conf
这个修改是容许redis 在后台运行。
语法:命令 配置文件
redis-server(写路径) redis.conf(写路径)
注意:此处命令与配置文件,能够写相对路径或绝对路径。
好比使用绝对路径写法: /usr/local/redis/bin/redis-server /usr/local/redis/redis.conf
查看是否启动成功:启动成功后,默认的端口是6379
netstat –tunpl | grep 6379
语法: redis-cli -h 主机ip -p端口号
若是是链接到本地,则直接输入链接命令便可。
redis-cli是客户端链接服务器的命令
测试能用不
OK~
中止Redis实例
咱们可使用/usr/local/redis/bin/redis-cli shutdown
也可使用pkill redis-server
killall redis-server
pkill -9 redis
http://pecl.php.net/package/redis
下载,解压,进入解压目录,执行phpize 生成config
而后执行 ./configure --with-php-config=/usr/bin/php-config 指定一会生成的.so扩展放到哪一个目录,咱们指定了,就会放到那个目录
而后执行 make && make install
以后,进入/etc/php.d 而后随便复制一个.ini文件改成 redis.ini 而后
和 安装 memcached扩展的操做是同样的。
这样就OK了。
至此,今日份快乐已经完成了。后续会继续推出新的文章,好比 php操做 memcached redis swoole
学会了,php操做这些以后,咱们进行项目实战,敬请期待。