目錄 "簡介" "安裝" "主從複製" "備份與恢復" "API" AddOrUpdate GetOrAdd DeleteByPattern SearchKeys TransExcute Subscribe/Publish "命令" Todo Sentinel .NET Core Configura ...
目錄
- API
- AddOrUpdate
- GetOrAdd
- DeleteByPattern
- SearchKeys
- TransExcute
- Subscribe/Publish
- Todo
- Sentinel
- .NET Core
- Configuration
- Log
- Async
簡介
- Redis.Extension GitHub(歡迎Fork Star)
Redis.Extension nuget(Install-Package Redis.Extension)
- Redis 開源的分散式NoSQL,c語言開發,存儲結構:key-value
- 持久化(容災)
- snapshot(快照)
- Redis預設持久化方式,每次保存RDB的時候,fork()出1個子進程進行持久化
- dump.rdb
- 配置n秒超過m個key 開始快照
- 性能高,丟失數據比較多
- Append-only file(aof)
- 新命令到達則fsync一次,文件足夠大的時候,rewrite一次。
- appendfilename "appendonly.aof" 設置存儲文件
- appendfsync 設置頻率
- auto-aof-rewrite 設置自動重寫
- 性能稍慢,丟失數據非常少
- snapshot(快照)
5種數據類型:string,list(鏈表),hash(哈希),set(集合),zset(排序集合)
安裝
- Windows
- 管理多個服務實例
- redis-server.exe --service-install redis.windows-service --service-name Redis --port 6369
- sc delete Redis
- 直接啟動
- redis-server.exe redis.windows.conf
- 管理多個服務實例
- Linux
- 源碼包
- docker
- Mac
- brew
- docker
主從複製
- 過程
- 當設置好slave伺服器後,slave會建立和master的連接,然後發送sync命令。
- 無論是第一次同步建立的連接還是連接斷開後的重新連接,master都會啟動一個後臺進程,將資料庫快照保存到文件中,同時master主進程會開始收集新的寫命令並緩存起來。
- 後臺進程完成寫文件後,master就發送文件給slave,slave將文件保存到磁碟上,然後載入到記憶體恢複數據庫快照到slave上。
- 接著master就會把緩存的命令轉發給slave。
- 而且後續master收到的寫命令都會通過開始建立的連接發送給slave。
- 從master到slave的同步數據的命令和從client發送的命令使用相同的協議格式。
- 當master和slave的連接斷開時slave可以自動重新建立連接。
- 如果master同時收到多個slave發來的同步連接命令,只會使用啟動一個進程來寫資料庫鏡像,然後發送給所有slave。
- 配置
- slaveof 127.0.0.1 6379
備份與恢復
appendfilename "appendonly.aof"
snapshot "dump.rdb"
API
- 具體的API調用可以 可以直接參考ManagerTest。
- AddOrUpdate 支持指定具體時間點 緩存失效
- AddOrUpdate 支持指定具體時間點 緩存失效
- GetOrAdd 支持檢測緩存 再讀庫操作
- DeleteByPattern 支持根據key模糊刪除
- SearchKeys 支持查詢Keys
- TransExcute 支持Redis事務執行
- Subscribe 支持快速訂閱消息
- Publish 支持快速發佈消息
命令
- string: set | get
- hash: hmset | hgetall
- list: lpush | lrange
- set: sadd | smembers
- zset: zadd | zrange
- save bgsave
- subscribe publish
- keys *
- info