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 5.0创建图形的巧妙方法
Oct 12 PHP
用PHP读取和编写XML DOM的实现代码
Feb 03 PHP
PHP中MVC模式的模板引擎开发经验分享
Mar 23 PHP
php实现多张图片上传加水印技巧
Apr 18 PHP
神盾加密解密教程(二)PHP 神盾解密
Jun 08 PHP
yii的CURD操作实例详解
Dec 04 PHP
PHP文件上传之多文件上传的实现思路
Jan 27 PHP
Yii2实现中国省市区三级联动实例
Feb 08 PHP
浅析PHP数据导出知识点
Feb 17 PHP
PHP attributes()函数讲解
Feb 03 PHP
Laravel框架使用技巧之使用url()全局函数返回前一个页面的地址方法详解
Apr 06 PHP
PHP 计算至少是其他数字两倍的最大数的实现代码
May 26 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
asp和php下textarea提交大量数据发生丢失的解决方法
2008/01/20 PHP
PHP基于数组实现的分页函数实例
2014/08/20 PHP
PHP类的封装与继承详解
2015/09/29 PHP
jQuery 源码分析笔记(5) jQuery.support
2011/06/19 Javascript
jQuery操作checkbox选择(list/table)
2013/04/07 Javascript
html的DOM中Event对象onabort事件用法实例
2015/01/21 Javascript
JavaScript中setFullYear()方法的使用详解
2015/06/11 Javascript
jQuery实现手机自定义弹出输入框
2016/06/13 Javascript
js改变style样式和css样式的简单实例
2016/06/28 Javascript
JavaScript常用正则函数用法示例
2017/01/23 Javascript
AngularJs 延时器、计时器实例代码
2017/09/16 Javascript
canvas绘制爱心的几种方法总结(推荐)
2017/10/31 Javascript
JS 仿支付宝input文本输入框放大组件的实例
2017/11/14 Javascript
Vue 中使用vue2-highcharts实现top功能的示例
2018/03/05 Javascript
详解封装基础的angular4的request请求方法
2018/06/05 Javascript
webpack4 升级迁移的实现
2018/09/12 Javascript
node.js使用express框架进行文件上传详解
2019/03/03 Javascript
微信小程序-可移动菜单的实现过程详解
2019/06/24 Javascript
JS实现简单打字测试
2020/06/24 Javascript
解决vue addRoutes不生效问题
2020/08/04 Javascript
详解Vue的组件中data选项为什么必须是函数
2020/08/17 Javascript
Python常见字符串操作函数小结【split()、join()、strip()】
2018/02/02 Python
使用python实现下载我们想听的歌曲,速度超快
2020/07/09 Python
Python如何解除一个装饰器
2020/08/07 Python
CSS3 真的会替代 SCSS 吗
2021/03/09 HTML / CSS
Staples加拿大官方网站:办公用品一站式采购
2016/09/25 全球购物
阿迪达斯墨西哥官方网站:adidas墨西哥
2017/11/03 全球购物
Quiksilver荷兰官方网站:冲浪和滑雪板
2019/11/16 全球购物
瑞士最大的图书贸易公司:Orell Füssli
2019/12/28 全球购物
环境工程毕业生自荐信
2013/11/17 职场文书
法律专业推荐信范文
2013/11/29 职场文书
运动会宣传口号
2014/06/09 职场文书
法定代表人授权委托书
2014/09/19 职场文书
2014年个人年终总结
2015/03/09 职场文书
2015年技术工作总结范文
2015/04/20 职场文书
《走遍天下书为侣》教学反思
2016/02/22 职场文书