java总结 --3.nosql

NoSql数据库的四大分类:

 

键值对存储,比如redis

列存储,比如HBase

文档数据库,比如Mongodb

图形数据库,比如InfoGrid

 

比较:

分类 Examples举例 典型应用场景 数据模型 优点  
键值(key-value) Key 指向 Value 的键值对,通常用hash table来实现        
列存储数据库 Cassandra, HBase, Riak 分布式的文件系统   查找速度快,可扩展性强,更容易进行分布式扩展  
文档型数据库 CouchDB, MongoDb Web应用(与Key-Value类似,Value是结构化的,不同的是数据库能够了解Value的内容) Key-Value对应的键值对,Value为结构化数据   查询性能不高,而且缺乏统一的查询语法。
  Neo4J, InfoGrid, Infinite Graph   图结构 利用图结构相关算法。比如最短路径寻址,N度关系查找等  

NOSQL的特点:

易扩展

灵活的数据模型

大数据量,高性能

高可用。

 

Redis

高性能键值对数据库,支持的键值数据类型:

字符串类型;列表类型;有序集合类型;散列类型;集合类型。

官方测试数据,

50个并发程序,执行10万次请求,读的速度每秒10万次,写的速度每秒八万一千次。

 

应用场景:

缓存数据。

任务队列:秒杀,抢购等

应用排行榜

网站访问统计

数据过期处理:可以精确到毫秒

分布式集群架构中session分离

 

 

redis安装:

环境:

虚拟机,vmware10.0.2

Linux系统:CentOs7.x

ssh客户端:secureCRT7.x,secureFX7.x

 

redis是c语言开发,安装redis需要先到官网下载源码进行编译,编译依赖

 

redis持久化:

RDB持久化。

默认支持的,在指定时间间隔内,将内存中的数据集快照写进磁盘。比如说指定20秒写入。

RDB优势

整个redsi数据库只包含一个文件,对于文件备份是非常完美的,每天归档,系统出现灾难性故障可以很容易恢复

对于灾难恢复,将备份文件拷走,直接恢复

性能最大化

RDB劣势

定时持久化得时候当系统宕机,没来得及写入硬盘,数据可能丢失。子进程完成持久化工作,数据大的时候可能会导致服务器停止几秒

AOF持久化。

以日志的方式记录服务器的每一个操作,在redis服务器启动之初,读取该文件,来重新构建数据库,保证数据是完整的

AOF优势

a.更高的数据安全性,三种同步策略

每秒同步(异步),效率高,所差的是一旦系统宕机,那么这一秒钟修改的数据会丢失

每修改同步(可视为同步),最安全的

不同步

b.对日志文件写入是append模式,即使出现宕机,也不会破坏原来的存在的内容。

c.如果日志过大,redis自动启动重写机制

d.包含一个格式清晰,易于理解的日志文件,记录所有的操作

AOF劣势

相同数量的数据集,比rdb文件大;根据同步策略的不同,运行效率低于rdb;

你可能感兴趣的:(nosql)