一、概要
redis是一种面向‘键/值’对类型数据的分布式NoSQL数据库系统(非关系型数据库)。高性能,持久化,高并发。数据是缓存再内存中的。
二、名词解释
特性——持久化:周期性地把更新的数据写入磁盘和更改的操作写入追加的记录文件,实现主从同步(master-slave)。
主从同步(master-slave):目的——分担读写压力,主机可负责读写服务,从机只负责读。同时根据业务需求,支持数据的弱一致性(微博),以及强一致性(淘宝)。
一主多从结构:
主从同步机制:
主从同步策略: 主从刚刚连接的,先尝试进行部分同步,如果部分同步失败再进行全同步。同时slave可以再任何时候发起全同步的请求。注:http://sofar.blog.51cto.com/353572/1413024/
三、存储类型
string
string--key-value类型,value不仅是string还可以是数字类型。
hash
hash是集合类型,适用于存储对象。
memcache的数据存储结构:
缺点:当修改某一项的值时,需要将整个对象取出反序列化更新后再进行序列化存储回去,增大了开销,并且不适合并发操作的场合。
redis的数据存储结构:
可以对单个数据进行操作,如更新某个数据的值:hset user username wangyuan;删除单个数据:hdel user username
List
list,链表。类似于数组,顺序存储。可以使用指针从头到尾定位数据。
Lists的另一个应用就是消息队列,可以利用Lists的PUSH操作,将任务存在Lists中,然后工作线程再用POP操作将任务取出进行执行。Redis还提供了操作Lists中某一段的api,你可以直接查询,删除Lists中某一段的元素。
Sets
sets是一个集合,用于存放不重复值的组合。
例:微博,可以将一个用户所有的关注人存在一个集合中,将其所有的粉丝存在一个集合。
Sorted Sets
与sets相比,sorted sets增加了一个权重的概念,因此集合中的元素可以根据权重进行有序排列。例:存储一个班同学成绩的sorted sets,集合的value可以是同学的学号,而权重可以是学生的成绩。
http://redisdoc.com/官网