laravel 8 redis的单例模式 简单封装

本文介绍了如何配置Redis的PHP连接,包括设置配置文件、单例模式实现Redis连接类以及常用Redis操作方法如set、get等。此外,还提到了通过小皮软件快速启用Redis的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先 config下redis配置文件redis.php

<?php 
//Redis配置文件
return [
    'scheme' => env('redis.scheme', 'tcp'),
    'host'  =>  env('redis.host', '127.0.0.1'), 
    'port' => env('redis.port', '6379'), 
    'token' => env('redis.token_db', '1'), // token数据库:默认0~15个
    'cache' => env('redis.cache_db', '0'), // 缓存数据库 
    'password' => env('redis.password', ''), 
];

或者简单一些 下载一个小皮  在软件内下载  首页 点击启动  redis

 

然后点击网站->管理-> php 扩展->redis  点击开启即可

在你的项目服务层 新建一个 RedisServer类

class RedisServer
{
    /**
     * 单例模式的变量
     * @var null
     */
    private static $_instance=null;
    public $redis = '';

    /**
     * 单例模式应用防止多次连接redis,提高性能
     * @return Predisnull
     */
    public static function getInstance(){
        if(is_null(self::$_instance) || empty(self::$_instance)){
            self::$_instance = new self();
        }
        return self::$_instance;
    }
    /**
     *连接redis
     */
    private function __construct()    {
        $this->redis = new \Redis();
        $result = $this->redis->connect('127.0.0.1', '6379');
        if($result==false){
            throw new \Exception('redis connect fail');
        }
    }

    /**
     *redis set方法的应用
     * @param $key
     * @param $value
     * @param int $time
     * @return bool|string
     */
    public function set($key,$value,$time=0){
        if(!$key){
            return '';
        }
        if(is_array($value)){
            $value = json_encode($value);
        }
        if(!$time){
            return $this->redis->set($key,$value);
        }
        return $this->redis->setex($key,$time,$value);
    }

    /**
     * redis get方法
     * @param $key
     * @return string
     */
    public function get($key){
        if(!$key){
            return '';
        }
        return $this->redis->get($key);
    }

    /**
     * 获取有序列表的结合
     * @param $key
     * @return array
     */
    public function sMembers($key) {
        return $this->redis->sMembers($key);
    }

    /**
     * 获取list的元素值结合
     */
    public function lRange($key){
        var_dump($key);
        return $this->redis->lRange($key,0,-1);
    }

    /**
     * 魔术方法__call
     */
    public function __call($name, $arguments) {
        echo $name.PHP_EOL;
        print_r($arguments);
        if(count($arguments) != 2) {
            return '';
        }
        $this->redis->$name($arguments[0], $arguments[1]);
    }
}

 项目中调用方式 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值