06 2017 档案
摘要:字符串操作 : 1. set key value set num 11 2 . get key get num > 11 3 . INCR key INCR num >12 如果没有这个key则新增加一个为0的key,如果这个key不是整数那么报错 3 .DECR key 4. INCRBY key
阅读全文
摘要:有时候需要推迟一些高开销的对象初始化操作,并且只有在使用这些对象时才进行初始化。此时,常用的可能就是延迟初始化,例如:懒汉式单例模式,但是要正确的实现线程安全的延迟初始化需要一些技巧,下面是非线程安全的示例代码: 在示例代码中,假如A线程执行步骤1的同时,B线程执行步骤2,线程A可能会看到insta
阅读全文
摘要:JDK7提供了7个阻塞队列,如下: ArrayBlockingQueue : 一个数组结构组成的有界阻塞队列。 LinkedBlockingQueue : 一个由链表结构组成的有界阻塞队列 。 PriorityBlockingQueue : 一个支持优先级排序的无界阻塞队列 。 DelayQueue
阅读全文
摘要:排他锁在同一时刻只允许一个线程进行访问,而读写锁在同一时刻允许多个读线程访问,但是在写线程访问时,所有的读线程和其他的写线程均被阻塞。读写锁内部维护了一对锁,一个读锁和一个写锁,通过分离读锁和写锁,使得并发性相比一般的排他锁有了很大的提升。 读写锁除了保证写操作对读操作的可见性和提高并发的性能之外,
阅读全文
摘要:1.定义 策略模式定义了一族算法,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。 2.适用性 1.许多相关的类仅仅是行为有异。“策略”提供了一种用多个行为中的一个行为来配置一个类的方法。 2.需要使用一个算法的不同变体。 3.算法使用客户不应该知道的数据。可使用策略模
阅读全文
摘要:对于服务端而言,经常面对的是客户端传入的短小任务,需要服务端快速处理并返回结果。如果服务端每次接受一个客户端请求都创建一个线程然后处理请求返回数据,这在请求客户端数量少的阶段看起来是一个不错的选择,但是面对成千上万的请求在某一时段同时到达服务器时,如果还是采用这种方式,那么将会创建数以万计的线程,暂
阅读全文
摘要:分布式环境下,多台机器上多个进程对一个数据进行操作,如果不做互斥,就有可能出现“余额扣成负数”,或者“商品超卖”的情况,如何实现简易分布式锁,对分布式环境下的临界资源做互斥,是今天将要讨论的话题。
阅读全文
摘要:Protobuf是一个灵活、高效、结构化的数据序列化框架,相比于XML等传统的序列化工具, 它更小、更快、更简单。Protobuf支持数据结构化一次就可以到处使用,甚至是跨语言使用,通过代码生成工具可以自动生成不同语言版本的源代码,甚至可以在使用不同版本数据结构进程间进行数据传递,实现数据结构的前向
阅读全文
摘要:1.下载maven安装包,解压,解压目录如下: 2.配置M2_HOME变量为上一步的路径: 3.配置PATH变量,添加%M2_HOME%\bin; 查看是否配置成功 mvn -v : 4.安装jar包到本地仓库 : mvn install:install-file -Dfile=G:\downloa
阅读全文
摘要:happens-before是JMM中最核心的概念,对于Java程序员来说,理解happens-before是理解JMM的关键 。 1.JMM的设计 首先,来看看JMM的设计意图。从JMM的设计者的角度,在设计JMM时,需要考虑两个关键因素。 (1)程序员对内存模型的使用。程序员希望内存模型易于理解
阅读全文
摘要:我们都知道,Java中的锁可以让临界区互斥执行。锁是Java并发编程中最重要的同步机制,锁除了可以让临界区互斥执行外,还可以让释放锁的线程向获取同一个锁的线程发送消息。下面是锁的释放-获取的代码: 假设线程A执行writer()方法,随后线程B执行reader()方法。根据happens-befor
阅读全文
摘要:mysql的查询日志,慢查询日志,错误日志,网上的设置方法是正确的。但在二进制日志上设置有问题。正确的设置方法如下, 在/etc/my.cnf文件中【mysqld】下加上: server-id = 1 (在整个Mysql集群中保证唯一) log-bin = binlog log-bin-index
阅读全文
摘要:1.过分的反范式化为表建立太多的列 我们在设计数据库的结构时,比较容易犯的第一个错误就是对表进行了过分的反范式化的设计,这就容易造成了表中的列过多,虽然说Mysql允许为一个表建立很多的列,但是由于Mysql的插件式架构的原因,前面博客已经有介绍,Mysql的服务器层和存储引擎层是分离的,Mysql
阅读全文
摘要:Mysql对于内存的使用,可以分为两类,一类是我们无法通过配置参数来配置的,如Mysql服务器运行、解析、查询以及内部管理所消耗的内存;另一类如缓冲池所用的内存等。 Mysql内存参数的配置及重要,设置不当很有可能会造成很大的性能问题甚至是服务器宕机,内存相关参数的配置需要考虑以下两点: (1)确定
阅读全文
摘要:本文介绍InnoDB和MyISAM两种存储引擎的I/O相关参数配置。 1.InnoDB I/O相关配置 Innodb是一种事务型的存储引擎,为了减少提交事务时产生的io开销,innodb采用了写日志的方式,也就是在事务提交的时候会先写入事务日志中 ,而不是每次都把修改或者数据刷新到数据文件中,这样做
阅读全文

浙公网安备 33010602011771号