生活随笔
收集整理的這篇文章主要介紹了
【Redis】配置redis主从复制
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
閱讀目錄 簡單介紹 章節1:下載安裝 章節2:修改配置文件 章節3:開啟主從redis服務 章節4:客戶端連接-測試同步 章節5:應用場景 章節6:參考鏈接 簡單介紹 redis的作用,可網上自行搜索,下面將介紹redis的主從復制。配置redis主從IP和port:
master and slave ip port master 127.0.0.1 6379 slave1 127.0.0.1 6380 slave2 127.0.0.1 6381
回到頂部
一、下載安裝 wget http :// download . redis . io / releases / redis - 3.2 . 1.tar . gz tar zxvf redis - 3.2 . 1.tar . gz mv redis - 3.2 . 1 redis - 3.2 . 1.master tar zxvf redis - 3.2 . 1.tar . gz mv redis - 3.2 . 1 redis - 3.2 . 1.slave - 1 tar zxvf redis - 3.2 . 1.tar . gz mv redis - 3.2 . 1 redis - 3.2 . 1.slave - 2 分別進入文件夾:
redis - 3.2 . 1.master、 redis - 3.2 . 1.slave-1和 redis - 3.2 . 1.slave的src目錄,執行命令: cd redis - 3.2 . 1.master / src make make test //其他兩個目錄執行相同的操作 執行成功后會提示:
回到頂部
二、修改配置文件:redis.conf 配置文件位于:(需要修改3個配置文件)
主要修改4個參數:
port; logfile; slaveof; pidfile; daemonize(配置以daemon方式運行) 配置文件的其他部分不要改動,修改如下內容:
port 6379 pidfile / var / run / redis_6379 . pid # slaveof <masterip> <masterport> logfile "/data/logs/redis.master.log" daemonize yes port 6380 pidfile / var / run / redis_6380 . pid slaveof 127.0 . 0.1 6379 logfile "/data/logs/redis.slave1.log" daemonize yes port 6381 pidfile / var / run / redis_6381 . pid slaveof 127.0 . 0.1 6379 logfile "/data/logs/redis.slave-6381.log" daemonize yes 回到頂部
三、開啟master和slave1、slave2 開啟master (salve的開啟方式與此類似) 轉到目錄:redis-3.2.1.master 下(slave則轉到相應的目錄),執行:
./ src / redis - server redis . conf 運行成功后,查看logfile可以看到如下界面:
可以看到slave1開啟的情況,如下圖:
同時看到master的日志如下: 可以看到slave2開啟的情況,如下圖:
同時看到master的日志如下:
回到頂部
四、客戶端連接-測試同步 redis - cli - h 127.0 . 0.1 - p 6379 下面是另一個slave:
Slave不可以寫,只可以讀 當連接上redis的slave時,只可以讀數據,不可以寫數據:
回到頂部
五、應用場景 比如典型的取你網站的最新文章,通過下面方式,我們可以將最新的5000條評論的ID放在Redis的List集合中,并將超出集合部分從數據庫獲取使用LPUSH latest.comments<ID>命令,向list集合中插入數據 插入完成后再用LTRIM latest.comments 0 5000命令使其永遠只保存最近5000個ID 然后我們在客戶端獲取某一頁評論時可以用下面的邏輯(偽代碼)
FUNCTION get_latest_comments ( start , num_items ): ?? id_list = redis . lrange ( "latest.comments" , start , start + num_items - 1 ) ?? IF id_list . length < num_items ?? id_list = SQL_DB ( "SELECT ... ORDER BY time LIMIT ..." ) ?? END RETURN id_list END 如果你還有不同的篩選維度,比如某個分類的最新N條,那么你可以再建一個按此分類的List,只存ID的話,Redis是非常高效的 這個需求與上面需求的不同之處在于,前面操作以時間為權重,這個是以某個條件為權重,比如按頂的次數排序,這時候就需要我們的sorted set出馬了,將你要排序的值設置成sorted set的score,將具體的數據設置成相應的value,每次只需要執行一條ZADD命令即可。
比如你可以把上面說到的sorted set的score值設置成過期時間的時間戳,那么就可以簡單地通過過期時間排序,定時清除過期數據了,不僅是清除Redis中的過期數據,你完全可以把Redis里這個過期時間當成是對數據庫中數據的索引,用Redis來找出哪些數據需要過期刪除,然后再精準地從數據庫中刪除相應的記錄。
Redis的命令都是原子性的,你可以輕松地利用INCR,DECR命令來構建計數器系統。
這個使用Redis的set數據結構最合適了,只需要不斷地將數據往set中扔就行了,set意為集合,所以會自動排重。
Redis的Pub/Sub系統可以構建實時的消息系統,比如很多用Pub/Sub構建的實時聊天系統的例子。
使用list可以構建隊列系統,使用sorted set甚至可以構建有優先級的隊列系統。
回到頂部
六、參考鏈接 《Configuring Redis High Availability》http://www.veritas.com/community/blogs/configuring-redis-high-availability?《Windows下Redis Sentinel部署》http://bbs.redis.cn/forum.php?mod=viewthread&tid=715?
來自為知筆記(Wiz)
總結
以上是生活随笔 為你收集整理的【Redis】配置redis主从复制 的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔 網站內容還不錯,歡迎將生活随笔 推薦給好友。