- 浏览: 441727 次
最新评论
-
liaodongdakai:
Java读源码之Netty深入剖析网盘地址:https://p ...
java Netty 之 字符串消息收发(ChannelBuffer) -
萨琳娜啊:
Java读源码之Netty深入剖析网盘地址:https://p ...
java Netty 之 教学视频 -
ccqy66:
感觉步骤1的描述有问题吧,aof重写时是不会读原aof文件是, ...
Redis的AOF重写机制 -
dick1305:
没有了,能否再提供一个下载地址。谢谢。
java Netty 之 教学视频 -
dick1305:
...
java NIO 之 mina 和 netty
文章列表
互联网项目架构
什么是架构设计
通俗的说,架构设计就像是小学考试中解答应用题的过程,但是解决的问题更复杂,构思设计的过程更庞大,解题的工作量更大。
项目的质量指标
软件 ...
如何构建一个安全, 稳定, 高效的互联网平台体系架构
构建一个比较完善的互联网平台体系架构,广义上可以归纳为:高可用性,高扩展性,高性能,高安全性。
高可用性
高可用性又可以分为硬 ...
互联网系统架构的变迁
- 博客分类:
- 架构--学习
互联网系统架构的变迁
参看人家的见解
https://segmentfault.com/a/1190000008016139
关于HTTP和HTTPS的安全问题
普通HTTP请求存在的问题
HTTP 本身是明文传输的,没有经过任何安全处理。例如用户在百度搜索了一个关键字,比如“苹果手机”,中间者完全能够查看到这个信息,并且有可能打电话过来骚扰用户。也有一些用户投诉使用百度时,发现首页或者结果页面浮了一个很长很大的广告,这也肯定是中间者往页面插的广告内容。如果劫持技术比较低劣的话,用户甚至无法访问百度。
这里提到的中间者主要指一些网络节点,是用户数据在浏览器和百度服务器中间传输必须要经过的节点。比如 WIFI 热点,路由器,防火墙,反向代理,缓存服务器等。
...
Redis几个认识误区
- 博客分类:
- 数据库--redis
Redis几个认识误区
Redis不可能比Memcache快
很多开发者都认为Redis不可能比Memcached快,Memcached完全基于内存,而Redis具有持久化保存特性,即使是异步的,Redis也不可能比Memcached快。但是测试结果基本是Redis占绝对优势。一直在思考这个原因,目前想到的原因有这几方面。
Libevent。和Memcached不同,Redis并没有选择libevent。Libevent为了迎合通用性造成代码庞大(目前Redis代码还不到libevent的1/3)及牺牲了在特定平台的不少性能。Redis用libev ...
java -- Iterator和Enumeration比较
区别在哪
在Java集合中,我们通常都通过 “Iterator(迭代器)” 或 “Enumeration(枚举类)” 去遍历集合。先看看下面源码:
Enumeration是一个接口,它的源码如下:
package java.util;
publi ...
java -- Map总结
- 博客分类:
- java--数据结构
java -- Map总结
框架图
概括
接口
Map 是“键值对”映射的抽象接口。
AbstractMap 实现了Map中的绝大部分函数接口。它减少了“Map的实现类”的重复编码。
SortedMap 有序的“键值对”映射接口。
NavigableMap ...
java -- LinkedHashMap
特点
LinkedHashMap 继承于AbstractMap,实现了Map、Cloneable、java.io.Serializable接口。
继承自HashMap 所以依然是散列表,拥有key-value结构。
LinkedHashMap 键和值都可以为null。
与HashMap有着同样的存储结构,但它 ...
java -- WeakHashMap
特点
WeakHashMap 继承于AbstractMap,实现了Map、Cloneable、java.io.Serializable接口。
WeakHashMap 也是一个散列表,它存储的内容也是键值对(key-value)映射。
WeakHashMap 键和值都可以是null。
WeakHashMap 的键是“弱键 ...
java - TreeMap
- 博客分类:
- java--数据结构
java - TreeMap
特点
TreeMap 是一个有序的key-value集合,它是通过红黑树实现的。
TreeMap 继承于AbstractMap,实现了Map、Cloneable、java.io.Serializable接口。
TreeMap 实现了NavigableMap接口,意味着它支持一系列的导航方法。比如返回有序的key集合。
TreeMap 基于红黑树(Red-Black tree)实现。该映射根据其键的自然顺序进行排序,或者根据创建映射时提供的 Comparator 进行排序,具体取决于使用的构造方法。
TreeMap 非同步,所以它的i ...
java -- HashTable
- 博客分类:
- java--数据结构
java -- HashTable
特点
HashTable 是一个散列表,它存储的内容是键值对(key-value)映射。
HashTable 继承于Dictionary,实现了Map、Cloneable、java.io.Serializable接口。
HashTable 的实现同步的,这意味着它是线程安全的。它的key、value都不可以为null。此外,HashTable中的映射不是有序的。
跟HashMap的区别
HashTable是线程安全,HashMap不是
HashTable不允许key和value为null,HashMap ...
java -- HashMap
- 博客分类:
- java--数据结构
java -- HashMap
特点
HashMap 是一个散列表,它存储的内容是键值对(key-value)映射。
HashMap 继承于AbstractMap,实现了Map、Cloneable、java.io.Serializable接口。
HashMap 的实现不是同步的,这意味着它不是线程安全的。它的key、value都可以为null。此外,HashMap中的映射不是有序的。
扩容
初始容量:哈希表在创建时的容量,默认是16
加载因子:哈希表在其容量自动增加之前可以达到多满的一种尺,默认是0.75
当哈希表的容量超过 ...
java -- Set总结
- 博客分类:
- java--数据结构
java -- Set总结
学习Set会容易很多,毕竟,Set的实现类都是基于Map来实现的(HashSet是通过HashMap实现的,TreeSet是通过TreeMap实现的)。
首先,我们看看Set架构。
Set 是继承于Collection的接口。它是一个不允许有重复元素的集合。
AbstractSet 是一个抽象类,它继承于AbstractCollection,AbstractCollection实现了Set中的绝大部分函数,为Set的实现类提供了便利。
HastSet 和 TreeSet 是Set的两个实现类。
...
Redis管道机制(pipeline)
Redis的管道机制,其实是为了批量读写而设计的,如果进行多次的读和写数据到redis,每次都建立一个链接,这样是比较消耗资源的,而且也比较忙,于是想到了管道机制(pipeline),只建立一个连接,然后批量执行读或写。
插入数据效果
非管道: 数据量 = 2W, 执行时间 = 1分多钟
管道: 数据量 = 2W, 执行时间 = 1~2秒
代码讲解
public boolean add(final List<T> ...
java -- TreeSet
- 博客分类:
- java--数据结构
java -- TreeSet
TreeSet和HashSet很类似,不过是以HashMap实现,并且是有序的。
优点
没有重复元素
元素可以为null
操作很简单,更像是对HashMap做了一次“封装”,而且只使用了HashMap的key来实现各种特性。
有序,因为底层以TreeMap实现,自动排序了
可以被克隆,因为实现了Cloneable接口
支持序列化,因为实现了java.io.Serializable接口,当写入到输出流时,依次写入“比较器、容量、全部元素”;当读出输入流时,再依次读取。
缺点
非同步的,也就 ...