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 相关文章推荐
用libtemplate实现静态网页生成
Oct 09 PHP
Windows下IIS6/Apache2.2.4+MySQL5.2+PHP5.2.1安装配置方法
May 03 PHP
php session劫持和防范的方法
Nov 12 PHP
php实现的短网址算法分享
Jun 20 PHP
php上传文件并显示上传进度的方法
Mar 24 PHP
php读取csc文件并输出
May 21 PHP
php面向对象与面向过程两种方法给图片添加文字水印
Aug 26 PHP
php pthreads多线程的安装与使用
Jan 19 PHP
利用php生成验证码
Feb 23 PHP
PHP编程实现脚本异步执行的方法
Aug 09 PHP
Laravel中10个有用的用法小结
May 06 PHP
PHP基于swoole多进程操作示例
Aug 12 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读取目录所有文件信息dir示例
2014/03/18 PHP
提高php编程效率技巧
2015/08/13 PHP
PHP操作Redis数据库常用方法示例
2018/08/25 PHP
JQuery select控件的相关操作实现代码
2012/09/14 Javascript
js showModalDialog参数的使用详解
2014/01/07 Javascript
VS2008中使用JavaScript调用WebServices
2014/12/18 Javascript
jQuery实现自定义事件的方法
2015/04/17 Javascript
JavaScript面对国际化编程时的一些建议
2015/06/24 Javascript
js贪吃蛇游戏实现思路和源码
2016/04/14 Javascript
移动端使用localStorage缓存Js和css文的方法(web开发)
2016/09/20 Javascript
如何解决jQuery EasyUI 已打开Tab重新加载问题
2016/12/19 Javascript
JavaScript队列函数和异步执行详解
2017/06/19 Javascript
Angular2实现组件交互的方法分析
2017/12/19 Javascript
JavaScript事件对象深入详解
2018/12/30 Javascript
JavaScript对象原型链原理解析
2020/01/22 Javascript
[58:42]DOTA2上海特级锦标赛C组败者赛 Newbee VS Archon第一局
2016/02/27 DOTA
python基础教程之类class定义使用方法
2014/02/20 Python
浅析Python中将单词首字母大写的capitalize()方法
2015/05/18 Python
Python读取Json字典写入Excel表格的方法
2018/01/03 Python
python实现杨氏矩阵查找
2019/03/02 Python
selenium跳过webdriver检测并模拟登录淘宝
2019/06/12 Python
浅谈Python 敏感词过滤的实现
2019/08/15 Python
Python坐标线性插值应用实现
2019/11/13 Python
python matplotlib画盒图、子图解决坐标轴标签重叠的问题
2020/01/19 Python
通过python连接Linux命令行代码实例
2020/02/18 Python
通过代码简单了解django model序列化作用
2020/11/12 Python
HTML5新增属性data-*和js/jquery之间的交互及注意事项
2017/08/08 HTML / CSS
澳大利亚音乐商店:Bava’s Music City
2019/05/05 全球购物
世界上最好的野生海鲜和有机食品:Vital Choice
2020/01/16 全球购物
宣传策划类求职信范文
2014/01/31 职场文书
保护环境倡议书500字
2014/05/19 职场文书
小学生迎国庆演讲稿
2014/09/05 职场文书
求职信范文怎么写
2015/03/19 职场文书
如何撰写出一份完美的商业计划书?
2019/07/12 职场文书
nginx location中多个if里面proxy_pass的方法
2021/03/31 Servers
深入理解Pytorch微调torchvision模型
2021/11/11 Python