1.NoSql(Not only sql):泛指非关系型数据库,如Redis,Memcache,Mongodb。 2.Redis特性:KV(键值对),Cache(缓存),Persistence(持久化)。 3.大数据时代的3V:海量,多样,实时。 4.互联网需求3高:高并发,高性能,高可扩。 5.Nosql数据库的四大分类。 (1)KV键值数据库:如redis,memcache,tair。 (2)文档型数据库:mongodb。 (3)列存储数据库:hbase。 (4)图关系数据库:neo4j,infogrid(它不是存放图形的,专注于构建关系图谱)。 6.分布式数据库中CAP+BASE:C(Consistency强一致性)A(Availability可用性)P(Partition tolerance分区容错性)。BASE是为了解决强一致性导致性能降低而提出的解决方案,BA:(Basically Available基本可用)S:(Soft state软状态)E:(Eventually consistent最终一致)。 7.分布式:简而言之,在不同的服务器上部署不同的服务模块。 8.集群:简而言之,在不同的服务器上部署相同的服务模块。 9.redis数据类型总共有五种:字符串(String),列表(List),哈希(Hash),集合(Set),有序集合(Sorted Set)。 10.配置文件redis.conf的单位转换:1k=1000bytes ;1kb=1024bytes,不支持bit。 11.redis的RDB持久化的优缺点: 优点:(1)适合大量数据恢复(2)适合对数据的一致性和完整性要求不高的情况。 缺点:(1)fork的时候,由于是从内存中再拷贝了一份数据,所以对内存容量的要求至少是拷贝数据大小的两倍甚至更多(2)每次对一段时间内的数据进行快照时,由于个别原因导致redis意外down的话,则会丢失最后一次快照更改的数据。 12.如何停止RDB持久化:命令:redis-cli config set save " "。 13.RDB持久化保存数据的文件:dump.rdb。 14.AOF持久化保存数据的文件:appendonly.aof。 15.AOF持久化修复损坏的appendonly.aof文件命令:redis-check-aof --fix appendonly.aof。 16.AOF持久化方式的优缺点: 优点:有三种持久化策略:(1)appendsync always(一直同步):和数据的变更完全同步,一旦变化便会持久化的硬盘,虽然性能上会变慢但保持了数据的完整性(2)appendsync everysec(每秒同步):每秒持久化一次数据到硬盘,若出现宕机的情况,就可能会丢失一秒的数据(推荐采取这种折中的策略)(3)appendsync no:从不同步数据。 缺点:(1)相同数据集的情况下,aof文件的大小比rdb文件的大,数据恢复相对就比较慢(2)运行速率没有rdb快。 17.关于持久化的含义:指在指定的时间间隔内将内存中的数据持久化到硬盘中,用程序员行话讲就是snapshot快照。 18.redis的主从复制(master/slave) (1)含义:是一种主机更新数据后,根据配置和策略将数据同步到备机的master/slave机制,master以写数据为主,而slave是以读数据为主。 (2)用处:读写分离,容灾备份。 (3)命令:从库配置:slaveof 主库ip 主库端口;查看主从库状况日志:info replication;当主库shutdown后从库可以执行以下命令成为主库:slaveof no one 。 (4)复制原理:slave会向master发送sync命令,master接收到命令后会启动存盘进程收集所有修改数据集的命令,待存盘进程执行完后,master会将整个数据文件发送给slave完成同步。 注:全量复制:slave在收到数据后将其存盘并全部加载到内存中。增量复制:master会将新的修改指令发送给slave,继续完成同步。复制的缺点:所有的写操作都是在master上进行,然后再同步到slave,该过程存在一定的延迟,特别是当系统繁忙或者slave数据多时这种情况更加严重。 19.哨兵机制 (1)含义:但主库因为某种原因故障后,会根据规则投票出一个从库作为主库继续使用。 (2)使用:创建sentinel.conf文件(文件位置和redis.conf文件位置在同一个地方),文件中填写 sentinel monitor 被监控数据库名字(自己起名字) 127.0.0.1 6379 1,后面的数字1表示主机挂掉后,投票给slave让谁当主机,票多的成为主机,然后启动文件即可,如 Redis-sentinel /sentinel.conf文件所在目录/sentinel.conf。 注:一组sentinel可以同时监控多个master