一、redis是什麼redis
redis是一種支持Key-Value等多種數據結構的存儲系統。數據庫
可用於緩存、事件發佈或訂閱、高速隊列等場景。緩存
該數據庫使用ANSI C語言編寫,支持網絡,提供字符串、哈希、列表、隊列、集合結構直接存取,基於內存,可持久化。網絡
二、支持的語言數據結構
三、redis的應用場景有哪些app
一、會話緩存(最經常使用)函數
二、消息隊列,好比支付工具
三、活動排行榜或計數性能
四、發佈、訂閱消息(消息通知)測試
五、商品列表、評論列表等
四、redis數據類型
Redis一共支持五種數據類:string(字符串)、hash(哈希)、list(列表)、set(集合)和zset(sorted set 有序集合)。
(1)string(字符串) 它是redis最基本的數據類型,一個key對應一個value,須要注意是一個鍵值最大存儲512MB。
(2)hash(哈希) redis hash是一個鍵值對的集合, 是一個string類型的field和value的映射表,適合用於存儲對象
(3)list(列表) 是redis簡單的字符串列表,它按插入順序排序
(4)set(集合) 是string類型的無序集合,也不可重複
(5)zset(sorted set 有序集合) 是string類型的有序集合,也不可重複 sorted set中的每一個元素都須要指定一個分數,根據分數對元素進行升序排序,若是多個元素有相同的分數,則以字典序進行升序排序,sorted set 所以很是適合實現排名
五、redis服務相關的命令
slect #選擇數據庫(數據庫編號0-15)
quit #退出鏈接 info #得到服務的信息與統計
monitor #實時監控
config get #得到服務配置
flushdb #刪除當前選擇的數據庫中的key
flushall #刪除全部數據庫中的key
六、redis的發佈與訂閱 redis發佈與訂閱(pub/sub)是它的一種消息通訊模式,一方發送信息,一方接收信息。
下圖是三個客戶端同時訂閱同一個頻道
.下圖是有新信息發送給頻道1時,就會將消息發送給訂閱它的三個客戶端
七、redis持久化 redis持久有兩種方式:Snapshotting(快照),Append-only file(AOF)
Snapshotting(快照)
一、將存儲在內存的數據以快照的方式寫入二進制文件中,如默認dump.rdb中
二、save 900 1 #900秒內若是超過1個Key被修改,則啓動快照保存
三、save 300 10 #300秒內若是超過10個Key被修改,則啓動快照保存
四、save 60 10000 #60秒內若是超過10000個Key被修改,則啓動快照保存
Append-only file(AOF)
一、使用AOF持久時,服務會將每一個收到的寫命令經過write函數追加到文件中(appendonly.aof)
二、AOF持久化存儲方式參數說明
appendonly yes #開啓AOF持久化存儲方式
appendfsync always #收到寫命令後就當即寫入磁盤,效率最差,效果最好
appendfsync everysec #每秒寫入磁盤一次,效率與效果居中
appendfsync no #徹底依賴OS,效率最佳,效果無法保證
八、redis 性能測試 自帶相關測試工具
實際測試同時執行100萬的請求