本文將從Redis簡介、Redis特性回顧、Redis安裝、Redis典型應用場景四部分進行介紹Redis,讀完本文,你將會對Redis的特性和功能有初步的瞭解。html
Redis是一個開源的(BSD許可)、速度很是快的非關係數據庫(non-relational database),它能夠存儲鍵(key)與5中不一樣數據類型的值(value)之間的映射(mapping)。瞭解Redis數據結構能夠參考Redis數據結構和經常使用API。c++
誰在使用Redis?
git
Redis能讀的速度是110000次/s,寫的速度是81000次/s 。github
思考:Redis速度爲何這麼快?redis
其實,Redis的數據存儲於內存中。有計算機方面基礎知識的知道,從寄存器到硬盤,速度愈來愈慢,空間愈來愈大,價格愈來愈便宜,正以下面這張圖所示:數據庫
下面這張表更直觀:編程
類型
|
每秒讀寫次數
|
隨機讀寫延遲
|
訪問帶寬
|
內存
|
千萬級
|
80ns
|
5GB
|
SSD盤
|
35000
|
0.1-0.2ms
|
100-300MB
|
機械盤
|
100左右
|
10ms
|
100MB左右
|
由於Redis數據存儲於內存中,因此速度性能優於存儲於硬盤的MySQL數據庫。緩存
Redis全部數據保持在內存中,對數據的更新將異步保存到磁盤上。服務器
Redis擁有兩種不一樣形式的持久化方法,他們均可以用小而緊湊的格式將存儲在內存中的數據寫入硬盤:第一種持久化方法爲時間點轉儲(point-in-time dump),轉儲操做既能夠在「指定時間段內有指定數量的寫操做執行」這一條件被知足時執行,又能夠經過調用兩條轉儲到硬盤命令中的任何一條來執行;第二種持久化方法將全部修改了的數據庫的命令都寫入一個只追加文件裏面,用戶能夠根據數據的重要程度,將只追加寫入設置爲從不一樣步、每秒同步一次或者每寫入一個命令就同步一次。網絡
Redis支持 Strings, Lists, Hashes, Sets 及 Ordered Sets 數據類型操做。
另外還有BitMap:位圖;HyperLogLog:超小內存惟一值計數;GEO:地理信息位置。
Redis支持Java、PHP、Python、Ruby、Lua、Node Js等編程語言。
Redis支持發佈訂閱、Lua腳本、事務、pipeline(流水線)等功能。
Redis不依賴外部數據庫;
Redis的全部操做都是原子性的,意思就是要麼成功執行要麼失敗徹底不執行。
執行復制的從服務器會鏈接上主服務器,接收主服務器發送的整個數據庫的初始副本;以後主服務器執行的寫命令,都會被髮送給全部鏈接着的從服務器去執行,從而實現實時更新從服務器的數據集。由於從服務器包含的數據會不斷地進行更新,因此客戶端能夠向任意一個從服務器發送讀請求,以此來避免對主服務器進行集中式的訪問。
Redis-Sentinel(v2.8)支持高可用
Redis-Cluster(v3.0)支持分佈式
$ wget http://download.redis.io/releases/redis-5.0.3.tar.gz
$ tar xzf redis-5.0.3.tar.gz
$ cd redis-5.0.3
$ make MALLOC=libc
$ src/redis-server
下載地址:https://github.com/MSOpenTech/redis/releases。
下載 Redis-x64-xxx.zip壓縮包到 C 盤,解壓後,將文件夾從新命名爲 redis。
雙擊redis-server.exe便可啓動:
若是想方便的話,能夠把 redis 的路徑加到系統的環境變量裏,能夠直接經過redis-server啓動。
redis-server:Redis服務器
redis-cli:Redis命令行客戶端
redis-benchmark:Redis性能測試工具
redis-check-aof:AOF文件修復工具
redis-check-dump:RDB文件檢查工具
redis-sentinel:Sentinel服務器
1.修改redis.conf文件:修改daemonize爲yes,即默認之後臺程序方式運行。
經常使用配置:
daemonize -->是不是守護進程(no|yes) port --> Redis對外端口號 logfile -->Redis日誌系統 dir -->Redis工做目錄
2.而後使用redis.conf啓動
cd redis-5.0.3/ ./redis-server /usr/local/redis-5.0.3/redis.conf
做爲NoSQL數據庫,Redis不適合交易場景,主要用來作數據分析、報表、數據挖掘、推薦、日誌處理等非核心交易場景,如:
緩存系統
計數器:轉發數、點贊數、播放數等
消息隊列系統
排行榜
社交網絡
實時系統