2018年8月20日
摘要:
Redis有哪些数据结构? 字符串String、字典Hash、列表List、集合Set、有序集合SortedSet。 如果你是Redis中高级用户,还需要加上下面几种数据结构HyperLogLog、Geo、Pub/Sub。 如果你说还玩过Redis Module,像BloomFilter,Redis
阅读全文
posted @ 2018-08-20 19:41
爱养花的码农
阅读(135)
推荐(0)
2018年8月16日
摘要:
jstat命令使用 jstat命令可以查看堆内存各部分的使用量,以及加载类的数量。命令的格式如下: jstat [-命令选项] [vmid] [间隔时间/毫秒] [查询次数] 注意:使用的jdk版本是jdk8. 类加载统计: Loaded:加载class的数量 Bytes:所占用空间大小 Unloa
阅读全文
posted @ 2018-08-16 17:14
爱养花的码农
阅读(216)
推荐(0)
摘要:
系统性能分析中,CPU、内存和 IO 是主要关注项。 系统层面 1. 对于 CPU,如果是常见的 Linux,可以先用 top 命令查看负载状况。 top -H -p [pid] pstree -p [pid] 2. 利用 free 之类查看内存使用。 3. 对于 IO 问题,既可能发生在磁盘 IO
阅读全文
posted @ 2018-08-16 17:12
爱养花的码农
阅读(129)
推荐(0)
2018年8月15日
摘要:
观点一: 1、Redis和Memcache都是将数据存放在内存中,都是内存数据库。不过memcache还可用于缓存其他东西,例如图片、视频等等; 2、Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,hash等数据结构的存储; 3、虚拟内存--Redis当物理内存用完时,可以将
阅读全文
posted @ 2018-08-15 08:49
爱养花的码农
阅读(162)
推荐(0)
2018年8月9日
摘要:
一、背景 提到Java中的并发编程,首先想到的便是使用synchronized代码块,保证代码块在并发环境下有序执行,从而避免冲突。如果涉及多线程间通信,可以再在synchronized代码块中使用wait和notify进行事件的通知。 不过使用synchronized+wait+notify进行多
阅读全文
posted @ 2018-08-09 18:52
爱养花的码农
阅读(990)
推荐(0)
摘要:
一、背景 容器是Java编程中使用频率很高的组件,但Java默认提供的基本容器(ArrayList,HashMap等)均不是线程安全的。当容器和多线程并发编程相遇时,程序员又该何去何从呢? 通常有两种选择: 1、使用synchronized关键字,将对容器的操作有序错开,确保同一时刻对同一个容器只存
阅读全文
posted @ 2018-08-09 18:51
爱养花的码农
阅读(222)
推荐(0)
摘要:
一、背景 要提升服务器的并发处理能力,通常有两大方向的思路。 1、系统架构层面。比如负载均衡、多级缓存、单元化部署等等。 2、单节点优化层面。比如修复代码级别的性能Bug、JVM参数调优、IO优化等等。 一般来说,系统架构的合理程度,决定了系统在整体性能上的伸缩性(高伸缩性,简而言之就是可以很任性,
阅读全文
posted @ 2018-08-09 18:20
爱养花的码农
阅读(287)
推荐(0)
posted @ 2018-08-09 15:03
爱养花的码农
阅读(112)
推荐(0)
摘要:
一、String的不可变特性 熟悉Java的朋友都知道,Java中的String有一个很特别的特性,就是你会发现无论你调用String的什么方法,均无法修改this对象的状态。当确实需要修改String的值时,String方法的实现是构造一个新的String返回给你。如下: 这与C++ STL中的s
阅读全文
posted @ 2018-08-09 14:34
爱养花的码农
阅读(1043)
推荐(0)
2018年8月8日
摘要:
Java进阶知识点1:白捡的扩展性 - 枚举值也是对象 一、背景 枚举经常被大家用来储存一组有限个数的候选常量。比如下面定义了一组常见数据库类型: public enum DatabaseType { MYSQL, ORACLE, SQLSERVER } 当围绕这一组常量出现功能上的扩展点时,很多人
阅读全文
posted @ 2018-08-08 17:52
爱养花的码农
阅读(994)
推荐(0)