NoSQL
Not Only SQL(不仅仅是sql)
解决高并发。
NotSQL在当今大数据下,发展迅速,NoSQL必须掌握。
NoSQL特点:
(1)方便扩展(数据之间没关系)
(2)大数据量,高性能(官方数据:一秒:8万次,读取:11万次,NoSQL的缓存时记录级的, 细粒度缓存,性能比较高)。
(3)数据类型多样性(不需要事先设计数据库,随取随用,数据量)。
NoSQL分类
Redis 入门
Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
NoSQL技术之一,结构化数据库。
1、能干什么
(1)内存存储、持久化,持久化的机制 - rdb、aof。
(2)效率高,高速缓存。
(3)发布订阅系统
(4)地图信息
(5)计时器、计数器浏览量。
(6)··· ···
特性
(1)多样的数据类型。
(2)持久化
(3)集群
(4)事务
安装 - 以下redis是安装到window上的
1、下载安装包
https://github.com/microsoftarchive/redis/releases/tag/win-3.2.100
2、秒级启动
3、使用redis客户端连接redis
测试,是否连通,返回PONG,说名成功。
redis-benchmark
性能测试工具(压力测试工具)
测试
基本的api
1、存储key value,
设置值:set key value
取值:get name
2、keys *
查看所有的key
3、shutdown
关闭redis
4、 exit
直接退出redis
基础知识
redis默认有16个数据库,默认使用的时第0个。
1、select index
切换数据库
2、DBSIZE
查看数据库大小。
3、flushdb
清空当前数据库
4、flushall
清除所有的数据库内容。
redis单线程
要明白redis时很快的,c语言写的,官方表示,Redis是基于内存操作,CPU不是redis性能瓶颈,它的瓶颈是根据电脑机器的内存和网络带宽的,既然可以使用单线程来实现,就是用单线程。
Redis为什么单线程这么快?
(1)误区:高性能服务器,一定是多线程的?
(2)误区:多线程(CPU)上下文会切换,一定比单线程效率高?
核心:redis是将所有的数据放在内存中的,所以,使用单线程去操作效率就是最高的,而使用多线程的话,上下文会去切换,这是一个耗时的操作,对于内存来说,如果没有上下文切换,效率就是最高的,多次读写都是在一个CPU上的。