1、redis 大數據時代三V:海量Volume、多樣Variety、實時Velocity 大數據時代三高:高併發、高可用(無限套娃+彼此監控)、高性能 - Redis(Remote Dictionary Server ),即遠程字典服務,是一個開源的使用ANSI C語言編寫、支持網路、可基於記憶體亦 ...
1、redis
大數據時代三V:海量Volume、多樣Variety、實時Velocity
大數據時代三高:高併發、高可用(無限套娃+彼此監控)、高性能
- Redis(Remote Dictionary Server ),即遠程字典服務,是一個開源的使用ANSI C語言編寫、支持網路、可基於記憶體亦可持久化的日誌型、Key-Value資料庫,並提供多種語言的API。
# 預設有16個資料庫 使用select切換
-----------------------------------
set get flushall flushdb
redis可以用作資料庫、緩存和消息中間件。
keys * 查看所有key
exists 返回 0 / 1
move name 1 刪除
expire [name] [時長] 設置過期時間
type 查看類型
秒語法:ttl key 毫秒語法:pttl key 查詢key的生命周期(秒)
設置過期時間
秒語法:expire key seconds
毫秒語法:pexpire key milliseconds
設置永不過期
語法:persist key
更改鍵名稱
語法:rename key newkey
值遞增/遞減
如果字元串中的值是數字類型的,可以使用incr命令每次遞增,不是數字類型則報錯。
語法:incr key
追加內容
語法:append key value
獲取值長度
語法:strlen key
獲取部分字元
語法:getrange key start end
設置過期時間
setex key [時長] [name]
獲取並設置值
getset
redis持久化
RDB快照(snapshotting)
把當前記憶體中的數據集快照寫入磁碟,也就是 Snapshot 快照(資料庫中所有鍵值對數據)。恢復時是將快照文件直接讀到記憶體里。
可以自動觸發(關機觸發、隔一段時間觸發)也可以手動觸發(save和bgsave)。Redis進程執行fork操作創建子進程,RDB持久化過程由子進程負責,完成後自動結束。
恢復:將備份文件 (dump.rdb) 移動到 redis 安裝目錄並啟動服務即可,redis就會自動載入文件數據至記憶體了。Redis 伺服器在載入 RDB 文件期間,會一直處於阻塞狀態,直到載入工作完成為止。
AOF(append-only-file)
預設不開啟,預設使用的是RDB
通過保存Redis伺服器所執行的【寫命令】來記錄資料庫狀態
RDB 持久化方式就是將 str1,str2,str3 這三個鍵值對保存到 RDB文件中,而 AOF 持久化則是將執行的 set,sadd,lpush 三個命令保存到 AOF 文件中。
AOF 文件恢復:
重啟 Redis 之後就會進行 AOF 文件的載入。
異常修複命令:redis-check-aof --fix 進行修複
AOF 重寫:
由於AOF持久化是Redis不斷將寫命令記錄到 AOF 文件中,隨著Redis不斷的進行,AOF 的文件會越來越大,文件越大,占用伺服器記憶體越大以及 AOF 恢復要求時間越長。為瞭解決這個問題,Redis新增了重寫機制,當AOF文件的大小超過所設定的閾值時,Redis就會啟動AOF文件的內容壓縮,只保留可以恢複數據的最小指令集。可以使用命令 bgrewriteaof 來重新。
redis發佈訂閱
發佈者和訂閱者都是Redis客戶端,Channel則為Redis伺服器端,發佈者將消息發送到某個的頻道,訂閱了這個頻道的訂閱者就能接收到這條消息。Redis的這種發佈訂閱機制與基於主題的發佈訂閱類似,Channel相當於主題。簡單來說和對講機的意思差不多。
redis主從複製
主節點寫、從節點讀。
redis哨兵模式
監控主機故障,自動選舉老大的模式
redis緩存穿透
redis緩存擊穿
正在瘋狂查詢的某數據過期了,導致去大量查詢持久層資料庫。
redis緩存雪崩
緩存集中失效,或者redis宕機。
限流降級:通過加鎖來控制線程數或者停掉一些不必要的服務,保證主服務的運行。
高可用:多增設幾台redis
數據預熱:把在未來可能會頻繁訪問的數據人為提前載入到緩存里。
好看請贊,養成習慣 :) 本文來自博客園,作者:靠譜楊, 轉載請註明原文鏈接:https://www.cnblogs.com/rainbow-1/p/16570478.html