1.redis特点
1.1方便扩展(数据之间没有关系,很好扩展!)
1.2大数据量高性能(Redis1秒写8万次,读取11万次,NoSQL的缓存记录级,是一种细粒度的缓存,性能比较高!)
1.3数据类型是多样性的(不需要事先设计数据库!随取随用!如果是数据量十分大的表,很多人就无法设计了!)
1.4传统RDBMS和NoSQL
传统的RDBMS
-结构化组织
-SQL
-数据和关系都存在单独的表中
-操作操作,数据定义语言
-严格的一致性
-基础的事务
NoSql
-不仅仅是数据
-没有固定的查询语言
-键值对存储,列存储,文档存储,图形数据库(社交关系)
-最终一致性
-CAP定理和BASE
-高性能,高可用,高扩展
2.大数据的3V+3高
海量Volume
多样Variety
实时Velocity
高并发
高可拓
高性能
3淘宝技术简单介绍
1.商品的基本信息
关系型数据库就可以解决
2.商品的描述以及评论(文字居多)
文档数据库即可,MongoDb
3.图片
分布式文件系统 FastDFS
-淘宝自己的 TFS
-Google GFS
-Hadoop HDFS
-阿里云的 oss
4.商品关键字(搜索)
-搜索引擎 solr elasticsearch
-ISearch
5.商品热门的波断信息
-内存数据库
-Redis Tair Memache
6.商品的交易,外部的支付接口
-三方应用
4.NoSQL的四大分类
KV键值对:
- 新浪:Redis
- 美团:Redis+Tail
- 阿里、百度: Redis+memcache
文档型数据库:
- MongoDB
- MongoDB是一个基于分布式文件存储的数据库,用C++编写,主要用来处理大量的文档
- MongoDB是一个介于关系型数据库和非关系型数据库中中间的产品!MongoDb是非关系型数据库中功能最丰富,最像关系型数据库的!
列存储数据库
- HBase
- 分布式文件系统
图关系数据库
- 他不是存图形,放的是关系,比如:朋友圈社交网络,广告推荐
- Neo4j,InfoGrid;
5.redis概述
Redis(Remote Dictionary Server ),即远程字典服务
redis能干嘛
a.内存存储,持久化,内存是断电既失,所以说持久化很重要(rdb和aof)
b.效率高,可以用于高速缓存
c.发布订阅系统
d.地图信息分析
e.计数器,计时器(浏览量)
redis特性
a.多样的数据类型
b.持久化
c.集群
d.事务
6.安装redis
1.下载tar文件解压文件
2.输入yum install gcc-c++命令安装c++环境,进入redis安装目录,执行make命令(会花一点时间),然后执行make install
3.redis的默认安装路劲是/usr/local/bin(类似于windows的默认安装路劲)
4.redis默认不是后台启动的,在配置文件中修改为daemonize yes
5.启动redisredis-server keboconfig/redis.conf
6.连接redis redis-cli -p 6379
7.查看redis的进程是否开启 ps -ef|grep redis
8.结束redis命令,在redis-cli中输入shutdown即可
7.redis性能测试
redis-benchmark -h localhost -p 6379 -c 100 -n 1000 c是并发数,n是请求数
8.redis基础知识
redis有16个数据库,默认使用的是第0个数据库,可以使用select进行切换数据库
清除当前数据库 flushdb
查看当前所有的key值keys *
清楚所有数据库 flushall
redis是单线程的!
明白redis是很快的,官方表示,redis是基于内存操作,CPU不是Redis的性能瓶颈,redis的瓶颈是根据机器的内存和网络带宽。
redis为什么是单线程还这么快?
redis是C语言写的,官方提供的数据为100000+的QPS,完全不比同样是使用key-value的Memecache差!
redis是将所有的数据全部放在内存中,所以使用单线程去操作效率就是最高的,多线程(CPU上下文会切换,耗时的操作!!!),对于内存系统来说,如果没有上下文切换效率就是最高的!多次读写都是在一个CPU上的,在内存情况下,这个就是最佳方案!