PHP Redis Client and Replica
We can configure the replica connection client like this:
$timeout_parameters = "&timeout=10&read_write_timeout=10";
$parameters = array(
'tcp://' . $redisHostMaster . "?alias=master&$timeout_parameters",
'tcp://' . $redisHostSlave1 . "?alias=slave1&$timeout_parameters",
'tcp://' . $redisHostSlave2 . "?alias=slave2&$timeout_parameters"
);
$this->clientMaster = new Client($parameters, array('replication' => true));
If we create a new Client every time we use it, it will be good. It can send all the writes to master, all the reads to replica. But if we use a single object of that connection, once it connect to master, it will be master forever. That is what I get from the testings.
So finally, my solution change to this, I will keep 2 singleton clients, one for all writes, one for all reads.
$timeout_parameters = "&timeout=10&read_write_timeout=10";
$parameters = array(
'tcp://' . $redisHostMaster . "?alias=master&$timeout_parameters",
'tcp://' . $redisHostSlave1 . "?alias=slave1&$timeout_parameters",
'tcp://' . $redisHostSlave2 . "?alias=slave2&$timeout_parameters"
);
$this->clientMaster = new Client($parameters, array('replication' => true));
$this->clientSlaves = new Client($parameters, array());
And we upgrade the client to v.1.1.1 to support all these. composer.json is as follow:
{
"autoload" : {
"psr-0": {
"JobProducerPHP": "src/"
}
},
"require": {
"predis/predis": "1.1.1",
"aws/aws-sdk-php": "3.0.6",
"katzgrau/klogger": "dev-master",
"pimple/pimple": "3.0",
"solarium/solarium": "^3.6",
"phpFastCache/phpFastCache": "^4.3"
},
"require-dev": {
"php": ">=5.3.0",
"phpunit/phpunit": "~4.5.1",
"phpunit/dbunit": ">=1.2",
"phpunit/php-invoker": "*"
}
}
We need to execute command as follow:
> ./composer.phar update
References:
https://github.com/nrk/predis/tree/v1.1/examples
https://github.com/nrk/predis/blob/v0.7.1/examples/MasterSlaveReplication.php
https://github.com/nrk/predis/issues/21
https://github.com/nrk/predis/wiki/Connection-Parameters
cluster
https://www.zybuluo.com/phper/note/248555
分享到:
相关推荐
标题提及的“redis php client”指的是PHP中用于连接和操作Redis的扩展库。在PHP 5.3.x时代,`php_redis.dll`是一个常用的客户端扩展,允许开发者在PHP脚本中无缝地使用Redis功能。描述中提到的“php_redis.dll 版本...
"mac redis client"就是指适用于Mac的Redis客户端软件,它允许用户方便地连接到本地或远程的Redis服务,进行数据查看、添加、修改和删除等操作。 Redis客户端的选择对于开发者来说至关重要,因为一个好的客户端可以...
client list命令详解
基于acl库封装的redis client vs2010工程; 运行时解压到: redis-acl\lib_acl_cpp\samples\redis路径下,把lib_acl_vc2010d.lib、lib_acl_cpp_vc2010d.lib放到 \redis-acl\lib_acl_cpp\samples\redis\redisclient...
redis client 2.0 客户端 管理工具
很好地redis管理软件 redis client
在本例中,"redis-client.zip"是一个压缩包,其中包含了一个或多个Redis客户端工具。这些工具通常包括命令行接口(CLI)和其他图形用户界面(GUI)应用程序,使得开发者和系统管理员能够方便地与Redis实例进行通信。...
redis 客户端 client
在描述中提到的“c# redis client modifications added”,这可能是指对原始的C# Redis客户端进行了修改或扩展,以适应特定项目需求或者优化性能。这些修改可能包括增加新功能、改进错误处理、提升性能、添加新的API...
Redis Client GUI 工具 Jar包形式。Github上发布的工具包。分享给不能的同志们。
"redis-client-windows" 是一个专为Windows操作系统设计的Redis客户端工具,它提供了便捷的方式在本地Windows环境中与Redis服务器进行交互,包括复制、查询和修改Redis中的数据。 在Windows上使用Redis通常涉及以下...
Java Redis Client GUI Tool
"Redis client 桌面客户端"是指专为 Redis 设计的图形用户界面工具,它允许用户通过直观的界面与 Redis 服务器进行交互,进行数据的查看、添加、修改和删除等操作,而无需编写命令行指令。 在Redis客户端桌面应用中...
在学习 redis的时候,就利用空闲时间写出来redisClient 的工具类,该工具类重要用于对 redis 集群的操作,不仅可以对对象String对象进行操作,也可以对 Object 进行操作。希望对大家有所帮助。
Support flat view and hierarchy view to list redis data Support multiple language, now support English and Chinese Support run redis command in console Support run publish/subscribe Watch redis data ...
标题 "A C++ Redis client.zip" 提供了一个关键信息,即这个压缩包包含了一个用C++编写的Redis客户端。Redis是一种高性能的键值存储系统,常用于数据缓存、消息队列以及数据库等多个场景。C++是通用的、面向对象的...
PHPRedis是Redis的一个PHP扩展模块,提供了丰富的API接口用于与Redis实例交互,该模块效率高,支持链表排序等功能,非常适合用于创建内存级别的模块业务关系。 phpredis的使用方法相对直观,用户可以通过phpredis...
《phpredis-3.1.3:Linux环境下PHP的Redis扩展详解》 在现代Web开发中,PHP作为服务器端脚本语言,与Redis这样的高性能键值存储系统相结合,能够实现高效的数据交互。本文将深入探讨PHP与Redis集成的重要组件——...
**phpredis扩展与PHP7的整合** `phpredis`是一个为PHP编写的Redis通信库,它使得PHP开发者能够轻松地与Redis键值存储系统进行交互。`phpredis-php7`特指该扩展针对PHP 7版本的优化和适配版本。在PHP 7中,性能得到...
这个“phpredis-develop.zip”文件包含了PHPRedis的开发版本,支持最新测试的PHP5、PHP7以及Redis5和Redis6.0版本,具有广泛的兼容性,适用于Windows和Linux操作系统,是开发人员的理想选择。 一、PHPRedis简介 ...