BigBrother的大数据之旅Day 17 redis(2)
Redis(2)
1 redis持久化
持久化:
將數據從掉電易失的內存存放到能夠永久存儲的設備上
redis持久化 兩種 :
RDB (redis DB)鏡像文件,dump.rdb
AOF(append only file)日志文件,默認關閉
恢復數據
如果需要恢復數據,只需將備份文件 (dump.rdb) 移動到 redis 安裝目錄并啟動服務即可。獲取 redis 目錄可以使用 CONFIG GET DIR
redis 127.0.0.1:6379> CONFIG GET dir 1) "dir" 2) "/usr/local/redis/bin"2 redis 集群
兩個集群中的概念
鏡像:數據容量不變
切片:橫向擴展
集群配置方案
方案一
主從復制
在從服務器上寫入
redis > SLAVEOF 192.168.56.201 6379意思是,該從服務器是192.168.56.201 端口號為6379的服務器的slave
redis > SLAVEOF NO ONE這條命令寫入后,獨立成為master,獸人永不為奴!
優點: 讀效率提升,但是寫的效率還是和以前一樣,從服務器無法寫,只能讀
缺點:如果主服務器宕機,從服務器不能自動切換
方案二
主從復制+ 哨兵
1-n個哨兵負責觀察1-n個主服務器
哨兵配置如下:
(1)配置哨兵的配置文件
在sentinel.conf中寫(也可以自己創建一個文件,啟動時綁定這個配置文件就可以了)
sentinel monitor mymaster 127.0.0.1 6379 2Sentinel monitor
監視mymaster的主服務器,服務器ip和端口,將這個主服務器判斷為下線失效至少需要2個Sentinel同意,多數Sentinel同意才會執行故障轉移
(2)啟動哨兵
redis-server /path/to/sentinel.conf --sentinel
經過測試,哨兵不是那么給力,如果向漫威的哨兵那么給力就好了
依舊沒有解決寫的問題
方案三
redis集群(redis3.0以上支持)
本次使用單機幾個程序來模擬集群
(1)Redis集群的每個節點都有兩種角色可選:主節點master node、從節點slave node。其中主節點用于存儲數據,而從節點則是某個主節點的復制品
(2)故障轉移
(3)redis分片
集群將整個數據庫分為16384個槽位slot,所有key都數據這些slot中的一個,key的槽位計算公式為slot_number****=crc16(key)%16384,其中crc16為16位的循環冗余校驗和函數
(4)重定向
由于Redis集群無中心節點,請求會發給任意主節點
主節點只會處理自己負責槽位的命令請求,其它槽位的命令請求,該主節點會返回客戶端一個轉向錯誤
客戶端根據錯誤中包含的地址和端口重新向正確的負責的主節點發起命令請求
(5)redis集群的安裝
0,準備的包
redis-3.0.0.tar.gz , redis-3.0.0.gem
gcc ,tcl, ruby,rubygems
1 解壓安裝redis到/opt/cluster
2 安裝環境
yum -y install gcc tcl ruby rubygems3 安裝redis集群管理工具
gem install redis-3.3.0.gem4 設置redis的配置文件
1 daemonize yes 2 port 7001 3 cluster-enabled yes注釋放開 4 bind 網卡 127.0.0.1 如果有多個網卡會傳遞信息,會很麻煩5 bin目錄重命名為redis1
并拷貝六份分別是:redis2/redis3/redis4/redis5/redis6
6 修改2,3,4,5,6中的端口號分別是7002/7003/7004/7005/7006
7 啟動六個redis實例
./redis-server redis.conf(6次)
8 管理集群
./redis-trib.rb create --replicas 1 192.168.202.101:7001 192.168.202.101:7002 192.168.202.101:7003 192.168.202.101:7004 192.168.202.101:7005 192.168.202.101:7006ps: 1為每個master啟動一個從節點
9 以集群方式連接集群
redis-cli -p 7001 -h 192.168.202.101 -c
總結
以上是生活随笔為你收集整理的BigBrother的大数据之旅Day 17 redis(2)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [原创]网站文章页面添加分享按钮,百度按
- 下一篇: re模块compile方法