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 相关文章推荐
基于asp+ajax和数据库驱动的二级联动菜单
May 06 PHP
php实现rc4加密算法代码
Apr 25 PHP
php curl post 时出现的问题解决
Jan 30 PHP
PHP中批量生成静态html(命令行下运行PHP)
Apr 19 PHP
PHP冒泡算法详解(递归实现)
Nov 10 PHP
php中instanceof 与 is_a()区别分析
Mar 03 PHP
Symfony2之session与cookie用法小结
Mar 18 PHP
详解Laravel视图间共享数据与视图Composer
Aug 04 PHP
php版微信公众平台开发之验证步骤实例详解
Sep 23 PHP
PHP实现的方程求解示例分析
Nov 11 PHP
php面向对象之反射功能与用法分析
Mar 29 PHP
php微信公众号开发之现金红包
Apr 16 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连接SQLServer2005方法及代码
2013/12/26 PHP
ThinkPHP实现动态包含文件的方法
2014/11/29 PHP
ECSHOP在PHP5.5及高版本上报错的解决方法
2015/08/31 PHP
php使用函数pathinfo()、parse_url()和basename()解析URL
2016/11/25 PHP
推荐40个非常优秀的jQuery插件和教程【系列三】
2011/11/09 Javascript
JS获取键盘上任意按键的值(实例代码)
2013/11/12 Javascript
JavaScript中的Truthy和Falsy介绍
2015/01/01 Javascript
jQuery.position()方法获取不到值的安全替换方法
2015/03/13 Javascript
Javascript中String的常用方法实例分析
2015/06/13 Javascript
js简单判断移动端系统的方法
2016/02/25 Javascript
微信小程序 图片等比例缩放(图片自适应屏幕)
2016/11/16 Javascript
详解nodejs 文本操作模块-fs模块(二)
2016/12/22 NodeJs
基于jQuery实现文字打印动态效果
2017/04/21 jQuery
关于react-router的几种配置方式详解
2017/07/24 Javascript
Vue实现左右菜单联动实现代码
2018/08/12 Javascript
记录一次完整的react hooks实践
2019/03/11 Javascript
vuex state中的数组变化监听实例
2019/11/06 Javascript
vue 组件内获取actions的response方式
2019/11/08 Javascript
vue中的循环对象属性和属性值用法
2020/09/04 Javascript
Python使用PIL库实现验证码图片的方法
2016/03/11 Python
Python面向对象class类属性及子类用法分析
2018/02/02 Python
python 实现对文件夹中的图像连续重命名方法
2018/10/25 Python
解决Python plt.savefig 保存图片时一片空白的问题
2019/01/10 Python
基于MATLAB和Python实现MFCC特征参数提取
2019/08/13 Python
python 实现让字典的value 成为列表
2019/12/16 Python
canvas之自定义头像功能实现代码示例
2017/09/29 HTML / CSS
时尚孕妇装:Ingrid & Isabel
2019/05/08 全球购物
如何在存储过程中使用Loop
2016/01/05 面试题
机电一体化职业规划书
2014/01/07 职场文书
大学生党员批评与自我批评
2014/09/28 职场文书
出纳工作检讨书范文
2014/12/27 职场文书
高中教师个人总结
2015/02/10 职场文书
2016暑期师德培训心得体会
2016/01/09 职场文书
《我和小伙伴》教学反思
2016/02/20 职场文书
浅谈由position属性引申的css进阶讨论
2021/05/25 HTML / CSS
阿里云服务器部署mongodb的详细过程
2021/09/04 MongoDB