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 (地址若失效请更换)

tp框架redis配置 redis thinkphp5_linux


2.解压:[root@localhost redis]# tar xzf redis-4.0.8.tar.gz

tp框架redis配置 redis thinkphp5_redis_02


3.重命名(凭个人习惯,可省略)[root@localhost redis]# mv redis-4.0.8 redis4.

tp框架redis配置 redis thinkphp5_php_03


4.进入目录 cd redis

tp框架redis配置 redis thinkphp5_thinkphp_04


5.安装:使用make命令

[root@localhost redis]# sudo make && sudo make install

等待安装完成。

6.运行:[root@localhost redis]# src/redis-server 需要在redis的安装目录下执行命令(cd redis)。

tp框架redis配置 redis thinkphp5_redis_05


7.看到这个画面说明redis已经搭建起来了。但是这个并不是在后台运行redis,所以当命令行界面关闭的时候,就会失去链接,所以为了方便,我们需要将他配置为后台运行编辑配置文件:vim redis.conf redis.conf就在当前目录下。将daemonize=no改为daemonize=yes 然后保存。(编辑完保存退出(esc然后输入:eq 或者esc+shift+z+z))

tp框架redis配置 redis thinkphp5_redis_06


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服务段就已经后台运行了。

tp框架redis配置 redis thinkphp5_redis_07

10.然后启动客户端:

src/redis-cli (启动客户端)

tp框架redis配置 redis thinkphp5_thinkphp_08


到这步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

tp框架redis配置 redis thinkphp5_tp框架redis配置_09

2.解压并进入:tar zxvf

[root@localhost local]# tar zxvf 4.0.1.tar.gz

tp框架redis配置 redis thinkphp5_php_10


3.执行phpize[root@localhost phpredis]# /usr/local/php5/bin/phpize 注: 这个是根据自己实际的路径进入,本人是宝塔面板,地址是/www/server/php/72/bin/phpize。实际情况请自己查看位置

tp框架redis配置 redis thinkphp5_linux_11


4.指定php配置路径:[root@localhost phpredis]# ./configure --with-php-config=/usr/local/php5/bin/php-config 注: 这个是根据自己实际的路径进入,本人是宝塔面板,地址是/www/server/php/72/bin/php-config。实际情况请自己查看位置

tp框架redis配置 redis thinkphp5_redis_12


5.编译安装:sudo make && sudo make install执行命令:[root@localhost phpredis]# sudo make && make install

tp框架redis配置 redis thinkphp5_thinkphp_13


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 。实际情况请自己查看位置

tp框架redis配置 redis thinkphp5_thinkphp_14


7.然后保存,重启php

ps -ef | grep php-fpm
Kill -quit 进程号

启动php:

/usr/local/php5/sbin/php-fpm

然后在phpinfo()中查看redis扩展:

tp框架redis配置 redis thinkphp5_linux_15


到这里第二步也完成了。

第三步 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 think\cache\driver\Redis;
public function redis()
    {

    $redis = new Redis();
   $redis->set('demo','123456');
    dump($redis->get('demo'));
}

tp框架redis配置 redis thinkphp5_linux_16


new Redis(),实例一个redis。本人看了tp5的redis方法,内置的函数仅有set和get,仅能操作字符串,redis的五大类型需要自己扩展方法。当然也可在tp5里直接使用。

第一种:handler();使用这个方法可以直接调用redis的自带函数。如del(删除字符串),append(后位添加字符串)

$redis = new Redis();
 $redis->handler()->append('demo','    bbbj47848487bbbb');

tp框架redis配置 redis thinkphp5_thinkphp_17

第二种,自己封装方法。
打开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'));

tp框架redis配置 redis thinkphp5_tp框架redis配置_18


这时候已经删除了demo字符串,在获取会返回false。

如果不进行封装,删除需要使用$redis->handler()->del(‘demo’);

本文本人亲测。绝对真实