简
4年前
数组越界导致系统重启的案例
一.问题描述引言一般数组越界问题,往往是涉及多线程并发的情况下,某个或多个临界资源(比如类或对象的成员变量)多线程并发读写而导致的异常。出现这样情况,一般是该保护的地方没有用同步锁保护,或者是用错了同步锁,这类问题比较常规。但本文要分享的案例却是一个方法内的临界资源已被加锁保护的情况下仍然出现的数组越界问题,导致system\server挂掉,手
Stella981 Stella981
3年前
Redis!
概述Redis是一个KeyValue存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)和zset(有序集合)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原
Stella981 Stella981
3年前
Innodb中mysql如何快速删除2T的大表
这个时候所有的mysql的相关进程都会停止,直到drop结束,mysql才会恢复执行。出现这个情况的原因就是因为,在droptable的时候,innodb维护了一个全局锁,drop完毕锁就释放了。这意味着,如果在白天,访问量非常大的时候,如果你在不做任何处理措施的情况下,执行了删大表的命令,整个mysql就挂在那了,在删表期间,QPS会严重下滑,然后产
Wesley13 Wesley13
3年前
MySQL并发利器多版本控制器MVCC
    MySQl大多数事务性存储引擎实现的都不是简单的行级锁。基于高性能考虑,他们一般都同时是想了多版本并发控制器(MVCC)。不仅仅MySQL,包括Oracle、PostgreSQL等其他数据库系统也都实现了MVCC,但各自实现机制不尽相同,因为MVCC没有一个统一的实现标准。MVCC可以说是行级锁的一个变种,但是他在多数情况下避免了加锁操作,因此开销更
Wesley13 Wesley13
3年前
JAVA中 ReentrantReadWriteLock读写锁详系教程,包会
一、读写锁简介现实中有这样一种场景:对共享资源有读和写的操作,且写操作没有读操作那么频繁。在没有写操作的时候,多个线程同时读一个资源没有任何问题,所以应该允许多个线程同时读取共享资源;但是如果一个线程想去写这些共享资源,就不应该允许其他线程对该资源进行读和写的操作了。 针对这种场景,JAVA的并发包提供了读写锁ReentrantReadW
Stella981 Stella981
3年前
27个阿里 Java 开源项目,值得收藏!
大家好,这里为大家整理了阿里的Java开源项目,希望对大家有所帮助1.分布式应用服务开发的一站式解决方案SpringCloudAlibabaSpringCloudAlibaba致力于提供分布式应用服务开发的一站式解决方案。此项目包含开发分布式应用服
Stella981 Stella981
3年前
Redis安装教程及可视化工具RedisDesktopManager下载安装
Redis安装教程:1\.Windows下安装教程:下载:https://github.com/MSOpenTech/redis/releases(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fgithub.com%2FMSOpenTech%2F
Stella981 Stella981
3年前
Redis
Redis5种数据类型使用场景1.String1.1应用场景String是最常用的一种数据类型,例如:key/value存储,value可以是String、数字等。1.2常用操作1set赋值,用法:set    keyvalue2get赋值,用法:get    key3incr递增数字,仅仅对key的value为数
Stella981 Stella981
3年前
Redis
Redis集合包括Set(无序集合)和ZSet(有序集合),这里的Set实现相当于Java中的HashSet,它内部实现了一个特殊的字典,字典中所有的value都是一个值NULL。下面我们来熟悉下set的常用的命令Setsadd namehelloZSetzset是一个有序集合,他有着java里的Sor
浅谈Redis - 热点key问题 | 京东云技术团队
热key问题就是突然有几十万的请求去访问redis上的某个特定key,那么这样会造成流量过于集中,达到物理网卡上限,从而导致这台redis服务器直接宕机。