一、概述
Redis是什么?redis
Redis(Remote Dictionary Server),即远程字典服务!数据库
是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。缓存
redis会周期性的把更新的数据写入磁盘或者把修改操做写入追加的记录文件,而且在此基础上实现了master-slave(主从)同步。服务器
免费和开源!是当下最热门的NoSQL技术之一!也被人们称为结构化数据库!网络
Redis能干什么?多线程
一、内存存储、持久化、内存中是断电即失、因此说持久化很重要(rdb、aof)性能
二、效率高、能够用于告诉缓存spa
三、发布订阅系统线程
四、地图信息分析3d
五、计时器、计数器(浏览量)
六、...
特性
一、多样的数据类型
二、持久化
三、集群
四、事务
,,,,,,,
Redis是单线程的!!!!!
明白
Redis
是很快的,官方表示,
Redis
是基于内存操做,
CPU
不是
Redis
性能瓶颈,
Redis
的瓶颈是根据
机器的内存和网络带宽,既然可使用单线程来实现,就使用单线程了!全部就使用了单线程了!
Redis
是
C
语言写的,官方提供的数据为
100000+
的
QPS(每秒查询率)
,彻底不比一样是使用
key-vale
的
Memecache
差!
Redis
为何单线程还这么快?
1
、误区
1
:高性能的服务器必定是多线程的?
2
、误区
2
:多线程(
CPU
上下文会切换!)必定比单线程效率高!
先去
CPU>
内存
>
硬盘的速度要有所了解!
核心:
redis
是将全部的数据所有放在内存中的,因此说使用单线程去操做效率就是最高的,多线程
(CPU
上下文会切换:耗时的操做!!!),对于内存系统来讲,若是没有上下文切换效率就是最高
的!屡次读写都是在一个
CPU
上的,在内存状况下,这个就是最佳的方案!