#Redis#
Redis时完全免费的,高性能的key-value存储系统,能够作为缓存框架和队列。但是由于它是一个内存系统,数据还是得存储在数据库中。
#参考文献#
+ 官方网站 http://redis.io/
+ Redis中文网 http://www.redis.cn/
##作为缓存框架##
作为缓存框架,更多的考虑的是性能、响应时间问题?和数据库联系起来,其实最主要的就是解决数据库查询的响应时间问题,因此,系统可以这样设计:
+ create/update/delete 同时存到redis和数据库
+ read 先从redis查询,如果没有记录在从数据库查找,并把查询结果存到redis,以便下一次查找
##作为缓存队列##
作为缓存队列时,需要存储对象Object到redis中。但是,redis只支持基本的数据类型如String,Map,List,Set等,那么对象怎么存?当然,作为缓存队列时,可能会存在队列的频繁操作,因此,性能也是必须考虑的。
可以采用序列化和反序列化方式,但是,频繁的操作非常消耗CPU,可是使用Google Protocol Buffer,将对想转换为二进制流,或者使用JSON存储,此时最好选择速度非常块的JSON解析工具,例如fast-json
##客户端##
Redis时完全免费的,高性能的key-value存储系统,能够作为缓存框架和队列。但是由于它是一个内存系统,数据还是得存储在数据库中。
#参考文献#
+ 官方网站 http://redis.io/
+ Redis中文网 http://www.redis.cn/
##作为缓存框架##
作为缓存框架,更多的考虑的是性能、响应时间问题?和数据库联系起来,其实最主要的就是解决数据库查询的响应时间问题,因此,系统可以这样设计:
+ create/update/delete 同时存到redis和数据库
+ read 先从redis查询,如果没有记录在从数据库查找,并把查询结果存到redis,以便下一次查找
##作为缓存队列##
作为缓存队列时,需要存储对象Object到redis中。但是,redis只支持基本的数据类型如String,Map,List,Set等,那么对象怎么存?当然,作为缓存队列时,可能会存在队列的频繁操作,因此,性能也是必须考虑的。
可以采用序列化和反序列化方式,但是,频繁的操作非常消耗CPU,可是使用Google Protocol Buffer,将对想转换为二进制流,或者使用JSON存储,此时最好选择速度非常块的JSON解析工具,例如fast-json
##客户端##