问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

thinkphp中的redis怎么用啊

发布网友 发布时间:2022-04-06 02:53

我来回答

4个回答

懂视网 时间:2022-04-06 07:14

下面由thinkphp教程栏目给大家介绍ThinkPHP6多例Redis类实现,希望对需要的朋友有所帮助!

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

1.操作前的准备

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

composer require predis/predis

2.配置Redis连接信息

在appconfigcache.php中配置

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

更多配置参考

/**
 * 配置参数
 * @var array
 */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.1
port = 6379

3.编写代码

在appcommon下创建文件Redis.php

<?phpnamespace appcommon;use thinkfacadeConfig;use thinkcachedriver
edis as ThinkRedis;class Redis extends ThinkRedis{
 /**
 * @var int
 */
 protected $hash;

 /**
 * @var array
 */
 protected static $instance = [];

 /**
 * Redis constructor.
 * @param $db
 */
 private function __construct($db)
 {
 $options = Config::get('cache.stores.redis');
 $options['select'] = $db;
 $this->hash = $db;
 $this->options = array_merge($this->options, $options);
 parent::__construct();
 }

 private function __clone()
 {
 }

 /**
 * @param int $db
 * @return PredisClient|Redis
 */
 public static function instance($db = 0)
 {
 if (! isset(self::$instance[$db])) {
  self::$instance[$db] = new self($db);
 }

 return self::$instance[$db];
 }

 public function __destruct()
 {
 self::$instance[$this->hash]->close();
 unset(self::$instance[$this->hash]);
 }}

4.使用方式

use appcommonRedis;

$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');

更多使用方法请参考 redis命令手册

热心网友 时间:2022-04-06 04:22

config.php 加如下代码 ip根据自己的来修改
'DATA_CACHE_PREFIX' => 'Redis_',//缓存前缀
'DATA_CACHE_TYPE'=>'Redis',//默认动态缓存为Redis
'REDIS_RW_SEPARATE' => true, //Redis读写分离 true 开启
'REDIS_HOST'=>'192.168.91.102', //redis服务器ip,多台用逗号隔开;读写分离开启时,第一台负责写,其它[随机]负责读;
'REDIS_PORT'=>'6379',//端口号
'REDIS_TIMEOUT'=>'300',//超时时间
'REDIS_PERSISTENT'=>false,//是否长连接 false=短连接
'REDIS_AUTH'=>'',//AUTH认证密码
任意控制器下的方法下写:
测试redis
$redis = new \Redis();
$redis->connect('192.168.91.102',6379);
$redis->set('test','hello world!');
echo $redis->get("test");

热心网友 时间:2022-04-06 05:40

缓存自带redis引擎,配置文件添加redis配置即可

热心网友 时间:2022-04-06 07:15

这种东西,不要来知道,去看官方文档,很详细
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
注册保险代理有限公司需要什么资料! 现在什么云手机性价比高一点? 50个可接双宾语的动词 为琵琶独奏曲《春江花月夜》配一首词或诗 我经常看到HI语音里会有什么魅力榜、贡献榜这些排名,我也一直在语音直播... 跨行通怎么激活 父母是农民不知道有没有纳税 普通农民可以算纳税人吗? 农民不交农业税了,是不是纳税人? 小红书上女生缺衣服穿的心情说说四十句 thinkphp中使用redis tinkphp5.1手册命名规范中类的文件名均以命名空间定义怎么理解? C++命名空间,疑惑 请问xhtml中开头的命名空间是怎样理解的,为什么每次写的都是同样一个名字? C++标准命名空间 什么是.NET Framework的命名空间?命名空间为什么要分层次? c#中的命名空间用和不用有什么区别 嵌套命名空间它的含义是什么,怎么去理解?? C#中&quot;命名空间&quot;的意思和功能? As3 达人请进来,我刚学到命名空间,对概念不是很理解,我送点分数给你们,嘿嘿,先到先得 Python之禅中的namespace怎么理解 模块与命名空间 C++命名空间是什么? 学校学了一个月C语言,然后开始学c#,感觉对c#的命名空间和类表示不能理解,有通俗一点的解释吗 C++命名空间到底有什么作用?请举例说明 c#中什么叫做命名空间? 1】 命名空间里可以包容 命名空间? 2】 类一定在 命名空间里面; 3】 命名空间里面 可以 声明变量? C#里的命名空间是什么意思? 如何理解命名空间?使用命名空间有什么好处? 什么是命名空间 thinkphp+redis-TP框架里怎么扩展redis操作 thinkphp 怎么开启redis拓展 thinkphp redis 怎么选择数据库 thinkphp怎么使用redius Thinkphp5怎么扩展Redis数据库,实现Redis的CURD操作 ThinkPHP 框架,redis不能用,extension_loaded(&#39;redis&#39;) 返回false thinkphp redis存入session怎么调用 thinkphp 用redis 怎么选择数据库? 如何在thinkphp3.2.3里面设置redis thinkphp怎么配置redis密码 thinkphp6 index.php多应用时为什么自定义的入口无法访问多应用? 关于thinkphp开发的几种规范 Laravel 数据库id设置是自增可save新增sql出来的id为什么是字符串 laravel差入数据库主键自增怎么写 laravel怎么increment多个字段 laravel 怎么获取要修改的信息 使用laravel 的多对多的多态关联父表主键必须是叫做&#39;id&#39;吗 在Laravel框架中,比如我进行注册,判断两次密码是否一致,但是我的重复密码又不能插入到数据库中 laravel 伪静态怎么给参数命名 steam错误代码118真正解决方法