redis是内存型数据库,数据保存在内存中,通过tcp直接存取,优势是速度快,并发高,缺点是数据类型有限,查询功能不强,一般用作缓存。
redis具有持久化机制,可以定期将内存中的数据持久化到硬盘上。
Redis是单线程运行的,所以IO是串行化的,网络IO和内存IO,因此当单条数据太大时,由于需要等待一个命令的所有IO完成才能进行后续的命令,所以性能会受影响。
redis是一个高性能的key-value存储系统,能够作为缓存框架和队列
但是由于他是一个内存内存系统,这些数据还是要存储到数据库中的
作为缓存框架:
create/updae/delete---同时存到redis和数据库
query--先从redis查,没有记录才从数据库查,并把从数据库查的结果也放一份到redis
作为缓存队列list:
2、把对象Object存储到redis中,怎么存?memcache存取对象是序列化和反序列化
使用通用的序列化、反序列化(频繁的会很消耗cpu,使用Google Protocol Buffer,将对象打成二
进制流)
或者使用json存储(阿里巴巴的fast-json)
3、对redis队列的理解:
重要的数据:先存到数据库,然后存到redis
要求响应速度很高的的数据:先写缓存,然后通过消息队列再写入数据库
让一般数据库使用固态硬盘,这样就可以减少内存与硬盘的速度匹配问题,也可以达到内存数据库的效果,甚至更好。