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 相关文章推荐
Classes and Objects in PHP5-面向对象编程 [1]
Oct 09 PHP
php download.php实现代码 跳转到下载文件(response.redirect)
Aug 26 PHP
php获取mysql数据库中的所有表名的代码
Apr 23 PHP
php 下载保存文件保存到本地的两种实现方法
Aug 12 PHP
php使用百度ping服务代码实例
Jun 19 PHP
PHP多线程之内部多线程实例分析
Mar 09 PHP
php连接oracle数据库的方法(测试成功)
May 26 PHP
浅谈ThinkPHP中initialize和construct的区别
Apr 01 PHP
PHP简单读取xml文件的方法示例
Apr 20 PHP
php命令行写shell实例详解
Jul 19 PHP
Laravel 5.2 文档 数据库 ―― 起步介绍
Oct 21 PHP
laravel框架分组控制器和分组路由实现方法示例
Jan 25 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 常用函数库和一些实用小技巧
2009/01/01 PHP
php生成zip压缩文件的方法详解
2013/06/09 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(四)
2014/06/23 PHP
thinkphp中html:list标签传递多个参数实例
2014/10/30 PHP
window.onload 加载完毕的问题及解决方案(下)
2009/07/09 Javascript
一个js写的日历(代码部分网摘)
2009/09/20 Javascript
Extjs入门之动态加载树代码
2010/04/09 Javascript
Jquery之美中不足小结
2011/02/16 Javascript
让人蛋疼的JavaScript语法特性
2014/09/30 Javascript
fckeditor粘贴Word时弹出窗口取消的方法
2014/10/30 Javascript
基于javascript实现仿百度输入框自动匹配功能
2016/01/03 Javascript
jQuery easyui刷新当前tabs的方法
2016/09/23 Javascript
JS实现仿PS的调色板效果完整实例
2016/12/21 Javascript
通过npm引用的vue组件使用详解
2017/03/02 Javascript
javascript将url解析为json格式的两种方法
2017/08/18 Javascript
bootstrap table实现点击翻页功能 可记录上下页选中的行
2017/09/28 Javascript
详解Vue CLI3配置解析之css.extract
2018/09/14 Javascript
详解webpack 最简打包结果分析
2019/02/20 Javascript
javascript使用canvas实现饼状图效果
2020/09/08 Javascript
js实现类选择器和name属性选择器的示例步骤
2021/02/07 Javascript
[38:23]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS LGD第一场
2014/05/24 DOTA
Python 字符串操作实现代码(截取/替换/查找/分割)
2013/06/08 Python
详解Python中的装饰器、闭包和functools的教程
2015/04/02 Python
python实现网站的模拟登录
2016/01/04 Python
Django框架静态文件使用/中间件/禁用ip功能实例详解
2019/07/22 Python
浅谈Html5页面打开app的一些思考
2020/03/30 HTML / CSS
AmazeUI 按钮交互的实现示例
2020/08/24 HTML / CSS
Moda Operandi官网:美国奢侈品电商,海淘秀场T台同款
2020/05/26 全球购物
历史教育专业个人求职信
2013/12/13 职场文书
应聘教师求职信
2014/07/19 职场文书
2014物价局民主生活会对照检查材料思想汇报
2014/09/24 职场文书
2014幼儿园大班工作总结
2014/11/10 职场文书
教你怎么用Python实现多路径迷宫
2021/04/29 Python
Win11黑色桌面背景怎么办?Win11黑色壁纸解决方法汇总
2022/04/05 数码科技
MySQL数据库中的锁、解锁以及删除事务
2022/05/06 MySQL
Windows Server 2022 超融合部署(图文教程)
2022/06/25 Servers