前言

高并发十分考验架构师功底,它也是分布式架构设计中必须考虑的因素之一。要知道,光靠服务器堆是没有出路的。

想看看大牛是怎么面对高并发的?想知道BATJ大厂是怎么设计高可用架构的?这里有可参考的实践案例,干货满满,或许能对你有所启发。

Redis常用的数据类型

Redis的五种常用的数据类型分别是:String、Hash、List、Set和Sorted set

Redis的使用场景

1.Counting(计数)
2.展示最近、最热、点击率最高、活跃度最高等等条件的top list
3.用户最近访问记录也是redis list的很好应用场景
4.通过list的lpop及lpush接口进行队列的写入和消费
5.Redis 的Lua的功能扩展实际给Redis带来了更多的应用场景,你可以编写若干command组合作为一个小型的非阻塞事务或者更新逻辑
6.Redis提供的主从数据同步功能,其实是对cache的一个强有力功能扩展

小结

如此多的应用无非离不开Redis的所有特性

揭开Redis的神秘面纱

Redis是一个开源(KEY-VALUE键值对),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理。采用单进程单线程模型,并发能力强大,是当前互联网架构中主流的分布式缓存工具。

Redis高性能缓存架构设计

1.架构设计

由于redis是单点,项目中需要使用,必须自己实现分布式。基本架构图如下所示:

2.分布式实现

通过key做一致性哈希,实现key对应redis结点的分布。

一致性哈希的实现:

hash值计算:通过支持MD5与MurmurHash两种计算方式,默认是采用MurmurHash,高效的hash计算。

一致性的实现:通过java的TreeMap来模拟环状结构,实现均匀分布

3.client的选择

对于jedis修改的主要是分区模块的修改,使其支持了跟据BufferKey进行分区,跟据不同的redis结点信息,可以初始化不同的ShardInfo,同时也修改了JedisPool的底层实现,使其连接pool池支持跟据key,value的构造方法,跟据不同ShardInfos,创建不同的jedis连接客户端,达到分区的效果,供应用层调用

4.模块的说明

脏数据处理模块,处理失败执行的缓存操作。

屏蔽监控模块,对于jedis操作的异常监控,当某结点出现异常可控制redis结点的切除等操作。

整个分布式模块通过hornetq,来切除异常redis结点。对于新结点的增加,也可以通过reload方法实现增加。(此模块对于新增结点也可以很方便实现)

在这里分享一位阿里的架构师朋友他录制的【BAT常见Redis场景设计实战】专题视频,对于面试中的难点-Redis的高性能设计这块,是很好的补充。

视频内容如下:

1,微博关系设计实战;
2,微信朋友圈设计实战;
3,淘宝购物车设计实战;
4,热搜排名设计等.

如何获取免费架构学习资料?

资料获取方式:点击下方传送门

Java学习、面试;文档、视频资源免费获取

由于篇幅原因,就不多做展示了,需要获取更全面的资料,或专题视频,可以点击下方传送门

Java学习、面试;文档、视频资源免费获取

Redis一通百通~P8架构师带你玩转Redis高性能缓存设计实战相关推荐

  1. 阿里P8架构师谈:Dubbo的详细介绍、设计思路、以及4大适用场景

    Dubbo是什么? Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案. 简单的说,dubbo就是个服务框架,如果没有分布式的需求,其实是不需要用 ...

  2. 阿里P8架构师谈:数据库、JVM、缓存、SQL等性能调优方法和原则

    编辑 性能优化基本是BAT等一线互联网公司程序员必备的技能,以下为大家完整揭晓性能完整的优化方案和方法:包含web网站调优.数据库.JVM调优.架构调优等方案. 第一:Web网站调优 1.尽可能减少H ...

  3. 架构师带你玩转分布式锁

    大多数互联网系统都是分布式部署的,分布式部署确实能带来性能和效率上的提升,但为此,我们就需要多解决一个分布式环境下,数据一致性的问题. 当某个资源在多系统之间,具有共享性的时候,为了保证大家访问这个资 ...

  4. 阿里P8架构师20年经验总结成微服务设计企业架构转型之道笔记

    前言 本文涉及两个方面的知识体系,即企业架构知识体系和软件架构知识体系. 企业架构和软件架构虽然都与IT相关,但其知识体系是完全不同的两个领域.一般而言,搞企业架构的人士不明白软件架构的细节和实现,而 ...

  5. 阿里云王牌架构师杨曦:也谈系统缓存设计误区及高阶使用技巧

    阿里云高级解决方案架构师 杨旭 世界最大混合云的总架构师,4年前,开始作为双11阿里云技术负责人,负责搭建全球最大的混合云结构,把 "双11"的电商业务和技术场景在阿里云上实现,并 ...

  6. 阿里P8架构师谈:多线程、架构、异步消息、Redis等性能优化策略

    常见性能优化策略分类 1.代码 之所以把代码放到第一位,是因为这一点最容易引起技术人员的忽视.很多技术人员拿到一个性能优化的需求以后,言必称缓存.异步.JVM等.实际上,第一步就应该是分析相关的代码, ...

  7. 阿里P8架构师谈:流量高峰时期的性能瓶颈有哪些、以及如何来解决

    在高并发大量用户的场景,系统一般会面临如下三个挑战: 1. 日益增长的用户数量 2. 日渐复杂的业务 3. 急剧膨胀的数据 这些挑战对于性能优化而言表现为:在保持和降低系统TP95响应时间(指的是将一 ...

  8. 阿里P8架构师谈:主流RPC框架详解,以及与SOA、SOAP、REST的区别

    什么是RPC RPC(Remote Procedure Call Protocol)--远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议. 简言之,RPC使 ...

  9. 阿里P8架构师谈:Web前端、应用服务器、数据库SQL等性能优化总结

    web前端性能优化 Web前端指网站业务逻辑之前的部分,包括: 1.浏览器加载 2.网站视图模型 3.图片服务 4.CDN服务等 主要优化手段有优化浏览器访问,使用反向代理,CDN等. 1.浏览器访问 ...

最新文章

  1. GitHub的MySQL高可用性实践
  2. python建立数据库并搜索_如何建立一个简单的数据库,可供人在网络上进行搜索?...
  3. 【摩天好课推荐】传统企业数字化转型的困惑、思考与实践
  4. CCF OJ 1113-括号匹配[栈]
  5. swagger 修改dto注解_Web服务开发:Spring集成Swagger,3步自动生成API文档
  6. Python是什么?有那些用途?
  7. centos哪个版本好用_Ubuntu VS CentOS,谁才是更好的 Linux 版本?
  8. 递归 dfs 记忆化搜索 动态规划
  9. 设置DIV最小高度以及高度自适应随着内容的变化而变化
  10. python中33个保留字的含义_Python的保留字。这是什么意思?
  11. 彻底删除MySQL教程
  12. 三菱Q协议PLC TCP/IP通讯协议解析简述
  13. NSIS:在线下载并安装程序
  14. MySQL索引常见面试题(2022版)
  15. Windows Server 2016 路由和远程访问
  16. 计蒜客:Adjoin the Networks
  17. python与ai的关系_Python与人工智能的关系原来是这样的...
  18. uoj 30 tourists
  19. 【原创】Moon在2005的辉煌
  20. Android Vendor Test Suite (VTS) 的概念、作用及测试方法

热门文章

  1. python中对列表排序,去重
  2. 2021最新 阿里云ECS建网站(建站)超详细全套完整图文教程
  3. 视界云荣登创业邦2019年100未来商业峰会“卓越企业服务初创公司TOP 10”
  4. 【笔记11】uniapp点击复制;mysql数据库存储emoji表情;Java 二维码生成;uniapp引入自定义图标
  5. 如何通过Win10系统的密码重置盘来重置电脑开机锁屏密码?
  6. 婚礼上,新郎的一段精彩表白
  7. 【JavaWeb】如何搭建个人网站?
  8. 伽罗华域下的伪随机序列图像编码(一)
  9. HTML和CSS常用标签
  10. 地磅称重管理电脑鼠标乱跳的解决方案