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支持主从复制机制