学会了Redis的基本操作还不够,再来看看升级部分 1. 数据删除策略 惰性删除+定期删除(默认) 定期删除:默认是每隔 100ms 就 轮询各个库随机抽取 一些设置了过期时间的key,检查其是否过期,如果过期就删除。每隔100ms就遍历所有的设置过期时间的 key 的话,是个损耗。 惰性删除:定期 ...
分类:
其他好文 时间:
2020-04-12 18:17:09
阅读次数:
59
学习IO,首先要明白四个东西。 1.同步 java自己去处理io。 2.异步 java将io交给操作系统去处理,告诉缓存区大小,处理完成回调。 3.阻塞 使用阻塞IO时,Java调用会一直阻塞到读写完成才返回。 4.非阻塞 使用非阻塞IO时,如果不能立马读写,Java调用会马上返回,当IO事件分发器 ...
分类:
编程语言 时间:
2020-04-12 14:09:51
阅读次数:
73
一、键值设计 1、key名设计 可读性和可管理性 以业务名(或数据库名)为前缀(防止key冲突),用冒号分隔,比如业务名:表名:id 简洁性 保证语义的前提下,控制key的长度,当key较多时,内存占用也不容忽视,例如: 不要包含特殊字符 反例:包含空格、换行、单双引号以及其他转义字符 2、valu ...
分类:
其他好文 时间:
2020-04-12 14:04:02
阅读次数:
77
服务依赖 在分布式架构中,服务间的依赖非常常见,一个业务调用通常依赖多个基础服务。如下图, 对于同步调用,当会员服务不可用时,订单服务请求线程被阻塞,当有大批量请求调用会员服务时, 最终可能导致整个会员服务资源耗尽,无法继续对外提供服务。并且这种不可用可能沿请求调用链向上传递,从而引发服务间的雪崩效 ...
分类:
其他好文 时间:
2020-04-12 12:48:42
阅读次数:
102
-打开Web后台服务器技术: Java \ PHP \ Python \ Ruby \ .Net \ Node.js \ ... -Node.js 官网:https://nodejs.org/ -Node.js 不是语言、不是库、不是框架 是一个JavaScript运行时环境 可以解析执行JavaS ...
分类:
Web程序 时间:
2020-04-12 10:51:51
阅读次数:
75
一、前言 这几天准备研究一下 中阻塞队列的实现。 中的阻塞队列有七种,我准备逐一研究它们的源码,然后每一个阻塞队列写一篇分析博客,这是其中的第一篇。这篇博客就来说一说阻塞队列中我认为应该是最简单的一种—— 。 二、正文 2.1 什么是阻塞队列 在正式分析前,先简单介绍一下什么是阻塞队列。在说阻塞队列 ...
分类:
其他好文 时间:
2020-04-12 07:50:28
阅读次数:
70
在项目中经常使用到多线程来提升业务处理速度,但线程池的大小该定义为多大,这块该怎么确定?1.IO密集型单核心最佳线程数=1+(IO耗时/CPU耗时)多核心线程数星佳线程数=CPU核数*(1+(IO耗时/CPU耗时))注:如何获取CPU耗时和IO耗时,可以通过APM之类系统2.CPU密集型最佳线程数=CPU核数+1说明一下这个1哪来的,是为了防止突然有线程出现内存页失效或者其它原因导致阻塞;3.总结
分类:
编程语言 时间:
2020-04-12 00:07:15
阅读次数:
113
1、阻塞与非阻塞 阻塞与非阻塞是对同一个线程来说的,在某个时刻,线程要么处于阻塞,要么处于非阻塞。 阻塞和非阻塞关注的是程序在等待调用结果(消息,返回值)时的状态。 阻塞调用是指调用结果返回之前,当前线程会被挂起。调用线程只有在得到结果之后才会返回。 非阻塞调用指在不能立刻得到结果之前,该调用不会阻 ...
分类:
其他好文 时间:
2020-04-11 22:08:34
阅读次数:
71
1.支付宝模拟线上优化实战 2.手写JUC工具与提升tomcat吞吐量 3.网络通信BIO设计与缺陷 -- accept() 和 read()阻塞 4.单线程解决高并发NIO精髓解读 5.OS内核下Epoll与Selete源码解读 第一部分: 性能优化 问题:如何在高并发场景下实现支付宝用户登录页面 ...
分类:
系统相关 时间:
2020-04-11 10:02:44
阅读次数:
82
博客链接:http://www.cnblogs.com/zhenghongxin/p/8669913.html redis 本地持久化到硬盘有两种方式,一是快照(snapshotting),二是只追加文件(append-only file AOF) 快照 快照,顾名思义可以理解为拍照一样,把整个内存 ...
分类:
其他好文 时间:
2020-04-11 09:42:10
阅读次数:
50