C# 使用 Redis 部署成服務


概念

  Redis是一個開源的使用ANSI C語言編寫、支持網絡、可基於內存亦可持久化的日志型、Key-Value數據庫,和Memcached類似,它支持存儲的value類型相對更多,包括string(字符串)、list(鏈表)、set(集合)、zset(sorted set --有序集合)和hash(哈希類型)。在此基礎上,redis支持各種不同方式的排序。與memcached一樣,為了保證效率,數據都是緩存在內存中。區別的是redis會周期性的把更新的數據寫入磁盤或者把修改操作寫入追加的記錄文件,並且在此基礎上實現了master-slave(主從)同步。

  Redis支持主從同步。數據可以從主服務器向任意數量的從服務器上同步,從服務器可以是關聯其他從服務器的主服務器。這使得Redis可執行單層樹復制。存盤可以有意無意的對數據進行寫操作。

Redis 與 Memcached 區別

  • Memcached是多線程,而Redis使用單線程。(個人認為Memcached在讀寫處理速度上由於Redis)
  • Memcached使用預分配的內存池的方式,Redis使用現場申請內存的方式來存儲數據,並且可以配置虛擬內存。
  • Redis可以實現持久化(也就是說redis需要經常將內存中的數據同步到硬盤中來保證持久化),主從復制,實現故障恢復。
  • Memcached只是簡單的key與value,但是Redis支持數據類型比較多。包括string(字符串)、list(鏈表)、set(集合)、zset(sorted set --有序集合)和hash(哈希類型)。

Redis支持兩種持久化方式:

   (1):snapshotting(快照)也是默認方式.(把數據做一個備份,將數據存儲到文件)

   (2)Append-only file(縮寫aof)的方式 

   快照是默認的持久化方式,這種方式是將內存中數據以快照的方式寫到二進制文件中,默認的文件名稱為dump.rdb.可以通過配置設置自動做快照持久化的方式。我們可以配置redis在n秒內如果超過m個key鍵修改就自動做快照.

   aof方式:由於快照方式是在一定間隔時間做一次的,所以如果redis意外down掉的話,就會丟失最后一次快照后的所有修改。aof比快照方式有更好的持久化性,是由於在使用aof時,redis會將每一個收到的寫命令都通過write函數追加到文件中,當redis重啟時會通過重新執行文件中保存的寫命令來在內存中重建整個數據庫的內容。 

Windows安裝Redis

以cmd安裝方法

1.下載安裝包:https://github.com/tporadowski/redis/releases

2.安裝包下載后根據操作系統選擇對應版本文件,里面會有幾個dll分別為:

redis-server.exe:服務程序 
redis-check-dump.exe:本地數據庫檢查
redis-check-aof.exe:更新日志檢查
redis-benchmark.exe:性能測試,用以模擬同時由N個客戶端發送M個 SETs/GETs 查詢.
redis-cli.exe: 服務端開啟后,我們的客戶端就可以輸入各種命令測試了 

 

首先以管理員身份打開cmd (窗口+R),進入到安裝包下載的位置。輸入:redis-server.exe redis.conf  開啟Redis服務。提示信息沒有報錯表示啟動成功。

此窗口要保持開啟狀態,如果關閉Redis服務也會相即被關閉。使用客戶端測試一下數據。

現在來觀察Redis是怎么持久化存儲數據到硬盤上。(快照是默認的持久化方式,默認的文件名稱為dump.rdb)

可以看到Redis服務端在一段時間后將數據庫保存在磁盤上,文件為:dump.rdb。

 

以windows服務安裝Redis方法:

下載Redis服務安裝包:https://github.com/tporadowski/redis/releases

下載完成后直接點擊.exe下一步下一步OK。安裝完后我們會在windows服務中找到Redis Service服務。注意啟動服務后在進行相關測試。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM