多线程操作同一个文件时会出现并发问题。解决的一个办法就是给文件加锁(lock),但是这样的话,一个线程操作文件时,其它的都得等待,这样的话性能非常差。另外一个解决方案,就是先将数据放在队列中,然后开启一个线程,负责从队列中取出数据,再写到文件中。
下面我们讲解一个实际项目中应用的案例,关于日志的处理.这里是使用ASP.NET MVC项目作为Demo。
方式一:使用队列
思路:把所有产生的日志...
分类:
Web程序 时间:
2014-11-23 17:39:13
阅读次数:
243
Redis的主从复制功能非常强大,一个master可以拥有多个slave,而一个slave又可以拥有多个slave,如此下去,形成了强大的多级服务器集群架构.
实现步骤如下:
1.在Windows某个磁盘上创建两个目录,例如; MasterRedis(存储的是Master服务) SlaveRedis(存储的是Slave服务).
2.在Master服务中的配置文件redis.conf修改 :b...
分类:
其他好文 时间:
2014-11-23 16:00:50
阅读次数:
207
Reis的介绍:Redis是完全开源免费的,遵守BSD协议,先进的key-value持久化产品。它通常被称为数据结构服务器,因为值(value)可以是字符串(String),哈希(Map),列表(list),集合(sets)和有序集合(sortedsets)等类型。安装:wgethttp://redis.googlecode.com/files/redis-2.8.3.t..
分类:
其他好文 时间:
2014-11-22 19:04:42
阅读次数:
695
Redis简介
Redis是一个开源的,使用C语言编写,面向“键/值”对类型数据的分布式NoSQL数据库系统,特点是高性能,持久存储,适应高并发的应用场景。Redis纯粹为应用而产生,它是一个高性能的key-value数据库,并且提供了多种语言的API
性能测试结果表示SET操作每秒钟可达110000次,GET操作每秒81000次(当然不同的服务器配置性能不同)。
redis目前提供五种数据...
分类:
Web程序 时间:
2014-11-22 17:29:36
阅读次数:
321
起因,准备使用redis作为celery的broker,使用homebrew安装。错误输出如下:/usr/local/bin/brew: /usr/local/Library/brew.rb: /System/Library/Frameworks/Ruby.framework/Versions/1....
分类:
其他好文 时间:
2014-11-22 17:21:32
阅读次数:
323
Redis与MySQL的结合目前大部分互联网公司使用MySQL作为数据的主要持久化存储,那么如何让Redis与MySQL很好的结合在一起呢?我们主要使用了一种基于MySQL作为主库,Redis作为高速数据查询从库的异构读写分离的方案。为此我们专门开发了自己的MySQL复制工具,可以方便的实时同步My...
分类:
数据库 时间:
2014-11-22 14:36:56
阅读次数:
163
Redis作者谈Redis应用场景毫无疑问,Redis开创了一种新的数据存储思路,使用Redis,我们不用在面对功能单调的数据库时,把精力放在如何把大象放进冰箱这样的问题上,而是利用Redis灵活多变的数据结构和数据操作,为不同的大象构建不同的冰箱。希望你喜欢这个比喻。下面是一篇新鲜出炉的文章,其作...
分类:
其他好文 时间:
2014-11-22 14:31:23
阅读次数:
172
有日子没写博客了,真的是忙得要疯掉。完成项目基础架构搭建工作,解决了核心技术问题,接着需要快速的调研下基于Spring框架下的Redis操作。相关链接:征服 Redis征服 Redis + Jedis征服 Redis + Jedis + Spring (一)—— 配置&常规操作(GET SET DE...
分类:
编程语言 时间:
2014-11-22 13:20:27
阅读次数:
229
一、发布和订阅机制 当一个客户端通过 PUBLISH 命令向订阅者发送信息的时候,我们称这个客户端为发布者(publisher)。 而当一个客户端使用 SUBSCRIBE 或者 PSUBSCRIBE 命令接收信息的时候,我们称这个客户端为订阅者(subscriber)。为了解耦发布者(publi.....
分类:
编程语言 时间:
2014-11-22 13:19:26
阅读次数:
226