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模板中出现空行解决方法
Mar 08 PHP
PHP对象转换为数组函数(递归方法)
Feb 04 PHP
初品cakephp 入门基础
Feb 16 PHP
单台服务器的PHP进程之间实现共享内存的方法
Jun 13 PHP
ThinkPHP之用户注册登录留言完整实例
Jul 22 PHP
10个超级有用值得收藏的PHP代码片段
Jan 22 PHP
php+html5使用FormData对象提交表单及上传图片的方法
Feb 11 PHP
php保存任意网络图片到服务器的方法
Apr 14 PHP
两种php给图片加水印的实现代码
Apr 18 PHP
PHP实现打包zip并下载功能
Jun 12 PHP
Yii框架实现对数据库的CURD操作示例
Sep 03 PHP
PHP cookie与session会话基本用法实例分析
Nov 18 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面向对象全攻略 (六)__set() __get() __isset() __unset()的用法
2009/09/30 PHP
php在服务器执行exec命令失败的解决方法
2012/03/03 PHP
PHP 导出Excel示例分享
2014/08/18 PHP
PHP+MySQL实现输入页码跳转到指定页面功能示例
2018/06/01 PHP
ext form 表单提交数据的方法小结
2008/08/08 Javascript
javascript 跨浏览器开发经验总结(五) js 事件
2010/05/19 Javascript
js函数在frame中的相互调用详解
2014/03/03 Javascript
jQuery使用before()和after()在元素前后添加内容的方法
2015/03/26 Javascript
JavaScript时间转换处理函数
2015/04/14 Javascript
js仿苹果iwatch外观的计时器代码分享
2015/08/26 Javascript
jquery对table做排序操作的实例演示
2017/08/10 jQuery
使用Angular CLI进行Build(构建)和Serve详解
2018/03/24 Javascript
JavaScript ES6箭头函数使用指南
2018/12/30 Javascript
webpack + vue 打包生成公共配置文件(域名) 方便动态修改
2019/08/29 Javascript
javascript实现弹幕墙效果
2019/11/28 Javascript
vue - props 声明数组和对象操作
2020/07/30 Javascript
vue项目配置同一局域网可使用ip访问的操作
2020/10/23 Javascript
[01:33]一分钟玩转DOTA2第三弹:DOTA2&DotA快捷操作大对比
2014/06/04 DOTA
[01:07:57]DOTA2-DPC中国联赛 正赛 Ehome vs Magma BO3 第二场 1月19日
2021/03/11 DOTA
python3使用urllib模块制作网络爬虫
2016/04/08 Python
Python编写电话薄实现增删改查功能
2016/05/07 Python
python实现员工管理系统
2018/01/11 Python
分析Python中解析构建数据知识
2018/01/20 Python
Python3常见函数range()用法详解
2019/12/30 Python
Pytorch保存模型用于测试和用于继续训练的区别详解
2020/01/10 Python
python库skimage给灰度图像染色的方法示例
2020/04/27 Python
Python实现寻找回文数字过程解析
2020/06/09 Python
如何编写python的daemon程序
2021/01/07 Python
Vans(范斯)德国官网:美国南加州的原创极限运动潮牌
2017/05/02 全球购物
理肤泉加拿大官网:La Roche-Posay加拿大
2018/07/06 全球购物
俞敏洪励志演讲稿
2014/04/29 职场文书
爱耳日宣传活动总结
2014/07/05 职场文书
2014年派出所工作总结
2014/11/21 职场文书
2015年大学生村官工作总结
2015/04/21 职场文书
使用PDF.js渲染canvas实现预览pdf的效果示例
2021/04/17 Javascript
python字典的元素访问实例详解
2021/07/21 Python