thinkphp5 扩展redis Linux搭建redis php搭建redis
第一步:Linux搭建redis
新人小白,在自己服务器上想搭个redis玩玩,百度到了一堆坑。搭建redis需linux服务器安装redis(百度的方法大部分都是win下)
下面附教程。亲测(以下文章自己测试后细节讲解)
1.下载地址:wget http://download.redis.io/releases/redis-4.0.8.tar.gz
[root@localhostredis]#wget http://download.redis.io/releases/redis-4.0.8.tar.gz (地址若失效请更换)
2.解压:[root@localhost redis]# tar xzf redis-4.0.8.tar.gz
3.重命名(凭个人习惯,可省略)
[root@localhost redis]# mv redis-4.0.8 redis4.
4.进入目录 cd redis
5.安装:使用make命令
[root@localhost redis]# sudo make && sudo make install
等待安装完成。
6.运行:[root@localhost redis]# src/redis-server 需要在redis的安装目录下执行命令(cd redis)。
7.看到这个画面说明redis已经搭建起来了。但是这个并不是在后台运行redis,所以当命令行界面关闭的时候,就会失去链接,所以为了方便,我们需要将他配置为后台运行
编辑配置文件:vim redis.conf redis.conf就在当前目录下。将daemonize=no改为daemonize=yes 然后保存。(编辑完保存退出(esc然后输入:eq 或者esc+shift+z+z))
8.将redis加入到开机启动(这步原文没有,凭个人习惯,设置redis开机自动启动)
vi /etc/rc.local (打开开机启动项然后添加一下命令)
/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf (意思就是开机调用这段开启redis的命令)
9.然后启动(原文启动方式在我主机上不好使。以下是原文启动和我的启动)
原文启动:[root@localhost redis]# src/redis-server ./redis/conf
本人主机启动:[root@localhost redis]# /usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf
这个时候我们的redis服务段就已经后台运行了。
10.然后启动客户端:
src/redis-cli (启动客户端)
到这步linux服务器上安装好了redis了。下面开始php扩展redis
第二步:php搭建redis
这时候需要php也扩展redis才可使用,开始第二步。
*下载phpredis扩展
下载地址:https://github.com/nicolasff/phpredis/archive/4.0.1.tar.gz
1.执行命令:
[root@localhost local]# wget https://github.com/nicolasff/phpredis/archive/4.0.1.tar.gz
2.解压并进入:tar zxvf
[root@localhost local]# tar zxvf 4.0.1.tar.gz
3.执行phpize
[root@localhost phpredis]# /usr/local/php5/bin/phpize 注: 这个是根据自己实际的路径进入,本人是宝塔面板,地址是/www/server/php/72/bin/phpize。实际情况请自己查看位置
4.指定php配置路径:
[root@localhost phpredis]# ./configure --with-php-config=/usr/local/php5/bin/php-config 注: 这个是根据自己实际的路径进入,本人是宝塔面板,地址是/www/server/php/72/bin/php-config。实际情况请自己查看位置
5.编译安装:sudo make && sudo make install
执行命令:[root@localhost phpredis]# sudo make && make install
6.将扩展加入php配置文件php.ini中 php.ini的路径是你自己环境的路径
[root@localhost phpredis]# vim /etc/php/php.ini 注:打开php.ini也要自己的实际位置
在里面加入一行:/usr/local/php5/lib/php/extensions/no-debug-non-zts-20090626/redis.so 注: 这个是根据自己实际的路径进入,本人是宝塔面板,地址是/www/server/php/72/lib/php/extensions/no-debug-non-zts-20090626/redis.so 。实际情况请自己查看位置
7.然后保存,重启php
ps -ef | grep php-fpm
Kill -quit 进程号
启动php:
/usr/local/php5/sbin/php-fpm
然后在phpinfo()中查看redis扩展:
到这里第二步也完成了。
第三步 thinkPHP5 里使用redis
1.打开config.php
'cache' => [
// 使用复合缓存类型
'type' => 'complex',
// 默认使用的缓存
'default' => [
// 驱动方式
'type' => 'File',
// 缓存保存目录
'path' => CACHE_PATH,
],
// 文件缓存
'file' => [
// 驱动方式
'type' => 'file',
// 设置不同的缓存保存目录
'path' => RUNTIME_PATH . 'file/',
],
// redis缓存
'redis' => [
// 驱动方式
'type' =>'Redis',
'host' => '127.0.0.1',
'port' => '6379',
'password' => '',
'timeout'=> 3600
],
],
配置cache的redis方式。
2.测试redis
use thinkcachedriverRedis;
public function redis()
{
$redis = new Redis();
$redis->set('demo','123456');
dump($redis->get('demo'));
}
new Redis(),实例一个redis。本人看了tp5的redis方法,内置的函数仅有set和get,仅能操作字符串,redis的五大类型需要自己扩展方法。当然也可在tp5里直接使用。
第一种:handler();使用这个方法可以直接调用redis的自带函数。如del(删除字符串),append(后位添加字符串)
$redis = new Redis();
$redis->handler()->append('demo',' bbbj47848487bbbb');
第二种,自己封装方法。
打开think/libray/think/cache/driver/redis.php文件
在最后封装自己的方法(其实也是调用handler)
/**
* 删除字符串
*/
public function del($name)
{
$redis->handler()->del(¥name);
}
这时客户端可以这样调用
$redis = new Redis();
$redis->del('demo');
dump($redis->get('demo'));
这时候已经删除了demo字符串,在获取会返回false。
如果不进行封装,删除需要使用$redis->handler()->del(‘demo’);
本文本人亲测。绝对真实