thinkphp5 扩展redis Linux搭建redis php搭建redis

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
thinkphp5 扩展redis Linux搭建redis php搭建redis_第1张图片
5.安装:使用make命令

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

等待安装完成。

6.运行:[root@localhost redis]# src/redis-server 需要在redis的安装目录下执行命令(cd redis)。
thinkphp5 扩展redis Linux搭建redis php搭建redis_第2张图片
7.看到这个画面说明redis已经搭建起来了。但是这个并不是在后台运行redis,所以当命令行界面关闭的时候,就会失去链接,所以为了方便,我们需要将他配置为后台运行

编辑配置文件:vim redis.conf redis.conf就在当前目录下。将daemonize=no改为daemonize=yes 然后保存。(编辑完保存退出(esc然后输入:eq 或者esc+shift+z+z))
thinkphp5 扩展redis Linux搭建redis php搭建redis_第3张图片
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服务段就已经后台运行了。
thinkphp5 扩展redis Linux搭建redis php搭建redis_第4张图片

10.然后启动客户端:

src/redis-cli (启动客户端)
thinkphp5 扩展redis Linux搭建redis php搭建redis_第5张图片
到这步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
thinkphp5 扩展redis Linux搭建redis php搭建redis_第6张图片

2.解压并进入:tar zxvf

[root@localhost local]# tar zxvf 4.0.1.tar.gz
thinkphp5 扩展redis Linux搭建redis php搭建redis_第7张图片
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。实际情况请自己查看位置
thinkphp5 扩展redis Linux搭建redis php搭建redis_第8张图片
5.编译安装:sudo make && sudo make install

执行命令:[root@localhost phpredis]# sudo make && make install
thinkphp5 扩展redis Linux搭建redis php搭建redis_第9张图片
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 。实际情况请自己查看位置
thinkphp5 扩展redis Linux搭建redis php搭建redis_第10张图片
7.然后保存,重启php

ps -ef | grep php-fpm

Kill -quit 进程号

启动php:

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

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

thinkphp5 扩展redis Linux搭建redis php搭建redis_第11张图片
到这里第二步也完成了。

第三步 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'));
}

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

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

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

![在这里插入图片描述](https://img-blog.csdnimg.cn/20191123131154356.png

第二种,自己封装方法。
打开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’);
本文本人亲测。绝对真实

你可能感兴趣的:(thinkphp)