1、自动化管理
2、自动化监控
3、自动化运维
4、redis开源工具介绍 4.1 redis实时数据迁移工具
1) 在线实时迁移
2) redis/twemproxy/cluster 异构集群之间相互迁移。
3)github: https://github.com/vipshop/redis-migrate-tool
4.2 redis cluster管理工具
1)批量更改集群参数
2)clusterrebalance
3)很多功能,具体看github :
https://github.com/deep011/redis-cluster-tool
4.3 多线程版本Twemproxy
1)大幅度提升单个proxy的吞吐量,线程数可配置。
2)压测情况下,20线程达到50w+qps,最优6线程达到29w。
3)完全兼容twemproxy。
4)github:
https://github.com/vipshop/twemproxies
4.4 在开发的中的多线redis
1)Github:
https://github.com/vipshop/vire
2)欢迎一起参与协作开发,这是我们在开发中的项目,希望大家能够提出好的意见。
问答(陈群和申政解答): 问题1:版本更新,对数据有没有影响?
答:我们重启升级从2.8.17到3.0.3/3.0.7没有任何的异常。3.0到3.2我们目前还没有实际升级操作过。
问题2:请问下sentinel模式下有什么好的读写分离的方法吗
答:我们没有读写分离的使用,读写都在maste;集群太多,管理复杂;此外,我们也做了分片,没有做读写分离的必要;且我们几乎是一主一从节点配置
问题3:redis的fork主要是为了rdb吧,去掉是为了什么呢
答:fork不友好
问题4:如果不用fork,是怎么保证rdb快照是精确的,有其他cow机制么
答:可以通过其他方法,这个还在探究阶段,但目标是不用fork
问题5:就是redis cluster模式下批量操作会有很多问题,可是不批量操作又会降低业务系统的性能
答:确实存在这方面的问题,这方面支持需要客户端的支持,但是jedis的作者也不大愿意支持pipeline或者一些multi key操作。如果是大批量的操作,可以用多线程提高客户端的吞吐量。
- CMDB管理所有的资源信息。
- Agent方式上报硬软件信息。
- 标准化基础设置。机型、OS内核参数、软件版本。
- Puppet管理和下发标准化的配置文件、公用的任务计划、软件包、运维工具。
- 资源申请自助服务。
2、自动化监控
- zabbix作为主要的监控数据收集工具。
- 开发实时性能dashboard,对开发提供查询。
- 单机部署多个redis,借助于zabbix discovery。
- 开发DB响应时间监控工具Titan。
- 基本思想来源于pt-query-degest,通过分析tcp应答报文产生日志。flume agent + kafka收集,spark实时计算,hbase作为存储。最终得到hotquery/slowquery,request source等性能数据。
3、自动化运维
- 资源申请自助服务化。
- 如果申请合理,一键即可完成cluster集群部署。
能不动手的,就坚决不动手,另外,监控数据对开发开发很重要,让他们了解自己服务性能,有时候开发会更早发现集群的一些异常行为,比如数据不过期这种问题,运维就讲这么多了,后面是干货中的干货,由deep同学开发的几个实用工具。
4、redis开源工具介绍 4.1 redis实时数据迁移工具
1) 在线实时迁移
2) redis/twemproxy/cluster 异构集群之间相互迁移。
3)github: https://github.com/vipshop/redis-migrate-tool
4.2 redis cluster管理工具
1)批量更改集群参数
2)clusterrebalance
3)很多功能,具体看github :
https://github.com/deep011/redis-cluster-tool
4.3 多线程版本Twemproxy
1)大幅度提升单个proxy的吞吐量,线程数可配置。
2)压测情况下,20线程达到50w+qps,最优6线程达到29w。
3)完全兼容twemproxy。
4)github:
https://github.com/vipshop/twemproxies
4.4 在开发的中的多线redis
1)Github:
https://github.com/vipshop/vire
2)欢迎一起参与协作开发,这是我们在开发中的项目,希望大家能够提出好的意见。
问答(陈群和申政解答): 问题1:版本更新,对数据有没有影响?
答:我们重启升级从2.8.17到3.0.3/3.0.7没有任何的异常。3.0到3.2我们目前还没有实际升级操作过。
问题2:请问下sentinel模式下有什么好的读写分离的方法吗
答:我们没有读写分离的使用,读写都在maste;集群太多,管理复杂;此外,我们也做了分片,没有做读写分离的必要;且我们几乎是一主一从节点配置
问题3:redis的fork主要是为了rdb吧,去掉是为了什么呢
答:fork不友好
问题4:如果不用fork,是怎么保证rdb快照是精确的,有其他cow机制么
答:可以通过其他方法,这个还在探究阶段,但目标是不用fork
问题5:就是redis cluster模式下批量操作会有很多问题,可是不批量操作又会降低业务系统的性能
答:确实存在这方面的问题,这方面支持需要客户端的支持,但是jedis的作者也不大愿意支持pipeline或者一些multi key操作。如果是大批量的操作,可以用多线程提高客户端的吞吐量。
本文作者:geelou
本文来自云栖社区合作伙伴rediscn,了解相关信息可以关注redis.cn网站。