关系数据库与非关系型数据库
关系型数据库
- 一个结构化的数据库,创建在关系模型基础上
- 一般面向于记录
- 包括Oracle、MySQL、SQLServer、Microsoft Access、DB2等
非关系型数据库
- 除了主流的关系型数据库外的数据库,都认为是非关系型
- 包括Redis、MongoDB、Hbase、CouhDB等
非关系型数据库产生背景
- High performance——对数据库高并发读写需求
- Huge Storage——对海量数据高效存储与访问需求
- High Scalability && High Availability——对数据库高可扩展性与高可用性需求
Redis
- Redis基于内存运行并支持持久化
- 采用 key-value(键值对)的存储形式
- 优点
- 具有极高的数据读写速度
- 支持丰富的数据类型
- 支持数据的持久化
- 支持数据备份
- 原子性
Redis持久化
- 持久化概述
- Redis是运行在内存中,内存中的数据断电丢失
- 为了能够重用Redis数据,或者防止系统故障,需要将Redis中的数据写入到磁盘空间中,即持久化
- 持久化分类
- RDB方式:创建快照的方式获取某一时刻Redis中所有数据的副本
- AOF方式:将执行的写命令写到文件的末尾,以日志的方式来记录数据的变化
RDB
- Redis的默认持久化方式
- 默认文件名dump.rdb
- 触发条件
- 优缺点
- 适合大规模的数据恢复
- 如果业务对数据完整性和一致性要求不高,RDB是最好的选择
AOF
- Redis默认不开启
- 弥补RDB的不足(数据的不一致性)
- 采用日志的形式来记录每个写操作,并追加到文件中
- Redistribution重启会根据日志文件的内容将写指令从前到后执行一次以完成数据的恢复工作
Redis命令
命令 | 说明 |
redis-server | 用于启动 Redis 的工具 |
redis-benchmark | 用于检测 Redis 在本机的运行效率 |
redis-check-aof | 修复 AOF 持久化文件 |
redis-check-rdb | 修复 RDB 持久化文件 |
redis-cli | 本机连接数据库 |
redis-cli -h 192.168.10.101 -p 6379 | 远程连接数据库 |
redis-benchmark工具
redis-benchmark 是官方自带的 Redis 性能测试工具,可以有效的测试 Redis 服务的性能。
命令 | 说明 |
-h | 指定要连接的Redis服务器的主机名 |
-p | 指定要连接的Redis服务器的端口号 |
-s | 指定要连接的Redis服务器的Unix域套接字路径 |
-c | 指定并发连接数 |
-n | 指定每个客户端发送的请求总数 |
-d | 以字节为单位指定SET/GET操作的值的大小 |
-k | 1=keep alive 0=reconnect |
-r | SET/GET/INCR使用随机key, SADD使用随机值 |
-P | 通过管道传输指定数量的请求 |
-q | 强制安静模式,仅显示每秒查询数(query/sec)的值 |
--csv | 以CSV格式输出测试结果 |
-l | 生成循环,永久执行测试 |
-t | 仅运行以逗号分隔的测试命令列表 |
-I | Idle模式。仅打开N个idle连接并等待 |