一、前景提要
noSql四大类:
kv键值对:
-
新浪:Redis
-
美团:Redis +Tair
-
阿里、百度:Redis+memecache
文档型数据库:
-
MongoDB(一般必须要掌握)
MongoDB是一个基于分布式文件存储的数据库,C++编写,主要用来处理大的文档
MongoDB是一个介于关系型数据库和非关系型数据库之间的产品,
最像关系型数据库
-
ConthDB
列存储数据库:
-
HBBase
-
分布式文件系统
还有图存储数据库(略)
二、Redis入门
1、概述
远程字典服务(Remote Dictionary Server)
是一个开源的使用ANSI C语言编写 支持网络 可基于内存亦可持久化的日志型,Key-Value数据库,并提供多种语言API
Redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从同步),免费和开源,是当下最热门的noSQL技术之一,被称为结构化数据库
2、作用
2.1.内存存储、持久化(数据库持久化 ---- rdb,aof)
2.2.效率高,可以用于高速缓存
2.3.发布订阅系统
2.4.地图信息分析
2.5.计数器,计时器
3、特性
3.1.多样的数据类型
3.2.持久化
3.3.集群
3.4.事物
四、下载安装
Redis 下载地址:
下载好了自己找一个路径然后解压,Windows操作系统很小白,直接找到
redis-server-exe就可以运行了。
![](https://img-blog.csdnimg.cn/d4c0c886b69f4c2ea9aab2ee228fb8ee.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBARG91YmxlLVY=,size_20,color_FFFFFF,t_70,g_se,x_16)
然后这个页面不要关闭,要不然服务器就断开连接了!
找到你解压的文件的“redis-cli-exe”
连接本地服务器,连接成功:
6379默认端口号(为什么是6379,因为“粉丝效应”,感兴趣自己查)
![](https://img-blog.csdnimg.cn/00d416ca728e4c3abdf2ab2f29f93ff5.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBARG91YmxlLVY=,size_20,color_FFFFFF,t_70,g_se,x_16)
存储数据,获取数据
五、测试性能
找到解压的文件中的“redis-benchmark.exe”:
开始运行redis-benchmark
从上图中了解到:
每秒处理13987.97个请求
完成所有请求大概需要11ms
六、Redis 基本知识说明
1.Redis默认16个数据库,默认使用的是第0个,可以用select切换数据库“select 3”,切换到第四个数据库。
![](https://img-blog.csdnimg.cn/10fd7044943d4510bb0c2a94f47ed0ff.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBARG91YmxlLVY=,size_20,color_FFFFFF,t_70,g_se,x_16)
还可以查看空间,当前空间为0
“
keys *”代表查看数据库的所有的值key
清空命令:
flushdb(清除当前数据库),
FLUSHALL(清空所有数据库)
2.Redis是单线程的
Redis是基于内存操作的,CPU不是Redis性能瓶颈,Redis的瓶颈是根据机器的内存和网络带宽。
那为什么单线程还这么快?
1.误区1:高性能的服务器一定是多线程的? ---- 不是
2.多线程(CPU会上下文切换!)一定比单线程效率高?
CPU速度>内存 速度 >硬盘
核心:Redis是将所有的数据都放在内存中的,而多线程的CPU会上下文切换,耗时。对于内存系统来说,没有上下文切换效率就是会最高的,因为多次读写都在一个CPU中。