1. 需求起因高并发场景下,需要使用redis做缓存,让请求先访问到redis,而不是直接访问MySQL等数据库。 2. 谁先谁后 3.可行方案 3.1 延迟双删+过期策略 3.2 缓存异步更新 (1) 应用直接写数据到数据库中。(2) 数据库更新binlog日志。(3) 利用Canal中间件读取b ...
分类:
数据库 时间:
2020-06-07 11:13:38
阅读次数:
83
一、概述 1.是JDK1.5出现的专门应对高并发的包 2.内容(5个):BlockingQueue阻塞队列、ConcurrentMap并发映射、ExectorService执行器服务、Lock锁、原子性操作 BlockingQueue-阻塞式队列: 一、概述 1.依然遵循“先进先出”(FIFO)的原 ...
分类:
其他好文 时间:
2020-06-06 12:50:18
阅读次数:
56
多线程:到底什么时候该用多线程 一、高并发 系统接受实现多用户多请求的高并发时,通过多线程来实现。 二、线程后台处理大任务 一个程序是线性执行的。如果程序执行到要花大量时间处理的任务时,那主程序就得等待其执行完才能继续执行下面的。那用户就不得不等待它执行完。 这时候可以开线程把花大量时间处理的任务放 ...
分类:
编程语言 时间:
2020-06-06 10:48:23
阅读次数:
80
优化,更多是对针对数据结构在读或写上进行优化;常见的框架优化更多的是计算和存储上的优化 一、软优化: 1. 代码层面的优化,例如: 1)python中访问列表时,set比list快,尤其是数据量比较大时,in的访问,set效率更高 2)内存访问比磁盘访问更快,即适当添加os cache(内存缓存)和 ...
分类:
其他好文 时间:
2020-06-05 23:13:29
阅读次数:
71
主从复制简介:互联网"三高"架构高并发高性能高可用高可用目标:业界可用性目标5个九,即99.999%,即服务器年宕机时长低于315秒,约5.25分钟单机Redis的风险与问题问题1.机器故障现像:硬盘故障、系统崩溃本质:数据丢失,很可能对业务造成灾难性打击结论:基本上会放弃使用redis问题2.容量瓶颈现像:内存不足,从16G升到64G,从64G升级到128G,无限升级内存本质
分类:
其他好文 时间:
2020-06-05 18:01:17
阅读次数:
70
Redis作为一款开源的、高性能的键值对存储。支持主从复制,并通过哨兵模式(sentinel)提高了高可用性,以及集群(Redis Cluster)模式保证了高并发性。 一、redis主从 Redis本身提供数据持久化的功能(两种方式:RDB和AOF),把数据保存到磁盘上,保证了即使服务器重启的情况 ...
分类:
其他好文 时间:
2020-06-04 01:35:53
阅读次数:
56
Java高并发教程:高并发IO的底层原理 IO读写的基础原理 程序进行IO读写依赖于操作系统底层的IO读写,主要为read、write两大系统调用。在不同的操作系统中,IO读写的系统调用的名称可能不完全一样,但是基本功能是一样的。 首先我们必须要明白的的是,read系统调用,并不是直接从物理设备把数 ...
分类:
编程语言 时间:
2020-06-04 00:58:33
阅读次数:
89
JDK并发包 3.1同步控制 synchronized、obj.wait()、obj.notify() 3.1.1关键字synchronized的功能扩展:重入锁 java.util.concurrent.locks.ReentrantLock类来实现的 手动加锁:lock.lock() 手动解锁: ...
分类:
编程语言 时间:
2020-06-03 13:56:57
阅读次数:
61
面试题:高并发场景下,如何保证缓存与数据库一致性? 问题分析 我们日常开发中,对于缓存用的最多的场景就像下图一样,可能仅仅是对数据进行缓存,减轻数据库压力,缩短接口响应时间。 这种方案在不需要考虑高并发得去写缓存,高并发得读写缓存时,是不会有问题,但是如果是在高并发场景下,要保证缓存和数据库的一致性 ...
分类:
数据库 时间:
2020-06-02 11:23:03
阅读次数:
81
一、Redis概述 在传统的java web项目中基本都使用数据库进行存储数据,但是使用数据库会有一些性能弊端,主要是性能方面,因为数据库持久化数据主要是面向磁盘的,而磁盘的读写速度又比较慢,因此在一般的管理系统中使用数据库来存储数据,因为它不存在高并发,没有瞬间需要读写大量数据的请求。而在互联网中 ...
分类:
数据库 时间:
2020-06-01 14:01:50
阅读次数:
125