redis 集群高可用调研方案

redis 集群部署

  • Redis集群的原理和搭建 - 掘金     redis集群和原理    
  • 运维派-Linux运维技术社区,Linux教程,云计算学习平台,Devops工具下载站    redis sentinel 实现集群 
  • https://my.oschina.net/xinxingegeya/blog/646641  Sentinel实现Redis集群的高可用  
  • Redis-sentinel哨兵模式集群方案配置_眼眸刻着你的微笑的技术博客_51CTO博客   Redis-sentinel哨兵模式集群方案配置
  • Redis之——搭建高可用及负载均衡的Redis_冰 河的博客-CSDN博客_redis如何实现负载均衡    Reidis Keepalived
  • 全面剖析Redis Cluster原理和应用_cdai的博客-CSDN博客_rediscluster原理      全面剖析Redis Cluster原理和应用

java -redis 集成

  • java代码中操作Redis:单机redis、集群redis(spring+redis集成)_孤天浪雨的博客-CSDN博客_java操作redis集群 java代码中操作Redis:单机redis、集群redis(spring+redis集成)
  • https://my.oschina.net/u/3786091/blog/1632316  Spring Boot+Spring Data Redis访问redis cluster
  • nredis-proxy 高性能Redis 服务中间件 - liubingsmile的个人空间 - OSCHINA - 中文开源技术交流社区  (redis 集群中间件)
  • redis集群主流架构方案分析_u011277123的博客-CSDN博客_redis 集群架构方案  redis集群主流架构方案分析

jedis client调研

 lettuce 调研  (netty 多线程客户端)

  • lettuce 4.5.0.Final API
  • https://github.com/lettuce-io/lettuce-core/wiki/Getting-started-(5.0)

jedistemplate  (spring-data-redis)   jedistemplate 是对 jedisconnection 的一个抽象封装, 1.8+的版本使用 luttuce 进行 jedis 连接封装

  • Spring Data Redis

redisson  (alibaba 等很多大公司再用)

  • https://github.com/redisson/redisson#quick-start
  • Redisson PRO - Redis Java client with ultra-fast performance (升级版)

Redisson - distributed Java objects and services (Set, Multimap, SortedSet, Map, List, Queue, BlockingQueue, Deque, BlockingDeque, Semaphore, Lock, AtomicLong, Map Reduce, Publish / Subscribe, Bloom filter, Spring Cache, Executor service, Tomcat Session Manager, Scheduler service, JCache API) on top of Redis server. State of the Art Redis client

redis 集群测试

  • redis 负载均衡 集群配置 - ayanmw - 博客园   redis 负载均衡 集群配置 +部署脚本
  • redis及集群性能测试_骨灰级菜鸟-程序猿的博客-CSDN博客_redis集群性能测试     redis及集群性能测试+运维     推荐指数 5星 
  • redis4.0、codis、阿里云redis 3种redis集群对比分析-阿里云开发者社区  redis4.0、codis、阿里云redis 3种redis集群对比分析

可能遇到的问题

  • 在现有 redis 不关的情况下,的数据迁移和数据集群分片问题
  • 现有 javar-redis 连接池的改造 pool template 
  • 多节点的配置问题 (动态添加节点的java热更新问题,)

说明

  • redis cluster 至少需要6台redis ,redis 一台master 至少有一台对应的 slave
  • redis 集群方案有 sentinel +主从  或者是 cluster 分片,
  • cluster 自动维护集群状态,故障处理,掉线主机上线等
  • sentinel 可以和 cluster 同时存在管理主机
  • ps -ef | grep redis | awk '{print $2}' | xargs kill -9   关闭一台服务器上的所有 redis

redis 集群主流架构方案

  • nginx+redis master+work
  • client+proxy+redis cluster
  • jedistemplate  jedispool

mset/mget 解决方案

  • https://my.oschina.net/u/1266221/blog/894308

商用redis 集群架构

  • 全面剖析Redis Cluster原理和应用_cdai的博客-CSDN博客_rediscluster原理
  • 360自研分布式存储系统Bada的架构设计和应用-架构-火龙果软件   360bada   https://github.com/Qihoo360?page=2 
  • redis cluster使用经验 - Redis - 数据库相关 - 深度开源   有道  redis cluster   Redis cluster 的使用经验 - Redis - 数据库相关 - 深度开源  使用经验
  • AliRedis单机180w QPS, 8台服务器构建1000w QPS Cache集群 - Redis - 数据库相关 - 深度开源     AliRedis单机180w QPS, 8台服务器构建1000w QPS Cache集群
  • Redis集群方案总结 - 简书    codis 
  • 豆瓣 Reborndb
  • Redis Cloud       Redis Enterprise   

  

优化方案

  • 近千节点的Redis Cluster高可用集群案例:优酷蓝鲸优化实战 - Redis - 服务器软件 - 深度开源    有道  800+ 节点
  • /docs/manual/scaling/   redis 官方文档
  • Redis Cloud       Redis Enterprise   

监控

  • https://github.com/projecteru/redis-ctl    芒果 tv  最近更新时间15年

中间件对比

  • codis 豌豆荚开发的 redis 中间件 go 语言,使用脚本部署, github 仍然在维护
  • http://bbs.redis.cn/forum.php?mod=viewthread&tid=2031&extra=page%3D1     predixy:一款高性能redis集群代理  https://github.com/joyieldInc/predixy

性能测试

  • Redis压力测试报告_恐龙弟旺仔的博客-CSDN博客_redis压测 .  Redis压力测试报告

集群搭建和调研过程中遇到的问题

  • redis-trib.rb 在创建集群的过程中如果不使用 create --replication 1 而是 直接使用 create  那么都是主节点,也就是说集群可以没有从节点
  • redisson 会根据 cluster nodes 的返回结果,使用 map 设置 cluster node
  • redission 分为 clusterserver, replicationserver,mastersalveserver  模式.不同的模式对应不同的 redis 集群架构
  • redission 中的 map-reduce 在 redisson  3.9.0 版本中存在线程 await 的状况
  • redission 在进行编译官方 github 的 源代码的时候,出现在-- realase help 1 的错误的解决方案是 将 build 中将 release 标签注释掉
  • redisson 默认使用 json 设置字符串格式,但是可以通过 codsec 进行更改 decode 和 encode 格式
  • redisson 中使用 batch 命令进行, mset 的操作.
  • redis-trib.rb 在搭建集群的过程中,即使在同一台机器上也要使用 ip 地址+port 不是使用 127.0.0.1,这样子方便器群迁移
  • redis 可以在运行中设置 config set protect no 开启 允许远程连接
  • vim 在 mac 上在 user 目录下没有 .vimrc 这个文件
  • vim 在 mac 上默认是 readonly
  • io.netty.util.internal.logging.InternalLoggerFactory - Using SLF4J as the default logging framework   netty 默认的日志框架是 slf4j ,只有在 pom 文件中引入 slf4j 的包才能在控制台打印日志
  • redisson 和 lettuce 默认都使用了 pool, 默认建立5个连接
  • redisson 和 lettuce 都是使用 cluster nodes 进行集群探活的


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部