转载的目的是为了方便阅读
Redis作为缓存自我总结
来源:http://doushini.iteye.com/blog/1879616?utm_source=tuicool&utm_medium=referral
redis缓存服务器笔记
redis是一个高性能的key-value存储系统,能够作为缓存框架和队列
但是由于他是一个内存内存系统,这些数据还是要存储到数据库中的
作为缓存框架:
create/updae/delete---同时存到redis和数据库
query--先从redis查,没有记录才从数据库查,并把从数据库查的结果也放一份到redis
作为缓存队列:
2、把对象Object存储到redis中,怎么存?memcache存取对象是序列化和反序列化
使用通用的序列化、反序列化(频繁的会很消耗cpu,使用Google Protocol Buffer,将对象打成二
进制流)
或者使用json存储(阿里巴巴的fast-json)
3、java使用redis的客户端一般是:jedis
jedis的原生接口只支持基本数据类型和String、byte[]
4、我对redis队列的理解:
重要的数据:先存到数据库,然后存到redis
要求响应速度很高的的数据:先写缓存,然后通过消息队列再写入数据库
因为Redis的value支持String、list、set、zset
那么就可以把redis的list当作队列来用
入队:lpush mylist 'hello1'
出队:lpop mylist
5、其提供AOF(追加式操作记录文件)和DUMP(定期数据备份)两种持久化方式
6、VM(虚拟内存机制):如果有1万条数据保存到内存中,那么我就要配置能存储这么多数据的内存
然后这1万条数据有9000条不是活跃数据,那就白白浪费了,可以这样做,当数据容量超过内存时,
将部分value存储到文件中
memcached是把数据完全存储到内存中,而redis是大部分的,因为他支持自定义的VM
同时Redis支持主从复制机制