php成功操作redis cluster集群的实例教程


Posted in PHP onJanuary 13, 2019

前言

java操作redis cluster集群可使用jredis

php要操作redis cluster集群有两种方式:

1、使用phpredis扩展,这是个c扩展,性能更高,但是phpredis2.x扩展不行,需升级phpredis到3.0,但这个方案参考资料很少

2、使用predis,纯php开发,使用了命名空间,需要php5.3+,灵活性高

我用的是predis,下载地址:点击这里

步骤如下:

下载好后重命名为predis,

server1:192.168.1.198

server2:192.168.1.199

predis.php

<?php
require 'predis/autoload.php';//引入predis相关包
//redis实例
$servers = array(
 'tcp://192.168.1.198:7000',
 'tcp://192.168.1.198:7001',
 'tcp://192.168.1.198:7002',
 'tcp://192.168.1.199:7003',
 'tcp://192.168.1.199:7004',
 'tcp://192.168.1.199:7005',
);
 
$client = new Predis\Client($servers, array('cluster' => 'redis'));
 
$client->set("name1", "11");
$client->set("name2", "22");
$client->set("name3", "33");
 
$name1 = $client->get('name1');
$name2 = $client->get('name2');
$name3 = $client->get('name3');
var_dump($name1, $name2, $name3);die;

name1,name2,name3是3个key,按照算法分配到3个slot上,有可能分到3台服务器上

首先运行predis.php查看结果:

php成功操作redis cluster集群的实例教程

然后登录到redis客户端进行集群验证:

server1

[root@localhost src]# redis-cli -c -p 7000
127.0.0.1:7000> get name1
-> Redirected to slot [12933] located at 192.168.1.199:7004
"11"
192.168.1.199:7004> get name2
-> Redirected to slot [742] located at 192.168.1.199:7003
"22"
192.168.1.199:7003> get name3
"33"
192.168.1.199:7003>

server2

[root@localhost src]# redis-cli -c -p 7003
127.0.0.1:7003> get name1
-> Redirected to slot [12933] located at 192.168.1.199:7004
"11"
192.168.1.199:7004> get name2
-> Redirected to slot [742] located at 192.168.1.199:7003
"22"
192.168.1.199:7003> get name3
"33"
192.168.1.199:7003>

可以看到数据分布在各个服务器上,可以根据ps -ef | grep redis,杀掉其中几个redis实例,再看效果

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

PHP 相关文章推荐
PHP 中的类
Oct 09 PHP
php中计算中文字符串长度、截取中文字符串的函数代码
Aug 09 PHP
PHP常用的文件操作函数经典收藏
Apr 02 PHP
windows下PHP_intl.dll正确配置方法(apache2.2+php5.3.5)
Jan 14 PHP
ThinkPHP3.1之D方法实例详解
Jun 20 PHP
浅谈PHP中单引号和双引号到底有啥区别呢?
Mar 04 PHP
thinkPHP3.1验证码的简单实现方法
Apr 22 PHP
详谈PHP面向对象中常用的关键字和魔术方法
Feb 04 PHP
PHP使用finfo_file()函数检测上传图片类型的实现方法
Apr 18 PHP
PHP laravel中的多对多关系实例详解
Jun 07 PHP
Laravel 5.5 的自定义验证对象/类示例代码详解
Aug 29 PHP
PHP使用HTML5 FormData对象提交表单操作示例
Jul 02 PHP
PHP赋值的内部是如何跑的详解
Jan 13 #PHP
PHP5.5新特性之yield理解与用法实例分析
Jan 11 #PHP
PHP基于openssl实现的非对称加密操作示例
Jan 11 #PHP
PHP类的自动加载机制实现方法分析
Jan 10 #PHP
PHP验证类的封装与使用方法详解
Jan 10 #PHP
tp5(thinkPHP5)框架数据库Db增删改查常见操作总结
Jan 10 #PHP
tp5(thinkPHP5)框架实现多数据库查询的方法
Jan 10 #PHP
You might like
实用函数3
2007/11/08 PHP
php批量缩放图片的代码[ini参数控制]
2011/02/11 PHP
PHP实现的简单mock json脚本分享
2015/02/10 PHP
php实现的rc4加密解密类定义与用法示例
2018/08/16 PHP
PHP用swoole+websocket和redis实现web一对一聊天
2019/11/05 PHP
破除一些网站复制、右键限制
2006/11/04 Javascript
学习YUI.Ext 第二天
2007/03/10 Javascript
最简单的jQuery程序 入门者学习
2009/07/09 Javascript
使用focus方法让光标默认停留在INPUT框
2014/07/29 Javascript
jQuery动画效果相关方法实例分析
2015/12/31 Javascript
js判断当前页面用什么浏览器打开的方法
2016/01/06 Javascript
原生javascript实现自动更新的时间日期
2016/02/12 Javascript
js实现的万能flv网页播放器代码
2016/04/30 Javascript
原生Javascript插件开发实践
2017/01/09 Javascript
BootStrap的select2既可以查询又可以输入的实现代码
2017/02/17 Javascript
nodejs简单读写excel内容的方法示例
2018/03/16 NodeJs
浅谈Vue响应式(数组变异方法)
2018/05/07 Javascript
基于Bootstrap和JQuery实现动态打开和关闭tab页的实例代码
2019/06/10 jQuery
javaScript代码飘红报错看不懂?读完这篇文章再试试
2020/08/19 Javascript
[03:56]DOTA2完美大师赛趣味视频之小鸽子和Mineski打台球
2017/11/24 DOTA
virtualenv实现多个版本Python共存
2017/08/21 Python
关于Django显示时间你应该知道的一些问题
2017/12/25 Python
shell命令行,一键创建 python 模板文件脚本方法
2018/03/20 Python
Python实现分段线性插值
2018/12/17 Python
Python实现的逻辑回归算法示例【附测试csv文件下载】
2018/12/28 Python
wxPython:python首选的GUI库实例分享
2019/10/05 Python
如何在python中实现随机选择
2019/11/02 Python
python中id函数运行方式
2020/07/03 Python
支持IE8的纯css3开发的响应式设计动画菜单教程
2014/11/05 HTML / CSS
解决Firefox下不支持outerHTML问题代码分享
2014/06/04 HTML / CSS
先进个人事迹材料
2014/01/25 职场文书
工地门卫岗位职责范本
2014/07/01 职场文书
学校节能宣传周活动总结
2014/07/09 职场文书
中韩经贸翻译专业大学生职业生涯规划范文
2014/09/18 职场文书
2016学校元旦晚会经典开场白台词
2015/12/03 职场文书
IDEA 链接Mysql数据库并执行查询操作的完整代码
2021/05/20 MySQL