redis(10)、redis集群twemproxy
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了redis(10)、redis集群twemproxy,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2719字,纯文字阅读大概需要4分钟。
内容图文
-
速度快
-
轻量级
-
维护持久的服务器连接
-
在后台低消耗缓存redis数据库的连接数
-
启用请求和响应的管道
-
支持代理到多个服务器
-
同时支持多个服务器池
-
多个服务器自动分享数据
-
实现了完整的 memcached ascii 和 redis 协议.
-
服务器池配置简单,通过一个 YAML 文件即可
-
支持多个哈希模式,包括一致的哈希和分布
-
可配置在失败时禁用某个节点
-
通过统计监测端口的可观察性
-
支持 Linux, *BSD, OS X and Solaris (SmartOS)
wget https://github.com/twitter/twemproxy/archive/master.zip unzip master.zip cd twemproxy autoreconf -fvi ./configure make make install?
redis1: listen: 127.0.0.1:8000 #监听的端口 redis: true #是否是Redis的proxy hash: fnv1a_64 #支持的hash算法 distribution: ketama #具体的算法 auto_eject_hosts: true #是否在结点无法响应的时候临时摘除结点 timeout: 4000 #超时时间(毫秒) server_retry_timeout: 2000 #重试的时间(毫秒) server_failure_limit: 3 #结点故障多少次就算摘除掉 servers: #下面表示所有的Redis节点(IP:端口号:权重) - 127.0.0.1:9001:1 - 127.0.0.1:9002:1 - 127.0.0.1:9003:1?
(4)、启动twemproxy
src/nutcracker -d conf/nutcracker.yml
?
(5)、使用redis-cli测试
测试时发现,查看9001,9002,9003的aof文件时,不同的数据会分配到端口redis上,这个也正是基于一致性哈希算法,数据会分配到不同的节点中。也正是实现了数据分片。
二、nutcracker用法与命令选项
Options:
-h, –help ? ? ? ? ? ? ? ? ? ? ? ?: 查看帮助文档,显示命令选项
-V, –version ? ? ? ? ? ? ? ? ? : 查看nutcracker版本
-t, –test-conf ? ? ? ? ? ? ? ? ?: 测试配置脚本的正确性
-d, –daemonize ? ? ? ? ? ? ?: 以守护进程运行
-D, –describe-stats ? ? ? ? : 打印状态描述
-v, –verbosity=N ? ? ? ? ? ?: 设置日志级别 (default: 5, min: 0, max: 11)
-o, –output=S ? ? ? ? ? ? ? ? : 设置日志输出路径,默认为标准错误输出 (default: stderr)
-c, –conf-file=S ? ? ? ? ? ? ? : 指定配置文件路径 (default: conf/nutcracker.yml)
-s, –stats-port=N ? ? ? ? ? ?: 设置状态监控端口,默认22222 (default: 22222)
-a, –stats-addr=S ? ? ? ? ? ?: 设置状态监控IP,默认0.0.0.0 (default: 0.0.0.0)
-i, –stats-interval=N ? ? ? : 设置状态聚合间隔 (default: 30000 msec)
-p, –pid-file=S ? ? ? ? ? ? ? ? : 指定进程pid文件路径,默认关闭 (default: off)
-m, –mbuf-size=N ? ? ? ? ?: 设置mbuf块大小,以bytes单位 (default: 16384 bytes)
配置yml文件之后
nutcracker -t nutcracker.yml ?可以检测配置文件是否正确
三、twemproxy缺点
- 虽然可以动态移除节点,但该移除节点的数据就丢失了。?
- redis集群动态增加节点的时候,twemproxy不会对已有数据做重分布.maillist里面作者说这个需要自己写个脚本实现?
- 性能上的损耗(其实作为代理 ?必定会有损耗, twemproxy损耗属于很小的级别了)
- 不支持针对多个值的操作,比如取sets的子交并补等(MGET 和 DEL 除外)?
- 不支持Redis的事务操作?
- 出错提示还不够完善?
- twemproxy缺点中,动态移除不可用的节点,但是该节点的数据丢失了,这个缺点是最致命的,造成了CAP中的A缺失,可用性丢失,最好每个节点后面跟一个从节点,使用Keepalived+VIP,可以故障漂移,从节点自动升级为主节点。保证了高可用性。
- 性能会稍微有些丢失,既然是代理就是没办法避免的。
- 不能动态增加节点、删除节点,这个还要运维自行实现了,重启集群,不过这种操作本身也最好需要重启,分配新的集群集群。
原文:http://haoran-10.iteye.com/blog/2264084
内容总结
以上是互联网集市为您收集整理的redis(10)、redis集群twemproxy全部内容,希望文章能够帮你解决redis(10)、redis集群twemproxy所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。