Redis是一个响应式的服务,当客户端发送一个请求后,就处于阻塞状态等待Redis返回结果。这样一次命令消耗的时间就包括三个部分:请求从客户端到服务器的时间、结果从服务器到客户端的时间和命令真正执行时间,前两个部分消耗的时间总和称为RTT(Round Trip Time),当客户端与服务器存在网络延时时,RTT就可能会很大,这样就会导致性能问题。管道(Pipeline)就是为了改善这个情况的,利用...
分类:
其他好文 时间:
2015-03-19 18:26:57
阅读次数:
234
工作需要对Hiredis进行了简单封装,实现功能:
1、API进行统一,对外只提供一个接口;
2、屏蔽上层应用对连接的细节处理;
3、底层采用队列的方式保持连接池,保存连接会话;
4、重连时采用时间戳进行控制,每隔一定时间(3s)重连一次,防止频繁重试造成的不必要浪费。
先看一下Hiredis的常用数据结构与API:
//hiredis/hiredis.h
/* Context for...
分类:
其他好文 时间:
2015-03-17 12:29:27
阅读次数:
302
第一篇中介绍了Redis是一个强大的键-值仓储,支持五种灵活的数据结构。事实上,Redis还支持其它的一些高级:事务、发布与订阅、管道、脚本等,本篇我们来看一下事务。
事务
前一篇中我们提到,在Redis中每个命令都是原子性的,因为Redis内部的实现是单线程的。当然Redis也支持多个命令之间的事务,不过事务在Redis中相对来说很简单,不像数据库事务那样涉及传播级别、隔离级别等特性。
...
分类:
其他好文 时间:
2015-03-17 10:36:37
阅读次数:
177
Yii框架中内置好几个缓存类,其中有memcache的类,但是没有redis缓存类,由于项目中需要做主从架构,所以扩展了一下:/** * FileName:RedisCluster * 配置说明 * 配置为1主多从 或者 1个独立的服务器 * 写往主的里面写 * 读是从从的里面读 * 'class....
分类:
其他好文 时间:
2015-03-11 16:24:55
阅读次数:
285
使用redis做缓存的思路是在spring的项目中配置拦截器,在service层做切面,在findXXX或者getXXX等方法上进行拦截判断是否缓存即可。
1.环境:spring 3.1.2 + spring data redis 1.0.0+ jedis 2.1.0
2.spring配置文件配置:
...
分类:
编程语言 时间:
2015-03-08 00:11:17
阅读次数:
2759
工作中写的一个redis缓存服务类 /// /// 缓存服务 /// public class CacheService { #region redis /// /// redis连接池 /// p...
分类:
其他好文 时间:
2015-03-07 13:52:39
阅读次数:
145
由于单台Redis服务器的内存管理能力有限,使用过大内存的Redis又会使得服务器的性能急剧下降,一旦服务器发生故障将会影响更大范围业务,而Redis 3.0 beta1支持的集群功能还不适合生产环境的使用。于是为了获取更...
分类:
其他好文 时间:
2015-03-02 19:28:37
阅读次数:
115
Redis缓存分析:
首先提出3个问题:
1)是否缓存整个网站中间件的数据?
2)如果缓存整个中间件的数据redis是否可以承压?
3)PHP缓存redis是否会对中间件的缓存方式存在影响?...
分类:
Web程序 时间:
2015-02-10 18:51:11
阅读次数:
264
1.业务系统的关联关系用mysql组织2.缓存数据用memcached、redis存取3.大文本数据放进mongodb存取中4.数据统计计数增加阀值功能用mysql将memcached、redis、mongodb三者结合起来,根据实际业务需要看一下哪些适合memcached、redis缓存存取,哪些...
分类:
其他好文 时间:
2015-02-06 12:57:17
阅读次数:
158
项目的首页面由于有大量的图片、文字等可变信息,之前没有使用缓存,首页访问起来比较慢,后来加入了oscache,最近想引进redis作为缓存。搜帖子,按部就班的来做。一.首先使用maven在项目中引入jedis client端: redis.clients jedis 2.1.0引入...
分类:
其他好文 时间:
2015-01-30 15:24:38
阅读次数:
348