一、概述
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
上的,在內存狀況下,這個就是最佳的方案!