memcached

被传“疯”了!GitHub上都在找的分布式核心笔记终于来了

微笑、不失礼 提交于 2020-10-24 07:58:26
什么是Java分布式? 简单的来说就是一个大型的系统往往被分为几个子系统来做,一个子系统可以部署在一台机器的多个 JVM 上,也可以部署在多台机器上。但是每一个系统不是独立的,不是完全独立的。需要相互通信,共同实现业务功能。 一句话来说:分布式就是通过计算机网络将后端工作分布到多台主机上,多个主机一起协同完成工作。 分布式作为现在作为Java开发必知必会的技术,同时分布式技术也属于面试中的必问题,那么我们就需要十分明白分布式,今天就为大家整理了一份Java分布式核心原理笔记,GitHub上人人都在找的分布式核心技术笔记终于终于免费开源了! 这份笔记涵盖了:分布式协调与同步、分布式资源管理与负裁调度、分布式计算技术、分布式通信技术、分布式数据存储、分布式高可靠(这份分布式笔记已经整理完毕,免费的领取方式在文末!) 分布式协调与同步 分布式互斥 什么是分布式互斥? I霸道总裁:集中式算法 民主协商:分布式算法 轮值CEO:令牌环算法 分布式选举 为什么要有分布式选举? 分布式选举的算法 长者为大: Bully算法 民主投票: Raft 算法 具有优先级的民主投票: ZAB算法 三种选举算法的对比分析 分布式共识 什么是分布式共识? 分布式共识方法 PoW PoS DPoS 三种分布式共识算法对比分析 分布式事务 什么是分布式事务? 如何实现分布式事务? 基于XA协议的二阶段提交方法

凭这些资料登上Redis的顶峰:阿里核心笔记/实战/面试专题/脑图,与之共勉

最后都变了- 提交于 2020-10-23 15:55:37
作为同时具备高性能、高可靠和高可扩展性的典型键值数据库,Redis不仅功能强大,而且稳定,理所当然地成为了大型互联网公司的首选。 众多大厂在招聘的时候,不仅会要求面试者能简单地使用Redis,还要能深入地理解底层实现原理,并且具备解决常见问题的能力。可以说,熟练掌握Redis已经成为了技术人的一个必备技能。 但是,在学习和使用Redis的过程中,总不可避免地遇见一些棘手的问题,比如: Redis的key和数据结构应该怎么设计?有什么最佳实践? Redis集群如何均衡数据?又如何横向扩展? 怎么保证数据的一致性?热点数据的问题怎么解决? RDB持久化生成的数据快照,每次更新是全量更新还是增量更新? 缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题怎么解决? 如何高效阅读Redis源代码? 为了更好的学习Redis,吃透Redis,为大家带来三份扎实的学习资料, Redis核心笔记,Redis实战、Redis面试专题以及X-mind版本的Redis学习脑图 …… 由于篇幅原因,资料只做部分展示,需要获取完整资料的朋友麻烦 点击直达 话不多说,来吧!展示! Redis核心笔记 一 Redis 介绍 二 Redis 单机版安装配置 三 Redis 客户端 四 Redis 数据类型 五 Redis 事务 六 Redis 实现分布式锁 七 Redis 持久化方案 八 Redis

我是一名技术总监,被技术选型给埋坑里了

蹲街弑〆低调 提交于 2020-10-22 00:58:28
本文主人公从事软件开发近 20 年,既在大公司待过,也在小公司待过。在他的职业生涯中,发现了很多跟技术选型相关的各种问题:应该选新潮的技术还是无聊的技术?应该搭建极客范的技术栈还是使用基础的工具?应该用开发者喜欢的还是维护起来省事的?他对此作了深入的剖析,希望能帮到你。(多图流量预警!) ​ 我叫 Dan McKinley,坑里的那个人就是我。 我现在在一家叫作 Mailchimp 的公司上班。更早之前是在 Etsy,因为在 Etsy 待的时间比较长,所以后面会更多地提到我在这家公司的经历。其实在离开 Etsy 之后,我也在其他几家公司干过。 我既在大公司待过,也在小公司待过,还创办过自己的公司。在经历了这些公司之后,我注意到了一些现象。 大公司有自己的做事方式,他们提供了“沙盒”一样的环境,在这样的环境里,会有人满足你的需求,帮你答疑解惑,让你感觉受到了“百般宠爱”。 但我也经历过几个过渡时期,在这些过渡时期,需要自己解决一些棘手的问题。 首先,如何选择合适的技术? 另一个我比较关心的问题是:如何让开发人员开心地使用这些技术?因为我自己也是开发者,所以这一点对于我来说比较重要。如果有可能,我会尽量让自己过得开心些。 如果你问开发人员什么东西会让他们开心,他们通常会说:“如果可以使用 Clojure 作为开发语言,我就会很开心”。我不否认,当他们说这些话的时候

CentOS7安装OpenStack(Rocky版)-01.控制节点的系统环境准备

落爺英雄遲暮 提交于 2020-10-06 09:56:47
分享一下Rocky版本的OpenStack安装管理经验: OpenStack每半年左右更新一版,目前是版本是201808月发布的版本-R版(Rocky),目前版本安装方法优化较好,不过依然是比较复杂 官方文档地址: https://docs.openstack.org/install-guide/openstack-services.html 本文主要分享控制节点的环境配置方法: ---------------- 完美的分割线 ------------------ 1.0.系统环境 1)生产测试应用的服务器最好是物理机,虚拟目前可以完成搭建测试体验 2)系统选择是目前的最新版本:CentOS Linux release 7.5.1804 (Core) 3)控制节点Controller :192.168.1.81 计算节点Nova:192.168.1.82 1.1.配置域名解析 1)配置主机名 # 主机名设置好就不能修改,否则会出问题,控制节点和计算节点配置相同,且都需要配置 hostname openstack01.zuiyoujie.com hostname echo " openstack01.zuiyoujie.com " > /etc/ hostname cat /etc/hostname 2)配置主机名解析 vim /etc/ hosts ----------------

Celery浅谈

 ̄綄美尐妖づ 提交于 2020-10-05 00:38:34
一、Celery 核心模块 1. Brokers brokers 中文意思为中间人,在这里就是指 任务队列本身 ,接收生产者发来的消息即Task,将任务存入队列。任务的消费者是Worker,Brokers 就是生产者和消费者存放/拿取产品的地方(队列)。Celery 扮演生产者和消费者的角色。 常见的 brokers 有 rabbitmq、redis、Zookeeper 等。推荐用Redis或RabbitMQ实现队列服务。 2. Workers 就是 Celery 中的 工作者 ,执行任务的单元,类似与生产/消费模型中的消费者。它实时监控消息队列,如果有任务就从队列中取出任务并执行它。 3. Backend / Result Stores 用于存储任务的执行结果 。队列中的任务运行完后的结果或者状态需要被任务发送者知道,那么就需要一个地方储存这些结果,就是 Result Stores 了。 常见的 backend 有 redis、Memcached 甚至常用的数据库都可以。 4. Tasks 就是 想在队列中进行的任务 ,有异步任务和定时任务。一般由用户、触发器或其他操作将任务入队,然后交由 workers 进行处理。 5. Beat 定时任务调度器 ,根据配置定时将任务发送给Brokers。 二、Celery 基本使用 1.创建一个celery application

超值干货 | 值得收藏:精选BATJ面试突击500题详解:JVM篇!

笑着哭i 提交于 2020-10-02 15:24:30
JVM Java内存区域 说一下 JVM 的主要组成部分及其作用? 说一下 JVM 运行时数据区 深拷贝和浅拷贝 说一下堆栈的区别? 队列和栈是什么?有什么区别? HotSpot虚拟机对象探秘 对象的创建 为对象分配内存 处理并发安全问题 对象的访问定位 句柄访问 直接指针 内存溢出异常 Java会存在内存泄漏吗?请简单描述 垃圾收集器 简述Java垃圾回收机制 GC是什么?为什么要GC 垃圾回收的优点和原理。并考虑2种回收机制 垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收? Java 中都有哪些引用类型? 怎么判断对象是否可以被回收? 在Java中,对象什么时候可以被垃圾回收 JVM中的永久代中会发生垃圾回收吗 说一下 JVM 有哪些垃圾回收算法? 标记-清除算法 复制算法 标记-整理算法 分代收集算法 说一下 JVM 有哪些垃圾回收器? 详细介绍一下 CMS 垃圾回收器? 新生代垃圾回收器和老年代垃圾回收器都有哪些?有什么区别? 简述分代垃圾回收器是怎么工作的? 内存分配策略 简述java内存分配与回收策率以及Minor GC和Major GC 对象优先在 Eden 区分配 大对象直接进入老年代 长期存活对象将进入老年代 虚拟机类加载机制 简述java类加载机制? 描述一下JVM加载Class文件的原理机制 什么是类加载器

为什么Redis要比Memcached更火?

♀尐吖头ヾ 提交于 2020-10-02 10:53:23
前言 我们都知道,Redis和Memcached都是内存数据库,它们的访问速度非常之快。但我们在开发过程中,这两个内存数据库,我们到底要如何选择呢?它们的优劣都有哪些? 为什么现在看Redis要比Memcached更火一些? 这篇文章,我们就从各个方面来对比这两个内存数据库的差异,方便你在使用时,做出最符合业务需要的选择。 要分析它们的区别,主要从以下几个方面对比: 线程模型 数据结构 淘汰策略 管道与事务 持久化 高可用 集群化 线程模型 要说性能,必须要分析它们的服务模型。 Memcached处理请求采用多线程模型,并且基于IO多路复用技术,主线程接收到请求后,分发给子线程处理。 这样做好的好处是,当某个请求处理比较耗时,不会影响到其他请求的处理。 当然,缺点是CPU的多线程切换必然存在性能损耗,同时,多线程在访问共享资源时必然要加锁,也会在一定程度上降低性能。 Redis同样采用IO多路复用技术,但它处理请求采用是单线程模型,从接收请求到处理数据都在一个线程中完成。 这意味着使用Redis,一旦某个请求处理耗时比较长,那么整个Redis就会阻塞住,直到这个请求处理完成后返回,才能处理下一个请求,使用Redis时一定要避免复杂的耗时操作。 单线程的好处是,少了CPU的上下文切换损耗,没有了多线程访问资源的锁竞争,但缺点是无法利用CPU多核的性能。 由于Redis是内存数据库