thinkphp6:访问多个redis数据源(thinkphp6.0.5 / php 7.4.9)
一,配置多个redis库的地址:
.env
APP_DEBUG = true #APP_DEBUG = false [APP] DEFAULT_TIMEZONE = Asia/Shanghai [REDIS0] TYPE = redis HOST = 127.0.0.1 PORT = 6379 PASSWORD = [REDIS1] TYPE = redis HOST = 127.0.0.1 PORT = 6380 PASSWORD = [LANG] default_lang = zh-cn
说明:刘宏缔的架构森林是一个专注架构的博客,
网站:https://blog.imgtouch.com
本文: https://blog.imgtouch.com/index.php/2023/05/26/thinkphp6-fang-wen-duo-ge-redis-shu-ju-yuan-thinkphp6-5-php/
对应的源码可以访问这里获取: https://github.com/liuhongdi/
说明:作者:刘宏缔 邮箱: 371125307@qq.com
二,配置php到redis的连接
config/cache.php
<?php // +---------------------------------------------------------------------- // | 缓存设置 // +---------------------------------------------------------------------- return [ // 默认缓存驱动 'default' => env('cache.driver', 'file'), // 缓存连接方式配置 'stores' => [ 'file' => [ // 驱动方式 'type' => 'File', // 缓存保存目录 'path' => '', // 缓存前缀 'prefix' => '', // 缓存有效期 0表示永久缓存 'expire' => 0, // 缓存标签前缀 'tag_prefix' => 'tag:', // 序列化机制 例如 ['serialize', 'unserialize'] 'serialize' => [], ], // 更多的缓存连接 'redis0' => [ 'type' => env('redis0.type', 'redis'), 'host' => env('redis0.host', '127.0.0.1'), 'port' => env('redis0.port', '6379'), 'password' => env('redis0.password', ''), 'select' => '0', // 全局缓存有效期(0为永久有效) 'expire' => 0, // 缓存前缀 'prefix' => '', 'timeout' => 0, ], // 更多的缓存连接 'redis1' => [ 'type' => env('redis1.type', 'redis'), 'host' => env('redis1.host', '127.0.0.1'), 'port' => env('redis1.port', '6380'), 'password' => env('redis1.password', ''), 'select' => '0', // 全局缓存有效期(0为永久有效) 'expire' => 0, // 缓存前缀 'prefix' => '', 'timeout' => 0, ], ], ];
三,如何访问多个redis数据源,看例子:
api/controller/UserController.php
<?php namespace app\api\controller; use think\facade\Cache; class UserController { public function index() { //访问redis0 Cache::store('redis0')->set('name0','value1234',3600); $value0 = Cache::store('redis0')->get("name0"); //访问redis1 Cache::store('redis1')->set('name1','value5678',3600); $value1 = Cache::store('redis1')->get("name1"); //返回 return '您好![userindex],<br/>redis0 value0:'.$value0."<br/>redis1 value1:".$value1; } public function test() { return "this is usercontroller test"; } }
四,测试效果
1,访问:
http://127.0.0.1:81/api/userindex
返回:
2,从命令行查看redis中保存的数据:
root@ku:/data# /usr/local/soft/redis6/bin/redis-cli -p 6380 127.0.0.1:6380> get name1 "s:9:\"value5678\";" 127.0.0.1:6380> exit root@ku:/data# /usr/local/soft/redis6/bin/redis-cli -p 6379 127.0.0.1:6379> get name0 "s:9:\"value1234\";"
可以看到数据已保存到redis缓存中
五,查看thinkphp的版本
liuhongdi@ku:/data/php/mytp$ php think version v6.0.5
六,查看php的版本:
liuhongdi@ku:/data/logs/phplogs/tlog/202012$ php --version PHP 7.4.9 (cli) (built: Oct 26 2020 15:17:14) ( NTS ) Copyright (c) The PHP Group Zend Engine v3.4.0, Copyright (c) Zend Technologies with Zend OPcache v7.4.9, Copyright (c), by Zend Technologies
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧