memcached

Java程序员工作三年,月薪达到38K,只因他掌握了这七大技能树

可紊 提交于 2020-11-23 09:55:04
Java架构师,首先要是一个高级java攻城狮,熟练使用各种框架,并知道它们实现的原理。jvm虚拟机原理、调优,懂得jvm能让你写出性能更好的代码;池技术,什么对象池,连接池,线程池…… Java构架师需要掌握的技术: 1、熟练使用各种框架,并知道它们实现的原理。 2、jvm虚拟机原理、调优,懂得jvm能让你写出性能更好的代码; 3、池技术,什么对象池,连接池,线程池……Java反射技术,写框架必备的技术,遇到有严重的性能问题,替代方案java字节码技术; 4、nio,没什么好说的,值得注意的是"直接内存"的特点,使用场景;java多线程同步异步;java各种集合对象的实现原理,了解这些可以让你在解决问题时选择合适的数据结构,高效的解决问题,比如hashmap的实现原理,好多五年以上经验的人都弄不清楚,还有为什扩容时有性能问题?不弄清楚这些原理,就写不出高效的代码,还会认为自己做的很对; 总之一句话,越基础的东西越重要,很多人认为自己会用它们写代码了,其实仅仅是知道如何调用api而已,离会用还差的远。 5、熟练使用各种数据结构和算法,数组、哈希、链表、排序树…,一句话要么是时间换空间要么是空间换时间,这里展开可以说一大堆,需要有一定的应用经验,用于解决各种性能或业务上的问题。 6、熟练使用linux操作系统,必备,没什么好说的 。 7、熟悉tcp协议

Session与Cookie区别简析

帅比萌擦擦* 提交于 2020-11-23 04:09:28
目录 Cookie 会话Cookie和持久Cookie Cookie具有不可跨域名性 Session Session的创建 Session的客户端实现形式 Session与Cookie的联系 Session与Cookie的区别 参考 Cookie Cookie 并不是它的原意“甜饼”的意思,Cookie是存放在客户端的,Cookie是一段不超过4KB的小型文本数据,由一个名称(Name)、一个值(Value)和其它几个用于控制Cookie有效期、安全性、使用范围的可选属性组成。由于Cookie是存放在客户端,是可见的,安全性就会很低。因此不建议将一些重要的信息放在Cookie中。 客户端请求服务器,如果服务器需要记录该用户状态,就使用response向客户端浏览器颁发一个Cookie,客户端会把Cookie保存起来。 当浏览器再请求该网站时,浏览器把请求的网址连同该Cookie一同提交给服务器。服务器检查该Cookie,以此来辨认用户状态。服务器还可以根据需要修改Cookie的内容。 会话Cookie和持久Cookie 若不设置过期时间,则表示这个Cookie的生命期为浏览器会话期间,关闭浏览器窗口,Cookie就消失。这种生命期为浏览器会话期的Cookie被称为 会话Cookie 。会话Cookie一般不存储在硬盘上而是保存在内存里,当然这种行为并不是规范规定的。

拼多多四面(Java岗):多线程+算法+网络+MySQL+Redis+分布式

心已入冬 提交于 2020-11-21 12:36:38
一面 线程池由哪些组件组成,有哪些线程池,分别怎么使用,以及拒绝策略有哪些 写一题算法,层次遍历树并输出每层的层级 写一道题,二叉树的后序遍历,非递归算法。 什么时候多线程会发生死锁,写一个例子 说一说jdk1.8中,对hashMap的优化,对concurrentHashMap的优化 如何解决hash冲突的,以及如果冲突了,怎么在hash表中找到目标值 有1000个数据存在hashmap中,实际的数量是多少,考虑负载因子和扩容 常见的RPC有哪些?对应的区别和性能比较? 操作系统的用户态和核心态切换条件以及为什么要切换 线程间的通信方式,异步队列,消息延迟获取 二面 MySQL的主从复制怎么做 MySQL的索引,使用B+树索引的好处 MySQL性能查看以及如何优化 Redis是怎么做缓存的 Redis的持久化操作 如何利用redis处理热点数据 TCP三次握手的过程,如果没有第三次握手有什么问题。 分布式锁怎么实现 三面 cap了解么,分别指什么 网络编程nio和netty相关,netty的线程模型,零拷贝实现 Redis是单线程还是多线程?Redis的分布式集群怎么做? 分布式消息队列有哪些(Kafka等)?有使用过哪些?具体应用在什么场景? 负载均衡怎么做的呢,为什么这么做,了解过集群雪崩么。 谈谈高并发场景下削峰,限流的实现? 四面(HR) 为什么跳槽? 期望的薪资是多少?

数据库学习建议之提高数据库速度的十条建议

放肆的年华 提交于 2020-11-19 07:03:34
很多网站的重要信息都是保存在数据库中的,用户通过提交访问数据库来获取用户信息。如果数据库速度非常的快,有助于节省服务器的资源,在这篇文章中,我收集了十个优化数据库速度的技巧。 0. 小心设计数据库 第一个技巧也许看来理所当然,但事实上大部分数据库的问题都来自于设计不好的数据库结构。 譬如我曾经遇见过将客户端信息和支付信息储存在同一个数据库列中的例子。对于系统和用数据库的开发者来说,这很糟糕。 新建数据库时,应当将信息储存在不同的表里,采用标准的命名方式,并采用主键。 来源: http://www.simple-talk.com/sql/database-administration/ten-common-database-design-mistakes/ 1. 清楚你需要优化的地方 如果你想优化某个查询语句,清楚的知道这个语句的结果是非常有帮助的。采用EXPLAIN语句,你将获得很多有用的信息,下面来看个例子: 1 EXPLAIN SELECT * FROM ref_table,other_table WHERE ref_table.key_column=other_table. column ; 来源: http://dev.mysql.com/doc/refman/5.0/en/using-explain.html 2. 最快的查询语句…是那些你没发送的语句

API网关 动态路由、监控、授权、安全、调度

梦想的初衷 提交于 2020-11-19 05:21:29
1、API网关介绍 API网关是一个 服务器 ,是系统的唯一入口。从面向对象设计的角度看,它与外观模式类似。API网关封装了系统内部架构,为每个客户端提供一个定制的API。它可能还具有其它职责,如身份验证、监控、负载均衡、缓存、请求分片与管理、静态响应处理。 API网关方式的核心要点是,所有的客户端和消费端都通过统一的网关接入微服务,在网关层处理所有的非业务功能。通常,网关也是提供REST/HTTP的访问API。服务端通过API-GW注册和管理服务。 2、融入架构 API网关负责服务请求路由、组合及协议转换。客户端的所有请求都首先经过API网关,然后由它将请求路由到合适的微服务。API网管经常会通过调用多个微服务并合并结果来处理一个请求。它可以在Web协议(如HTTP与WebSocket)与内部使用的非Web友好协议之间转换。 API网关还能为每个客户端提供一个定制的API。通常,它会向移动客户端暴露一个粗粒度的API。例如,考虑下产品详情的场景。API网关可以提供一个端点(/productdetails?productid=xxx),使移动客户端可以通过一个请求获取所有的产品详情。API网关通过调用各个服务(产品信息、推荐、评论等等)并合并结果来处理请求。 3、API的优缺点 使用API网关的最大优点是,它封装了应用程序的内部结构。客户端只需要同网关交互,而不必调用特定的服务

我真的尽力了,最经典Redis面试14题,没时间复习就看这个吧

☆樱花仙子☆ 提交于 2020-11-18 23:53:43
前言 小编真的努力了,Redis面试官灵魂14问!你值得拥有! 1.redis 简介 简单来说 redis 就是一个数据库,不过与传统数据库不同的是 redis 的数据是存在内存中的,所以存写速度非常快,因 此 redis 被广泛应用于缓存方向。另外,redis 也经常用来做分布式锁。redis 提供了多种数据类型来支持不同的业 务场景。除此之外,redis 支持事务 、持久化、LUA脚本、LRU驱动事件、多种集群方案。 2.为什么要用 redis /为什么要用缓存 主要从“高性能”和“高并发”这两点来看待这个问题。 高性能 假如用户第一次访问数据库中的某些数据。这个过程会比较慢,因为是从硬盘上读取的。将该用户访问的数据存在数 缓 存中,这样下一次再访问这些数据的时候就可以直接从缓存中获取了。操作缓存就是直接操作内存,所以速度相当 快。 如果数据库中的对应数据改变的之后,同步改变缓存中相应的数据即可! 高并发 直接操作缓存能够承受的请求是远远大于直接访问数据库的,所以我们可以考虑把数据库中的部分数据转移到缓存中 去,这样用户的一部分请求会直接到缓存这里而不用经过数据库。 3.为什么要用 redis 而不用 map/guava 做缓存? 缓存分为本地缓存和分布式缓存。以 Java 为例,使用自带的 map 或者 guava 实现的是本地缓存,最主要的特点是 轻量以及快速,生命周期随着

开源GitHub标星30K的腾讯Redis笔记,阿里技术专家看到都赞不绝口

感情迁移 提交于 2020-11-13 19:29:03
前言 Redis的火爆程度,相信不用我多说,现在大型的互联网公司基本上都需要使用到Redis技术。Redis作为目前最火爆的内存数据库之一,通过在内存中读写数据,很大程度上提高了读写速度,可以说Redis 是实现网站高并发不可或缺的一部分。 但是,对于Redis的使用,相信还是有很多人不知道如何使用,也有不少中小型企业还没有使用到Redis,但是现在的大厂要求,对Redis的使用是需要熟练并掌握的,因此,学习Redis刻不容缓。 好消息是,今天公开了一份宝藏的技术笔记,由腾讯技术专家整理出来的Redis技术笔记,下载量已经突破了30W。 现在分享出来,需要的朋友,私信我领取密码“Redis”即可免费下载。 首先,上一套Redis思维脑图 这一套Redis的思维脑图还是非常详细具体的,内容比较多,图片展示的是“简约版”,实际上还有更完整的内容,“+”键未展开,Redis的思维导图能够更好地去帮助我们理解这本笔记的内容,也让我们在学习Redis的时候有一个更清晰的思路。 Redis思维导图内容: 基本数据结构及其应用:字符串+列表+集合+有序集合+哈希 用Redis实现分布式锁 持久化:AOF+RDB 如何解决多线程竞争问题 数据库、缓存双写不一致问题 事务 如何保证高可用 哨兵 集群 面试题相关 然后,上正菜:Redis技术笔记 1.认识Redis (Redis简介

第一天 负载均衡之高并发发送

亡梦爱人 提交于 2020-11-07 13:01:48
高并发发送: 1处:负载均衡 2处:数据库 在APP服务器多台情况下,如果用户登录,session怎么处理? 本文来源:凯哥Java(kaigejava) 个人博客:www.kaigejava.com 如下图: 说明: 如果用户登录的时候负载到01服务器上,当用户在操作其他的时候,如果被负载到02机器上。这个时候02机器上面就没有当前用户的session。用户就会被转跳到登陆页面。 解决方案: 1:可以把用户的session放置到cookie中 优点:解决了session没有的问题 缺点:session放在了用户的浏览器中,是不安全的 2:可以把用户的session放置到数据库中 优点:解决了session没有的问题 缺点:当用户量很大的时候,如果把session放置到数据库中,会造成数据库压力过大。从而使数据库运行不正常 3:可以把用户的session放在缓存服务器中 最好的解决的方案是:放在缓存服务器中。这里推荐两种缓存服务器:memcached、redis 要求:memcached/redis必须是集群 4:tomcat共享session 缺点:当tomcat数量过多的时候及其影响性能。所以不推荐 数据库并发: 1 要求:随着业务量的增大,数据库库承载能力也要增大 2 数据安全,不能丢失 3 支持备份+容灾 高并发解决发展阶段: 初级阶段:系统或服务器级别就诶接方案

阿里工作6年,熬到P7就剩这份学习笔记了,已助朋友拿到7个Offer

只谈情不闲聊 提交于 2020-11-07 12:40:28
在阿里工作了6年,工作压力大,节奏快,但是从技术上确实得到了成长,尤其是当你维护与大促相关的系统的时候,熬到P7也费了不少心思,小编也是个爱学习的人,把这几年的工作经验整理成了一份完整的笔记。此笔记已助朋友拿到腾讯,阿里,美团等7个offer。 由于细节内容实在太多啦,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容! 大致内容包括了: Java 集合、JVM、多线程、并发编程、设计模式、Spring全家桶、Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、MongoDB、Redis、MySQL、RabbitMQ、Kafka、Linux、Netty、Tomcat等大厂面试题等、等技术栈! 笔记目录展示: 部分内容截图: 需要文中全部资料 来源: oschina 链接: https://my.oschina.net/u/4326852/blog/4707288