摘要:
自1998年jdk1.0发布至今,已有20多年的发展历程,作为一门老牌语言,她有着自己独特的魅力,经久不衰。作为一门语言,想要长久的发展,就需要不断地升级,java作为编程语言的佼佼者,自然也需要不断地完善己身。纵观java的发展史,之所以关心Java8,是因为Java8所做的改变,在Java的历史 阅读全文
摘要:
<!--Microsoft Windows [版本 10.0.18363.1016]org.apache.catalina.LifecycleException: Protocol handler start failed(c) 2019 Microsoft Corporation。保留所有权利。C 阅读全文
摘要:
简介: Redis是一个缓存技术,也叫NoSQL数据库,既然是数据库,那么必然支持持久化操作,在redis中有两种持久化操作: 1.快照:一次全量备份,它是内存数据二进制序列化形式,在内存中比较节省空间。 2.AOF日志:连续增量备份,记录的是内存修改指令的记录文本,数据库重启需要加载AOF日志,进 阅读全文
摘要:
消息队列 每当想到消息队列:我们都会想到RabbitMQ,ActiveMQ,RocketMQ,等等一些专业的消息中间件。但是如果我们做的事情比较简单,只有一个消息队列,要使用专业的消息中间件是非常麻烦的,因此我们可以使用Redis做消息队列。 如果对消息的可靠性没有较高的要求的话,那么就可以使用Re 阅读全文
摘要:
认识多线程: 计算机的操作系统大多采用多任务,就是在一个系统中可以同时运行多个程序,例如可以在听音乐的同时聊天。即就是有多个任务,每个任务对应一个进程,每个进程可以 产生多个线程。 什么是进程: 进程就是一段程序的运行过程,程序就是一段静态代码,进程是系统应用程序的基本单位。 什么是多线程: 线程是 阅读全文
摘要:
简介: rabbitMQ是一个消息服务的具体实现,那么什么是消息服务? 消息服务就是两个程序时间进行通讯的标准。这里我介绍两种消息服务。一种是JMS(Java Message Service)java消息服务,通过统一的java API层面的标准,使得多个消息客户端通过JMS进行交互。另一种是AMQ 阅读全文
摘要:
简介: 布隆过滤器是一种实现去重的思想,不属于redis,它也可以在其他地方单独使用。 布隆过滤器也是做去重的,那和Hyperloglog有什么区别. Hyperloglog用来来估值,有偏差,它里面主要提供了两个方法: pfadd pfcount 但是没有判断是否包含的命令,例如pfexist,p 阅读全文
摘要:
一般我们评估一个网站,主要有两个指标 pv(page, view),页面访问量 uv(user,view),访问的用户 一般来说,pv和uv的 统计可以自己来做,也可以借助第三方工具。 自己如何实现:pv;可以通过计数器,key的话加上当前的日期,每当有用户请求的时候,hincrby自增一次,就实现 阅读全文
摘要:
简介: 操作位图,就是操作二进制文件,类似于java中的位运算,这样做的好处,一个是效率高,另一个是节约空间,相比于字符串,效果是很明显的。 说一个的案例,一个用户一年的签到记录,如果用Sring类型存储,那么就需要365个key/value。那如果使用位图的话,假设网站上线第一天,这个人签到了就存 阅读全文
摘要:
为什么会有这个需求: 例如一个简单用户的操作,一个线程去修改用户状态,首先在在内存中读出用户的状态,然后在内存中进行修改,然后在存到数据库中。在单线程中,这是没有问题的。但是在多线程中由于读取,修改,写入是三个操作,不是原子操作(同时成功或失败),因此在多线程中会存在数据的安全性问题。 这个问题的话 阅读全文