tp5.0使用predis访问redis集群

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/daily886/article/details/84346440

目录

介绍

配置predis 控制器 application\index\controller\Predis.php

配置自定义助手函数 application\common.php

修改 访问控制器 \application\index\controller\index.php

访问 域名 http://localhost/index/Index/caches


介绍

Predis是一个开源的高级密钥值存储。它通常被称为数据结构服务器,因为键可以包含字符串、散列、列表、集和排序集。

在将Redis与tp5.0一起使用之前,您将需要通过Composer安装predis/predis包:

predis适用于 redis集群架构

composer require predis/predis

配置predis 控制器 application\index\controller\Predis.php

<?php
namespace app\index\controller;
use Predis\Client;

class Predis
{
    private $server;
    public function __construct()
    {

        $server_list = [
            'tcp://10.10.87.241:6301',
            'tcp://10.10.87.241:6302',
            'tcp://10.10.87.241:6303',
            'tcp://10.10.87.242:6304',
            'tcp://10.10.87.242:6305',
            'tcp://10.10.87.242:6306',
        ];
        $this->server = new Client($server_list, array('cluster' => 'redis'));
    }

    public function connect_server(){

        return $this->server;
    }
}

配置自定义助手函数 application\common.php

<?php
// +----------------------------------------------------------------------
// | ThinkPHP [ WE CAN DO IT JUST THINK ]
// +----------------------------------------------------------------------
// | Copyright (c) 2006-2016 http://thinkphp.cn All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: 流年 <[email protected]>
// +----------------------------------------------------------------------

// 应用公共文件
function predis($name,$value = '',$expire = 0){
    if(empty($name)) return false;
    $predis = new \app\index\controller\Predis();
    $predis = $predis->connect_server();
    $value = is_scalar($value) ? $value : 'think_serialize:' . serialize($value);
    $result = false;
    if(strval($value) && strlen($value) > 0 && !empty($name) && is_string($name)){
        $result = $predis->set($name,$value);
    }
    else if(!empty($name)){
        $result = $predis->get($name);
        $result = 0 === strpos($result, 'think_serialize:') ? unserialize(substr($result, 16)) : $result;
    }
    return $result;
}

修改 访问控制器 \application\index\controller\index.php

<?php
namespace app\index\controller;

class Index
{
    public function index()
    {
        return '';
    }

    public function caches(){
        $res = predis('',123);
        dump(predis('*'));

        predis('test1',1231);
        dump(predis('test1'));

        predis('test2',1232);
        dump(predis('test2'));

        predis('test3',1233);
        dump(predis('test3'));

        $res = predis('test4',['abc'=>123,'bcae'=>'hellowwrold']);
        dump(predis('test4'));
    }
}

访问 域名 http://localhost/index/Index/caches

猜你喜欢

转载自blog.csdn.net/daily886/article/details/84346440