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