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 相关文章推荐
php5 mysql分页实例代码
Apr 10 PHP
PHP5中使用DOM控制XML实现代码
May 07 PHP
PHP用SAX解析XML的实现代码与问题分析
Aug 22 PHP
PHP代码网站如何防范SQL注入漏洞攻击建议分享
Mar 01 PHP
PHP基础学习之流程控制的实现分析
Apr 28 PHP
解决FastCGI 进程超过了配置的活动超时时限的问题
Jul 03 PHP
php中使用session_set_save_handler()函数把session保存到MySQL数据库实例
Nov 06 PHP
在Linux系统的服务器上隐藏PHP版本号的方法
Jun 06 PHP
thinkPHP中验证码的简单使用方法
Dec 26 PHP
使用PHPExcel实现数据批量导出为excel表格的方法(必看)
Jun 09 PHP
PHP校验15位和18位身份证号的类封装
Nov 07 PHP
PHP防止sql注入小技巧之sql预处理原理与实现方法分析
Dec 13 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
PHILIPS AE3805收音机的分析打磨
2021/03/02 无线电
从PHP $_SERVER相关参数判断是否支持Rewrite模块
2013/09/26 PHP
php获取url参数方法总结
2014/11/13 PHP
浅谈php://filter的妙用
2019/03/05 PHP
jQuery EasyUI API 中文文档 - Pagination分页
2011/09/29 Javascript
使用UglifyJS合并/压缩JavaScript的方法
2012/03/07 Javascript
firefox下jquery iframe刷新页面提示会导致重复之前动作
2012/12/17 Javascript
nodejs中的fiber(纤程)库详解
2015/03/24 NodeJs
jquery.validate使用时遇到的问题
2015/05/25 Javascript
JavaScript判断undefined类型的正确方法
2015/06/30 Javascript
javascript字符串循环匹配实例分析
2015/07/17 Javascript
用js实现博客打赏功能
2016/10/24 Javascript
H5移动端图片压缩上传开发流程
2016/11/09 Javascript
微信小程序实现图片懒加载的示例代码
2017/12/13 Javascript
浅谈开发eslint规则
2018/10/01 Javascript
微信二次分享报错invalid signature问题及解决方法
2019/04/01 Javascript
JavaScript实现烟花绽放动画效果
2020/08/04 Javascript
Vue中登录验证成功后保存token,并每次请求携带并验证token操作
2020/09/08 Javascript
[00:21]DOTA2亚洲邀请赛 Logo演绎
2015/02/07 DOTA
Python通过90行代码搭建一个音乐搜索工具
2015/07/29 Python
Python json 错误xx is not JSON serializable解决办法
2017/03/15 Python
python调用百度语音识别api
2018/08/30 Python
实现Python与STM32通信方式
2019/12/18 Python
浅谈tensorflow中Dataset图片的批量读取及维度的操作详解
2020/01/20 Python
python 连续不等式语法糖实例
2020/04/15 Python
使用Keras 实现查看model weights .h5 文件的内容
2020/06/09 Python
CSS3实现复选框动画特效示例代码
2016/09/27 HTML / CSS
HTML5 视频播放(video),JavaScript控制视频的实例代码
2018/10/08 HTML / CSS
奥巴马就职演讲稿
2014/05/15 职场文书
现场活动策划方案
2014/08/22 职场文书
协会周年庆活动方案
2014/08/26 职场文书
党的群众路线教育实践活动查摆问题及整改措施
2014/10/10 职场文书
罚站检讨书
2015/01/29 职场文书
北京故宫导游词
2015/01/31 职场文书
员工工作表现自我评价
2015/03/06 职场文书
解决MySQL报“too many connections“错误
2022/04/19 MySQL