关于ThinkPHP6多例Redis类实现

在Thinkphp项目中封装一个Redis多库单例操作类 1、操作前的准备 如果没有安装phpredis模块那么先执行 composerrequirepredis/predis2、...

关于ThinkPHP6多例Redis类实现插图1

在Thinkphp项目中封装一个Redis多库单例操作类

1、操作前的准备

如果没有安装phpredis模块那么先执行

composerrequirepredis/predis2、配置Redis连接信息

在app\config\cache.php中配置

'redis'=>[//驱动方式'type'=>'redis',//连接地址'host'=>Env::get('redis.host'),//端口'port'=>Env::get('redis.port'),],

更多配置参考

/***配置参数*@vararray*/protected$options=['host'=>'127.0.0.1','port'=>6379,'password'=>'','select'=>0,'timeout'=>0,'expire'=>0,'persistent'=>false,'prefix'=>'','tag_prefix'=>'tag:','serialize'=>[],];

在.env中配置连接信息

[REDIS]host=127.0.0.1port=63793、编写代码

在app\common下创建文件Redis.php

<?phpnamespaceapp\common;usethink\facade\Config;usethink\cache\driver\redisasThinkRedis;classRedisextendsThinkRedis{/***@varint*/protected$hash;/***@vararray*/protectedstatic$instance=[];/***Redisconstructor.*@param$db*/privatefunction__construct($db){$options=Config::get('cache.stores.redis');$options['select']=$db;$this->hash=$db;$this->options=array_merge($this->options,$options);parent::__construct();}privatefunction__clone(){}/***@paramint$db*@return\Predis\Client|\Redis*/publicstaticfunctioninstance($db=0){if(!isset(self::$instance[$db])){self::$instance[$db]=newself($db);}returnself::$instance[$db];}publicfunction__destruct(){self::$instance[$this->hash]->close();unset(self::$instance[$this->hash]);}}4、使用方式useapp\common\Redis;$redis=Redis::instance(4);$redis->hSet('user:1','userName','admin');Redis::instance(1)->hSet('user','name','admin1');Redis::instance(2)->hSet('user','name','admin2');Redis::instance(3)->hSet('user','name','admin3');

产品猿社区致力收录更多优质的商业产品,给服务商以及软件采购客户提供更多优质的软件产品,帮助开发者变现来实现多方共赢;

日常运营的过程中我们难免会遇到各种版权纠纷等问题,如果您在社区内发现有您的产品未经您授权而被用户提供下载或使用,您可按照我们投诉流程处理,点我投诉

本文来自用户发布投稿,不代表产品猿立场 ;若对此文有疑问或内容有严重错误,可联系平台客服反馈;

部分产品是用户投稿,可能本文没有提供官方下下载地址或教程,若您看到的内容没有下载入口,您可以在我们产品园商城搜索看开发者是否有发布商品;若您是开发者,也诚邀您入驻商城平台发布的产品,地址:点我进入

如若转载,请注明出处:https://www.chanpinyuan.cn/42629.html;
(0)
上一篇 2023年5月7日 下午4:16
下一篇 2023年5月9日 下午4:16

相关推荐

发表回复

登录后才能评论
分享本页
返回顶部