一、什麼是Redisredis
Redis是一款內存高速緩存數據庫。Redis全稱爲:Remote Dictionary Server (遠程數據服務),使用C語言編寫,Redis是一個key-value存儲系統(鍵值存儲系統),支持豐富的數據類型,如:String、list、set、zset、hash。數據庫
Redis是一種支持key-value等多種數據結構的存儲系統。可用於緩存,事件發佈或訂閱,高速隊列等場景。使用C語言編寫,支持網絡,提供字符串,哈希,列表,隊列,集合結構直接存取,基於內存,可持久化。緩存
二、Redis特色服務器
Redis之內存做爲數據存儲介質,讀寫數據的效率極高。網絡
Redis跟memcache不一樣的是,儲存在Redis中的數據是持久化的,斷電或重啓,數據也不會丟失。數據結構
Redis的存儲分爲內存存儲、磁盤存儲和log文件。app
Redis能夠從磁盤從新將數據加載到內存中,也能夠經過配置文件對其進行配置,所以,redis才能實現持久化。函數
Redis支持主從模式,能夠配置集羣,更利於支撐大型的項目。工具
三、Redis應用場景,能作什麼測試
衆多語言都支持Redis,由於Redis交換數據快,在服務器中經常使用來存儲一些須要頻繁調取的數據,節省內存開銷,也極大的提高了速度。
將一些熱點數據存儲到Redis中,要用的時候,直接從內存取,極大的提升了速度和節約了服務器的開銷。
一、會話緩存(最經常使用)
二、消息隊列(支付)
三、活動排行榜或計數
四、發佈,訂閱消息(消息通知)
五、商品列表,評論列表
四、Redis數據類型
Redis一共支持五種數據類型:String(字符串)、hash(哈希)、list(列表)、set(集合)和zset(sorted set有序集合)
String(字符串):Redis最基本的數據類型,一個鍵對應一個值,一個鍵值最大存儲512MB
Hash(哈希):hash是一個鍵值對的集合,是一個String類型的field和value的映射表,適合用於存儲對象
List(列表):是redis的簡單的字符串列表,按插入順序排序
Set(集合):是String字符串類型的無序集合,也不可重複
ZSet(sorted set 有序集合)是String類型的有序集合,也不可重複。有序集合中的每一個元素都須要指定一個分數,根據分數對元素進行升序排序。
五、redis的服務相關命令
slect#選擇數據庫(數據庫編號0-15)
退出 # 退出鏈接
信息 # 得到服務的信息與統計
monitor # 實時監控
config get # 得到服務配置
flushdb # 刪除當前選擇的數據庫中的key
flushall # 刪除全部數據庫中的鍵
六、Redis的發佈與訂閱
Redis的發佈與訂閱(發佈、訂閱)是它的一種消息通訊模式,一方發送信息,一方接收信息
下圖是有新消息發送給頻道1時,就會將消息發送給訂閱它的三個客戶端
七、Redis的持久化
Redis持久有兩種方式:快照(RDB),僅附加文件(AOF)
快照(RDB):一、將存儲在內存的數據以快照的方式寫入二進制文件中,默認dump.rdb中
二、保存900 1 # 900秒內若是超過1個key被修改,則啓動快照保存
三、保存300 10 # 300秒內若是超過10個key被修改,則啓動快照保存
四、保存60 1000 # 60秒內若是超過10000個重點被修改,則啓動快照保存
僅附加文件(AOF):一、使用AOF持久時,服務會將每一個收到的寫命令經過寫函數追加到文件中(appendonly.aof)
二、AOF持久化存儲方式參數說明
appendonly yes #開啓AOF持久化存儲方式
appendfsync always #收到寫命令後就當即寫入磁盤,效率最差,效果最好
appendfsync everysec #每秒寫入磁盤一次 效率與效果居中
appendfsync no #徹底依賴操做系統,效率最佳,效果無法保證
八、Redis自帶相關測試工具
redis-benchmark --help
redis-benchmark -n 10000 -q