memcached参数详解 一个牛耳出来的Java菜鸟,如何在上海做到月薪20k?

[更新]
·
·
分类:互联网
2698 阅读

memcached参数详解

一个牛耳出来的Java菜鸟,如何在上海做到月薪20k?

一个牛耳出来的Java菜鸟,如何在上海做到月薪20k?

1. 计算机专业基本功和写代码能力是废话,太主观。我们先放着,一会再回来review。
2. “熟练掌握 Java 及面向对象设计开发”gt工作一年以上;“对部分 Java 技术有深入研究”gt熟练IO的各种姿势,或者研究过Java内存模型,有此二者在手,面试官绝对对你刮目相看;“研究过优秀开源软件的源码并有心得”gt去Github找找几个star多的项目来看吧,推荐netty,不要多,一个就好。
3. “了解 SOA 架构理念、实现技术;熟悉常见设计模式”gt维基百科欢迎你,看看就行了;“熟练掌握 Spring、myBatis 等框架”gt过一遍源码吧
4. “熟练掌握 MySQL 应用开发、数据库原理和常用性能优化和扩展技术”gt买本mysql的书来看(认真脸);“NoSQL,Queue 的原理、使用场景以及限制”gt好好看看redis就行
5. “http 协议 搜索引擎”gt维基百科;“缓存”gtGoogle Guava cache,memcached,redis;“jvm 调优”gt掌握jvm参数(认真脸);“序列化”gtGoogle protocol buffer;“nio”gtnetty;“RPC 调用框架”gtdubbo(垃圾)

如何设计一个能够高效查询的千万级MySQL数据库?

首先要确定你的目标,所谓千万级是每秒千万次查询还是千万条记录的数据库,前者是一个极其复杂的,这个不是光告mysql能解决的,我想不是前者,而后者却是很简单的一件事,前提是定义高效,定义两个指标:
1,每秒查询的次数是多少
2,每次查询时长
确定好以后再考虑以下几个因素的优化
1,存储的类型,SSD比普通磁盘的随机读写能力可以提高不少,一般2到3个数量级,还要看索引和数据块的大小,比较复杂
2,先择RAID类型,如果选raid 0和raid10可以提升近似1倍的速度
3,使用高带宽的网速,可以减少网络传输延迟,用10g的光纤比1g的电缆理论上可以提升1个数量级的吞吐量,尤其对大数据据量的结果集特别有效
4,合理的索引,带条件的检索字段加上索引
5,用大宽表,尽可能减少多表关联查询,用空间换时间吧
6,釆用主从的集群,基本上查询的并发量和服务器的数量成正比的
7,使用缓存,如memcached,尤其对静态数据提升尤其明显
8,合理选择数据库字段的类型,用定长字字,不要用变长的,如定长的int,char,decimal类型,别用varchar,text等
9,给数据库配置更大的内存
10,检查下瓶颈在不在CPU,如果查询复杂,换个更高配置的服务器
总的原刚就是,尽可能用内存替代碰盘提升IO速度,提高网络和CPU的配置以减少查询时间;尽可能提升网络速度,内存和主机的数量以提高并发