Nosql
特点: 1、方便扩展(数据之间没有关系,很好扩展!) 2、大数据量高性能(Redis 一秒写8万次,读取11万,Nosql的缓存记录级,是一种细粒度的缓存,性能比较高) 3、数据类型是多样型的!(不需要事先设计及数据库!随取随用) 4、传统RDBMS和NoSQL 传统RDBMS
- 结构化组织
- SQL
- 数据和关系都在单独的表中
- 数据操作语言,数据定义语言
- 严格的一致性
- 基础的事务
- 。。。。
NoSQL - 不仅仅是数据
- 没有固定的查询语言
- 键值对存储,列存储,文档存储,图形数据库(社会关系)
- 最终一致性
- CAP定理和BASE(异地多活)
- 高性能,高可用,高扩展
- …
3V+3高 大数据时代的3V:主要是描述问题的 1、海量Volume 2、多样Variety 3、实时Velocity 大数据时代的3高:主要是对程序的要求 1、高并发 2、高扩展(水平拆分) 3、高性能
架构师:没有什么是加一层解决不了的
NoSQL的四大分类
KV键值对:
- 新浪:Redis
- 美团:Redis + Tair
- 阿里、百度:Redis + memcache
文档型数据库(bason格式和json一样): - MongoDB
是一个基于分布式文件存储的数据库,C++编写,主要用来处理大量的文档 是一个介于关系型数据库和非关系型数据中中间的产品!是非关系型数据库中功能最丰富、最像关系型数据库的数据库的! - ConthDB
列存储数据库 - HBase
- 分布式文件系统
图关系数据库 不是存图形,放的是关系 Neo4j,InfoGrid
Redis入门
Remote Dictionary Server 远程字典服务
会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。
作用:
- 内充存储、持久化,内存中是断电即失,持久化(RDB,AOF)
- 效率高,可以用于高速缓存
- 发布订阅系统
- 地图信息分析
- 计时器、计数器(浏览量)
特性: - 多样化的数据类型
- 持久化
- 集群
- 事务
Linux 安装 1、下载 redis.io 2、放到/opt/local下 3、解压 并进入到解压文件中 tar -zxvf redis-6.2.6.tar.gz cd redis-6.2.6 4、基本的环境安装 5、进入redis的默认安装路径 cd /usr/local/bin 6、将redis的配置文件复制到安装路径下
cp /opt/local/redis-6.2.6/redis.conf zconfig/
7、进入配置文件中修改配置文件 vim redis.conf 8、启动redis 9、使用redis-cli -p 6379进行连接测试 10、查看redis是否启动 ps -ef | grep redis 11、如何关闭redis
测试性能
redis-benchmark 是一个压力测试工具 官方自带的性能测试工具! redis-bechmark 命令参数! 来自菜鸟;
性能测试:本地测试主机localhost,端口号6379,并发数100,指定请求数10000; redis-benchmark -h localhost -p 6379 -c 100 -n 10000
redis基本知识
1、默认有16个数据库 默认使用的是第0个数据库 可以用select进行切换,并用dbsize 查看数据大小
keys *
flushdb
flushall
redis是单线程的 redis是基于内存操作,CPU不是redis的性能瓶颈,redis的瓶颈是 机器的内存和网络带宽。 redis是C语言写的,官方提供的数据是100000+ 的QPS,完全不比同样是使用key-value的memcache差 redis为什么是单线程还这么快 1、误区1:高性能的服务器一定是多线程的 2、误区2:多线程(CPU上下文会切换)一定比单线程效率高
读写速度:CPU>内存>硬盘 核心:redis是将所有的数据全部放在内存中,所以说使用单线程去操作效率是最高的,多线程(CPU上下文会切换:耗时的操作!!!),对于内存系统来说,如果没有上下文切换效率就是最高的!多次读写都是在一个CPU上,在内存情况下,这个就是最佳的方案!
|