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 相关文章推荐
一个用于mysql的数据库抽象层函数库
Oct 09 PHP
第三节--定义一个类
Nov 16 PHP
php adodb连接带密码access数据库实例,测试成功
May 14 PHP
php 按指定元素值去除数组元素的实现方法
Nov 04 PHP
解析php 版获取重定向后的地址(代码)
Jun 26 PHP
codeigniter框架批量插入数据
Jan 09 PHP
php实现的Timer页面运行时间监测类
Sep 24 PHP
PHP测试框架PHPUnit组织测试操作示例
May 28 PHP
PHP钩子实现方法解析
May 21 PHP
thinkphp5框架实现数据库读取的数据转换成json格式示例
Oct 10 PHP
PHP大文件及断点续传下载实现代码
Aug 18 PHP
PHP序列化和反序列化深度剖析实例讲解
Dec 29 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
PHP创建桌面快捷方式的实例代码
2014/02/17 PHP
标准PHP的AES加密算法类
2015/03/12 PHP
php获取系统变量方法小结
2015/05/29 PHP
Zend Framework教程之Zend_Layout布局助手详解
2016/03/04 PHP
php连接MSsql server的五种方法总结
2018/03/04 PHP
PHP后台备份MySQL数据库的源码实例
2019/03/18 PHP
HTTP状态代码以及定义(解释)
2007/02/02 Javascript
JS文本框不能输入空格验证方法
2013/03/19 Javascript
纯js实现瀑布流展现照片(自动适应窗口大小)
2013/04/08 Javascript
鼠标滑在标题上显示图片的JS代码
2013/11/19 Javascript
jQuery手机浏览器中拖拽动作的艰难性分析
2015/02/04 Javascript
学做Bootstrap的第一个页面
2016/05/15 HTML / CSS
JavaScript两个变量交换值的实现方法
2017/03/01 Javascript
详谈jQuery Ajax(load,post,get,ajax)的用法
2017/03/02 Javascript
js 获取今天以及过去日期
2017/04/11 Javascript
nodejs实现爬取网站图片功能
2017/12/14 NodeJs
jQuery实现table表格checkbox全选的方法分析
2018/07/04 jQuery
javascript数据结构之多叉树经典操作示例【创建、添加、遍历、移除等】
2018/08/01 Javascript
vue.js 实现评价五角星组件的实例代码
2018/08/13 Javascript
学习RxJS之JavaScript框架Cycle.js
2019/06/17 Javascript
nodejs中各种加密算法的实现详解
2019/07/11 NodeJs
jsonp格式前端发送和后台接受写法的代码详解
2019/11/07 Javascript
浏览器JavaScript调试功能无法使用解决方案
2020/09/18 Javascript
[00:12]DAC2018 no[o]ne亮相SOLO赛 他是否如他的id一样无人可挡?
2018/04/06 DOTA
[01:10]DOTA2 Supermajor:英雄,由我们见证
2018/05/14 DOTA
Python实现多线程下载文件的代码实例
2014/06/01 Python
python实现list由于numpy array的转换
2018/04/04 Python
Python多线程编程之多线程加锁操作示例
2018/09/06 Python
Django中create和save方法的不同
2019/08/13 Python
Flask框架路由和视图用法实例分析
2019/11/07 Python
PyCharm Community安装与配置的详细教程
2020/11/24 Python
New Balance法国官方网站:购买鞋子和服装
2019/09/01 全球购物
高中毕业自我鉴定
2013/12/19 职场文书
广告词串烧
2014/03/19 职场文书
80后婚前协议书范本
2014/10/24 职场文书
创业计划书之物流运送
2019/09/17 职场文书