Redis如何實現資料庫讀寫分離詳解

2022-09-26 12:00:18 字數 1329 閱讀 7696

前言

redis是一種nosql的文件資料庫,通過key-value的結構儲存在記憶體中,redis讀的速度是110000次/s,寫的速度是81000次/s,效能很高,使用範圍也很廣。redis是乙個key-value儲存系統。和memcached類似,為了保證效率,資料都是快取在記憶體中。區別的是redis會週期性的把更新的資料寫入磁碟或者把修改操作寫入追加的記錄檔案,並且在此基礎上實現了master-sl**e(主從)同步。在部分場合可以對關聯式資料庫起到很好的補充作用。它提供了j**a,c/c++(hiredis),c#,php,j**ascript,perl,object-c,python,ruby等客戶端,使用很方便。

下面用乙個例項實現redis的讀寫分離,步驟如下:

第一步:**redis

官網**位址:

本地**位址:

**最新的穩定版,解壓拷貝到 ~/redis 中

編譯**:

$ make

$ test

第二步:配置redis

編輯redis.conf檔案

bind 127.0.0.1

port 6379

拷貝redis.conf檔案,改名為sl**e.conf,開啟編輯

bind 127.0.0.1

port 6380

sl**eof 127.0.0.1 6379

第三步:執行服務

開啟【主服務】

$ src/redis-server

開啟【從服務】

$ src/redis-server sla

&n程式設計客棧bsp;執行【主服務】的客戶端

$ src/redis-cli

執行【從服務】的客戶端

$ src/redis-cli -h 127.0.0.1 -p 6380www.cppcns.com

檢視主從服務的關係

$ src/redis-cli info replication

第四步:測試伺服器

下面例項演示:在主伺服器中儲存一些資料,然後在從伺服器中查詢出來

可以看出,從伺服器成功的獲取到了主伺服器的備份資料。

假如我們在從伺服器中儲存資料,看結果如何?

提示錯誤:

(error) readonly you can't write against a read only sl**e.

說明從伺服器只能讀資料,而不能寫入資料。

資料在【從伺服器】裡【讀】,在【主伺服器】裡【寫】。

這樣就實現了redis資料庫的讀寫分離功能。

總結本文標題: redis如何實現資料庫讀寫分離詳解

本文位址: /shujuku/redis/221862.html

Redis資料庫實現

redis伺服器將所有資料庫都儲存在伺服器狀態redis.h redisserver結構的db陣列中,db陣列的每一項都是乙個redisdb結構,每個redisdb代表乙個資料庫。struct redisserver 每個redis客戶端都有自己的目標資料庫,預設情況下redis客戶端的目標資料庫為...

mysql資料庫實現讀寫分離

在專案中使用mysql資料庫,所有的增刪改查操作都在主庫處理,隨著查詢訪問量的增加,單庫處理的壓力驟增,為了防止主庫故障,使用一主多從的方式,通過讀寫分離,把所有的查詢處理都放到從伺服器上,減少單點故障導致整個服務掛掉的情況。使用mysql的com.mysql.jdbc.replicationdri...

Redis 單機資料庫的實現 資料庫原理

目錄 1.伺服器中的資料庫 2.資料庫鍵空間 2.1.讀寫空間時的維護操作 3.過期時間 4.過期刪除策略 4.1.定時刪除 4.2.惰性刪除 4.3.定期刪除 4.4.redis刪除策略 5.aof rdb和複製功能對對過期鍵的處理 5.1.rdb 5.2.aof 5.3.複製 6.資料庫通知 r...