laravel项目利用twemproxy部署redis集群的完整步骤


Posted in PHP onMay 11, 2018

前言

twemproxy是twitter开发的一个redis代理proxy,Twemproxy可以把多台redis server当作一台使用,开发人员通过twemproxy访问这些redis servers 的时候不用关心到底去哪一台redis server读取k-v数据或者把k-v数据更新到数据集中,也解决了多台服务器中redis共享的问题。如果借助于redis的master-slave replication,能保证在任何一台redis不能工作情况下,仍然能够保证能够存在一个整个的数据集。

Twemproxy有何用途呢?它可以:

  • 通过代理的方式减少缓存服务器的连接数
  • 自动在多台缓存服务器间共享数据
  • 通过不同的策略与散列函数支持一致性散列
  • 通过配置的方式禁用失败的结点
  • 运行在多个实例上,客户端可以连接到首个可用的代理服务器
  • 支持请求的流式与批处理,因而能够降低来回的消耗

下面介绍一下twemproxy的安装和配置:

1、安装twemproxy前需要先安装m4、autoconf、automake、libtool、gcc,不然会报各种错

安装m4

wget http://mirrors.kernel.org/gnu/m4/m4-1.4.13.tar.gz
&& tar -xzvf m4-1.4.13.tar.gz
&& cd m4-1.4.13
&& ./configure ?prefix=/usr/local 
make && make install

安装autoconf、automake、libtool、gcc

yum -y install autoconf automake libtool gcc

2、安装twemproxy

git clone https://github.com/twitter/twemproxy.git
autoreconf -fvi #生成configure文件
.configure
make && make install

 

3、编辑配置文件

vim conf/nutcracker.yml  

alpha:
 listen: 127.0.0.1:22121 #监听端口
 hash: fnv1a_64  #key值hash算法,默认fnv1a_64
 distribution: ketama  #分布算法 
#ketama一致性hash算法;modula非常简单,就是根据key值的hash值取模;random随机分布
 auto_eject_hosts: true  #摘除后端故障节点 
 redis: true   #是否是redis缓存,默认是false
 timeout: 400   #代理与后端超时时间,毫秒
 server_retry_timeout: 200000 #摘除故障节点后重新连接的时间,毫秒
 server_failure_limit: 1  #故障多少次摘除
 servers:
 - 172.16.175.145:6379:1 
 - 172.16.175.122:6379:1

4、更改redis配置文件

redis监听的ip和端口要与twemproxy对应(因为我只是在其中的一台机器上装了twemproxy,如果两台都装的话可以不用改)

分别更改两台服务器redis.conf中的bind选项,将127.0.0.1改为本例中的172.16.175.145和172.16.175.122

5、开启twemproxy

nutcracker -t -c /twemproxy/conf/nutcracker.yml 
#测试配置文件 如果不加-c 默认是检测conf/nutcracker.yml
nutcracker -d -c /twemproxy/conf/nutcracker.yml -p -o /data/logs/twemproxy/redisproxy.log 
#启动并将日志记录到/data/logs/twemproxy/redisproxy.log

6、将项目中的redis连接改为twemproxy的ip和端口

我项目使用的是laravel,只需将.env中的REDIS_HOST和REDIS_PORT设置上面的为127.0.0.1和22121

注意,还需要将config文件夹下的database.php中的redis配置里的 'database' => 0注释掉,predis 对这个配置默认执行 select 操作,会导致连接错误。

laravel项目利用twemproxy部署redis集群的完整步骤 

做一下redis的读写测试,不出意外的话,twemproxy就可以正常使用啦!

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

PHP 相关文章推荐
php面向对象全攻略 (八)重载新的方法
Sep 30 PHP
基于Windows下Apache PHP5.3.1安装教程
Jan 08 PHP
在php中判断一个请求是ajax请求还是普通请求的方法
Jun 28 PHP
114啦源码(114la)不能生成地方房产和地方报刊问题4级页面0字节的解决方法
Jan 12 PHP
PHP5全版本绕过open_basedir读文件脚本漏洞详细介绍
Jan 20 PHP
php实现的通用图片处理类
Mar 24 PHP
php实现搜索一维数组元素并删除二维数组对应元素的方法
Jul 06 PHP
WordPress后台中实现图片上传功能的实例讲解
Jan 11 PHP
微信公众号开发客服接口实例代码
Oct 21 PHP
thinkPHP自定义类实现方法详解
Nov 30 PHP
Laravel中的Blade模板引擎示例详解
Oct 10 PHP
php两点地理坐标距离的计算方法
Dec 29 PHP
PHP实现搜索时记住状态的方法示例
May 11 #PHP
PHP实现压缩图片尺寸并转为jpg格式的方法示例
May 10 #PHP
PHP使用PDO抽象层获取查询结果的方法示例
May 10 #PHP
PHP分页显示的方法分析【附PHP通用分页类】
May 10 #PHP
ThinkPHP防止重复提交表单的方法实例分析
May 10 #PHP
PHP实现用户登录的案例代码
May 10 #PHP
yii2多图上传组件的使用教程
May 10 #PHP
You might like
php MYSQL 数据备份类
2009/06/19 PHP
PHP随机数生成代码与使用实例分析
2011/04/08 PHP
php使用curl详细解析及问题汇总
2016/08/11 PHP
thinkphp实现分页显示功能
2016/12/03 PHP
Laravel如何同时连接多个数据库详解
2019/08/13 PHP
网页上的Javascript编辑器和代码格式化
2010/04/25 Javascript
jquery ajax 同步异步的执行 return值不能取得的解决方案
2012/01/08 Javascript
js写的评论分页(还不错)
2013/12/23 Javascript
php is_numberic函数造成的SQL注入漏洞
2014/03/10 Javascript
node.js中的fs.fsyncSync方法使用说明
2014/12/15 Javascript
jQuery操作DOM之获取表单控件的值
2015/01/23 Javascript
jQuery绑定事件on()与弹窗的简要概述
2016/04/27 Javascript
详细探究ES6之Proxy代理
2016/07/22 Javascript
微信js-sdk预览图片接口及从拍照或手机相册中选图接口用法示例
2016/10/13 Javascript
Bootstrap CSS组件之下拉菜单(dropdown)
2016/12/17 Javascript
js封装tab标签页实例分享
2016/12/19 Javascript
javascript中数组的常用算法深入分析
2019/03/12 Javascript
[03:58]2014DOTA2国际邀请赛 龙宝赛后解密DK获胜之道
2014/07/14 DOTA
Python实现破解12306图片验证码的方法分析
2017/12/29 Python
Python设计模式之中介模式简单示例
2018/01/09 Python
简单了解python单例模式的几种写法
2019/07/01 Python
Python如何把多个PDF文件合并代码实例
2020/02/13 Python
Python tornado上传文件的功能
2020/03/26 Python
如何通过安装HomeBrew来安装Python3
2020/12/23 Python
Fairyseason:为个人和批发商提供女装和配件
2017/03/01 全球购物
Antler英国官网:购买安特丽行李箱、拉杆箱
2019/08/25 全球购物
ellesse美国官方商店:意大利高级运动服品牌
2019/10/29 全球购物
构造方法和其他方法的区别
2016/04/26 面试题
法学研究生自我鉴定范文
2013/12/04 职场文书
自荐书范文
2013/12/08 职场文书
开工仪式策划方案
2014/05/23 职场文书
护校行动方案
2014/05/31 职场文书
《藏戏》教学反思
2016/02/23 职场文书
党员公开承诺书2016
2016/03/24 职场文书
演讲稿:态度决定一切
2019/04/02 职场文书
JavaScript原型链中函数和对象的理解
2022/06/16 Javascript