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
很实用的一个完整email发送程序
Oct 09 PHP
别人整理的服务器变量:$_SERVER
Oct 20 PHP
php file_exists 检查文件或目录是否存在的函数
May 10 PHP
PHP中对用户身份认证实现两种方法
Jun 04 PHP
PHP乱码问题,UTF-8乱码常见问题小结
Apr 09 PHP
如何使用FireFox插件FirePHP调试PHP
Jul 23 PHP
JS异常处理try..catch语句的作用和实例
May 05 PHP
Win7 64位系统下PHP连接Oracle数据库
Aug 20 PHP
6个超实用的PHP代码片段
Aug 10 PHP
PHP ADODB实现事务处理功能示例
May 25 PHP
Yii2框架中一些折磨人的坑
Dec 15 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
WHOIS类的修改版
2006/10/09 PHP
保存到桌面、设为桌面且带图标的PHP代码
2013/11/19 PHP
PHP实现递归无限级分类
2015/10/22 PHP
如何使用PHP给图片加水印
2016/10/12 PHP
Ubuntu彻底删除PHP7.0的方法
2018/07/27 PHP
详解PHP神奇又有用的Trait
2019/03/25 PHP
jQuery性能优化28条建议你值得借鉴
2013/02/16 Javascript
file控件选择上传文件确定后触发的js事件是哪个
2014/03/17 Javascript
jQuery.lazyload+masonry改良图片瀑布流代码
2014/06/20 Javascript
JS实现超过长度限制后自动跳转下一款文本框的方法
2015/02/23 Javascript
jQuery实现默认是闭合的FAQ展开效果菜单
2015/09/14 Javascript
微信小程序 滚动到某个位置添加class效果实现代码
2017/04/19 Javascript
vue.js父组件使用外部对象的方法示例
2017/04/25 Javascript
Angular如何引入第三方库的方法详解
2017/07/13 Javascript
Vue.js上下滚动加载组件的实例代码
2017/07/17 Javascript
JS实现合并json对象的方法
2017/10/10 Javascript
AngularJS实现表单元素值绑定操作示例
2017/10/11 Javascript
使用JQuery实现图片轮播效果的实例(推荐)
2017/10/24 jQuery
vue3.0 CLI - 2.3 - 组件 home.vue 中学习指令和绑定
2018/09/14 Javascript
js加减乘除精确运算方法实例代码
2021/01/17 Javascript
python之yield表达式学习
2014/09/02 Python
利用python爬取斗鱼app中照片方法实例
2017/12/03 Python
python如何生成各种随机分布图
2018/08/27 Python
Python面向对象之接口、抽象类与多态详解
2018/08/27 Python
python异步编程 使用yield from过程解析
2019/09/25 Python
python接口自动化之ConfigParser配置文件的使用详解
2020/08/03 Python
matplotlib 范围选区(SpanSelector)的使用
2021/02/24 Python
2013年学期结束动员演讲稿
2014/01/07 职场文书
中式面点餐厅创业计划书
2014/01/29 职场文书
大学校园活动策划书
2014/02/04 职场文书
国际金融专业自荐信
2014/07/05 职场文书
年度考核表个人总结
2015/03/06 职场文书
python 通过使用Yolact训练数据集
2021/04/06 Python
浅谈sql_@SelectProvider及使用注意说明
2021/08/04 Java/Android
Redis 中使用 list,streams,pub/sub 几种方式实现消息队列的问题
2022/03/16 Redis
win11高清晰音频管理器在哪里?win11找不到高清晰音频管理器解决办法
2022/04/08 数码科技