• 售前

  • 售后

热门帖子
入门百科

laravel项目利用twemproxy部署redis集群的完备步调

[复制链接]
晴空万里659 显示全部楼层 发表于 2021-10-25 20:46:13 |阅读模式 打印 上一主题 下一主题
前言
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
  1. wget http://mirrors.kernel.org/gnu/m4/m4-1.4.13.tar.gz
  2. && tar -xzvf m4-1.4.13.tar.gz
  3. && cd m4-1.4.13
  4. && ./configure –prefix=/usr/local
  5. make && make install
复制代码
安装autoconf、automake、libtool、gcc
  1. yum -y install autoconf automake libtool gcc
复制代码
2、安装twemproxy
  1. git clone https://github.com/twitter/twemproxy.git
  2. autoreconf -fvi #生成configure文件
  3. .configure
  4. make && make install
复制代码

3、编辑设置文件
vim conf/nutcracker.yml  
  1. alpha:
  2. listen: 127.0.0.1:22121 #监听端口
  3. hash: fnv1a_64  #key值hash算法,默认fnv1a_64
  4. distribution: ketama  #分布算法
  5. #ketama一致性hash算法;modula非常简单,就是根据key值的hash值取模;random随机分布
  6. auto_eject_hosts: true  #摘除后端故障节点
  7. redis: true   #是否是redis缓存,默认是false
  8. timeout: 400   #代理与后端超时时间,毫秒
  9. server_retry_timeout: 200000 #摘除故障节点后重新连接的时间,毫秒
  10. server_failure_limit: 1  #故障多少次摘除
  11. servers:
  12. - 172.16.175.145:6379:1
  13. - 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
  1. nutcracker -t -c /twemproxy/conf/nutcracker.yml
  2. #测试配置文件 如果不加-c 默认是检测conf/nutcracker.yml
复制代码
  1. nutcracker -d -c /twemproxy/conf/nutcracker.yml -p -o /data/logs/twemproxy/redisproxy.log
  2. #启动并将日志记录到/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 操作,会导致毗连错误。

做一下redis的读写测试,不出不测的话,twemproxy就可以正常使用啦!
总结
以上就是这篇文章的全部内容了,希望本文的内容对各人的学习或者工作具有一定的参考学习价值,假如有疑问各人可以留言交流,谢谢各人对脚本之家的支持。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作