之前我将高并发的解决方法误认为是线程或者是队列可以解决,因为高并发的时候是有很多用户在访问,导致出现系统数据不正确、丢失数据现象,所以想到的是用队列解决,其实队列解决的方式也可以处理,比如我们在竞拍商品、转发评论微博或者是秒杀商品等,同一时间访问量特别大,队列在此起到特别的作用,将所有请求放入队列,...
分类:
编程语言 时间:
2014-10-11 20:21:06
阅读次数:
187
memcached一般用于在访问一些性能相对低下的数据接口时(如数据库),为了保证这些数据接口的稳定性,加上memcached以减少访问次数,保证这些数据接口的健壮性。一般memcached的数据都是定时失效的,当数据失效时一般会再次去访问取数据接口,然后将其更新至memcached中。这时就会有一...
分类:
系统相关 时间:
2014-10-11 02:35:14
阅读次数:
263
在继续了解Java内存模型之前,最好先理解Java对象的内存表示。在网上搜了下Java对象内存表示,说得都不够系统和到位。之前看了《Hotspot实战》一书,对JVM如何表示对象这块说得挺好,推荐一下。如果不理解JVM运行时的各种内存区域以及Java调用的过程,那么把Java内存模型理解到位。这个是一个比较大的主题,以后会陆续写一些JVM相关的。这里单把Java对象的内存拿出来聊聊,文中内容都基于...
分类:
编程语言 时间:
2014-10-10 17:01:34
阅读次数:
1965
理解并发编程的一些基本概念很重要,给我们思考问题指明一个基本的方向。这篇说一说锁的一些基本概念。
在通常情况下我们说的锁都指的是“互斥”锁,因为在还存在一些特殊的锁,比如“读写锁”,不完全是互斥的。这篇文章说的锁专指互斥锁。
锁是处理并发的一种同步手段。单线程程序和并发程序的最终目的都是要保证程序的正确性,但是最大的区别是:
单线程程序的正确性只关注程序的运行结果和目标是一致...
分类:
其他好文 时间:
2014-10-09 01:59:38
阅读次数:
165
应对Memcached缓存失效,导致高并发查询DB的几种思路
分类:
数据库 时间:
2014-10-08 00:22:44
阅读次数:
284
数据库设计及使用是WEB开发程序员必备的一项基础技能,在大数据量和高并发场景,合理的数据结构及SQL查询优化对项目来说都会显得格外重要。大部分有经验的程序员都能了解到,程序的瓶颈往往不在程序本身,而在数据访问层。造成数据访问效率低下的原因有很多,如何解决这些问题,直接影响到应用的稳定性、健壮性。...
分类:
数据库 时间:
2014-10-06 18:55:30
阅读次数:
245
背景知识: 高并发一直以来是数据的所追求的目标,然,一般事物是有两面性的。不多说了,等下变邪教了。下面直接看 并发性最高的隔离级别 read uncommitted1、 read uncommitted 级别 比方这时有两个连接A,B;其中A想把表中的值由111改成222,表...
分类:
数据库 时间:
2014-10-05 13:40:08
阅读次数:
300
1、修改用户进程可打开文件数限制在Linux平台上,无论编写客户端程序还是服务端程序,在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开文件数量 的限制(这是因为系统为每个TCP连接都要创建一个socket句柄,每个socket句柄同时也是一个文件句柄)。可使用ulim...
分类:
其他好文 时间:
2014-10-02 17:40:53
阅读次数:
198
??
1 select
A:select能监听的文件描述符个数受限于FD_SETSIZE,一般为1024,单纯改变进程打开
的文件描述符个数并不能改变select监听文件个数
B:解决1024以下客户端时使用select是很合适的,但如果链接客户端过多,select采用的是轮询模型,会大大降低服务器响应效率,不应在select上投入更多精力
2
依赖的头文件
...
分类:
其他好文 时间:
2014-10-01 00:12:10
阅读次数:
215
??
1 poll
A
依赖的头文件
#include
B
函数声明
int poll(struct pollfd *fds, nfds_t nfds,int timeout);
struct pollfd {
int fd; /*
文件描述符*/
short events; /*
监控的事件*/
short revents...
分类:
其他好文 时间:
2014-09-30 23:55:20
阅读次数:
204