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中使用Oracle数据库(1)
Oct 09 PHP
信用卡效验程序
Oct 09 PHP
php常用Stream函数集介绍
Jun 24 PHP
采用header定义为文件然后readfile下载(隐藏下载地址)
Jan 31 PHP
PHP5各个版本的新功能和新特性总结
Mar 16 PHP
Zend Framework页面缓存实例
Jun 25 PHP
php获取网页上所有链接的方法
Apr 03 PHP
php实现阿拉伯数字和罗马数字相互转换的方法
Apr 17 PHP
PHP解耦的三重境界(浅谈服务容器)
Mar 13 PHP
PHP 7.0新增加的特性介绍
Jun 08 PHP
php-fpm开启状态统计的方法详解
Jun 23 PHP
php 的多进程操作实践案例分析
Feb 28 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日期处理函数 整型日期格式
2011/01/12 PHP
php上传文件中文文件名乱码的解决方法
2013/11/01 PHP
yii2 页面底部加载css和js的技巧
2016/04/21 PHP
Laravel5.1 框架数据库操作DB运行原生SQL的方法分析
2020/01/07 PHP
让你的PHP,APACHE,NGINX支持大文件上传
2021/03/09 PHP
addRule在firefox下的兼容写法
2006/11/30 Javascript
锋利的jQuery 要点归纳(三) jQuery中的事件和动画(上:事件篇)
2010/03/24 Javascript
JavaScript与Image加载事件(onload)、加载状态(complete)
2011/02/14 Javascript
alert和confirm功能介绍
2014/05/21 Javascript
jquery弹窗插件colorbox绑定动态生成元素的方法
2014/06/20 Javascript
JS实现的通用表单验证插件完整实例
2015/08/20 Javascript
详解JavaScript数组的操作大全
2015/10/19 Javascript
在JS中a标签加入单击事件屏蔽href跳转页面
2016/12/16 Javascript
JS实现购物车特效
2017/02/02 Javascript
Vue.js中轻松解决v-for执行出错的三个方案
2017/06/09 Javascript
如何将你的AngularJS1.x应用迁移至React的方法
2018/02/01 Javascript
vue获取当前激活路由的方法
2018/03/17 Javascript
Angular HMR(热模块替换)功能实现方法
2018/04/04 Javascript
详解angular2.x创建项目入门指令
2018/10/11 Javascript
LayUi使用switch开关,动态的去控制它是否被启用的方法
2019/09/21 Javascript
pyqt4教程之实现半透明的天气预报界面示例
2014/03/02 Python
使用python绘制常用的图表
2016/08/27 Python
Django objects.all()、objects.get()与objects.filter()之间的区别介绍
2017/06/12 Python
win7下python3.6安装配置方法图文教程
2018/07/31 Python
python中pivot()函数基础知识点
2021/01/03 Python
男女钓鱼靴和甲板鞋:XTRATUF
2021/01/09 全球购物
小饰品店的创业计划书范文
2013/12/28 职场文书
品酒会策划方案
2014/05/26 职场文书
委托书格式
2014/08/01 职场文书
民主生活会对照检查材料(统计局)
2014/09/21 职场文书
企业催款函范本
2015/06/24 职场文书
幼儿园心得体会范文
2016/01/21 职场文书
高中数学教学反思范文
2016/02/18 职场文书
2016年世界人口日宣传活动总结
2016/04/05 职场文书
医生行业员工的辞职信
2019/06/24 职场文书
导游词之珠海轮廓
2019/10/25 职场文书