日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

数据库应用——Redis详解

發布時間:2024/1/1 数据库 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据库应用——Redis详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

???????????????????????????????????????????????????????????????????????????????????? Redis詳解

一、非關系型數據庫簡介
1、NoSQL(NoSQL=NotOnlySQL),意思是“不僅僅是 SQL”,是非關系型數據庫的總稱

2、為什么需要NoSQL
(1)High performance:高并發讀寫
(2)Huge Storage:海量數據的高效率存儲和訪問
(3)High Scalability && High Availability:高可擴展性和高可用性

3、NoSQL數據庫的四大分類
(1)鍵值存儲(key-value)
(2)列存儲
(3)文檔數據庫
(4)圖形數據庫


二、Redis概述
1、用C語言編寫的,高性能key-walue鍵值對數據庫

2、支持鍵值數據類型
(1)字符串類型:string
(2)散列類型:hash
(3)列表類型:list
(4)集合類型:set
(5)有序集合類型:zset

3、應用場景
(1)緩存
(2)任務隊列(秒殺搶購等)
(3)網站訪問統計
(4)數據過期處理(可精確到毫秒)
(5)應用排行榜
(6)分布式集群架構中的session分離
?

三、Redis安裝
1、編譯:make

2、安裝:make PREFIX=/usr/local/redis install

3、交互式安裝腳本:/安裝包/utils/install_server.sh
?? ?需輸入redis_server目錄:/usr/local/redis/bin/redis_server

4、bin文件
(1)Redis-benchmark:性能測試工具,可以在自己本地運行,看看自己本地性能如何(服務啟動起來后執行)
(2)Redis-check-aof:修復有問題的AOF文件,持久化
(3)redis-check-rdb:修復有問題的dump.rdb文件
(4)Redis-sentinel:Redis集群使用,哨兵
(5)redis-server:Redis服務器啟動命令
(6)redis-cli:客戶端,操作入口

四、Redis基本操作
1、連接
?? ?redis-cli -h 127.0.0.1 -p 6379 -a password

2、查看命令的幫助
?? ?help

3、數據庫常用命令操作
(1)set:存放數據
(2)keys:獲取符合規則的鍵值列表
(3)exists:判斷鍵值是否存在
??????? exists key:確認一個key是否存在
(4)type:獲取 key 對應的 value 值類型
(5)rename:對已有 key 進行重命名(強制覆蓋)
(6)renamenx:對已有 key 進行重命名,并檢測新名是否存在。
(7)dbsize:查看當前數據庫中 key 的數目
(8)set key value:設置key和value
(9)get key:獲取key的value
(10)del key:刪除一個key
(11)type key:返回值的類
(12)keys pattern:返回滿足給定pattern的所有key
(13)random key:隨機返回key空間的一個key
(14)rename oldname newname:重命名
(15)select index:選擇第0~15中的庫
(16)move key dbindex:移動當前數據庫中的key到dbindex數據庫
(17)FLUSHDB:清除當前庫數據(危險命令
(18)FLUSHALL:清除所有庫數據(危險命令
?

五、Redis事務
1、事務簡介
?? ?事務提供了一種將多個命令請求打包,然后一次性、按順序地執行多個命令的機制,并且在事務執行期間,服務器不會中斷事務而去執行其他客戶端命令。可以一次執行多個命令,本質是一組命令的集合。

2、Redis事務特點
(1)事務中的命令序列執行的時候是原子性的,也就是說,其不會被其他客戶端的命令中斷. 這和傳統的數據庫的事務的屬性是類似的.
(2)Redis事務中的命令序列是原子執行的, 但是事務中的命令序列執行可以部分成功
(3)不支持傳統數據庫中的回滾操作
(4)redis事務只保證講命令序列中操作的結果提交到內存中,不一定永久保存,但傳統關系型數據庫事務完成,數據永久存儲

3、事務創建
(1)multi:事務開始
(2)exec:提交事務
(3)discard:結束事務
(4)watch:執行樂觀鎖(2.2版本以上) ?
(5)unwatch:取消樂觀鎖

4、事務實例


5、錯誤處理
(1)入隊錯誤
如果一個事務在入隊命令的過程中,出現了命令不存在,或者命令的格式不正確等情況入列時錯誤,會終止整個事務
(2)執行錯誤
執行錯誤通常都是一些不能在入隊時被服務器發現的錯誤, 這些錯誤只會在命令實際執行時被觸發。即使在事務的執行過程中發生了錯誤, 服務器也不會中斷事務的執行, 它會繼續執行事務中余下的其他命令, 并且已執行的命令(包括執行命令所產生的結果)不會被出錯的命令影響
?

六、Redis數據持久化
1、持久化使用方式
(1)RDB持久化
指定時間間隔內將內存中的數據集快照寫入指定磁盤
(2)AOF持久化
將以日志形式記錄服務器的每個操作,在啟動時會讀取該文件來寫入數據庫
(3)無持久化
僅做緩存服務器使用
(4)同時使用RDB和AOF

2、RDB持久化
(1)優勢
只包含一個文件,對于壓縮備份來說很容易
性能最大化
③如果數據集很大,啟動效率會更高
(2)劣勢
①定時寫入機制有更大的數據丟失風險
②由于 RDB 是通過 fork 子進程來協助完成數據持久化工作的,因此當數據集較大時,可 能會導致整個服務器停止服務幾百毫秒,甚至是 1 秒鐘
(3)配置
①save 900 1:每900秒至少一個變化
②save 300 10:每300秒至少10個變化
③sanve 60 10000:每60秒至少10000個變化
④dbfilename dump.rdb:保存的文件名
⑤dir ./:保存路徑
⑥rdbcompression yes:是否壓縮
⑦rdbchecksum yes:導入時是否檢查
⑧stop-writes-on-bgsave-error yes:入股持久化出錯,主進程是否停止寫入
(4)手動持久化
①save:會阻塞當前Redis服務器,直到持久化完成,線上應該禁止使用
②bgsave:該觸發方式會fork一個子進程,由子進程負責持久化過程,因此阻塞只會發生在fork子進程的時候

3、AOF持久化
(1)優勢
①更高的數據安全性
總共3種同步策略:每秒同步、每次修改同步和不同步
采用追加方式寫入日志文件,寫入過程宕機不會導致之前數據出問題,redis-check-aof工具來解決數據一致性的問題
③如果日志過大,Redis 可以自動啟用 rewrite 機制
④包含格式清晰已于理解的日志文件用于記錄所有操作,也可根據該文件完成數據重建
(2)劣勢
①對于相同數量的數據集而言,AOF 文件通常要大于 RDB 文件
②AOF機制 每次發生的數據變化都會被立即記錄到磁盤中,這種方式在效率上是最低的
恢復大數據集時,速度較低
(3)配置
①appendonly yes:是否開啟AOF
②appendfilename "appendonly.aof":默認文件名
③appendfsync everysec:每秒同步
④appendfsync always:每條命令同步
⑤appendfsync no:不處理
?

七、Redis備份與恢復
1、數據備份
(1)AOF持久化
(2)RDP持久化
(3)SAVE命令
2、數據恢復
(1)獲取備份目錄:config get dir
(2)停止redis服務
(3)拷貝備份文件到指定目錄
(4)重啟服務

八、Redis性能管理
1、如何查看redis性能
?? ?nfo命令輸出的數據可以分為10個分類,分別是:
?? ?server,clients,memory,persistence,stats,replication,cpu,commandstats,cluster,keyspace

2、內存memory
used_memory:由 Redis 分配器分配的內存總量,以字節(byte)為單位
used_memory_human:以人類可讀的格式返回 Redis 分配的內存總量
used_memory_rss:從操作系統的角度,返回 Redis 已分配的內存總量(俗稱常駐集大小)。這個值和 top 、 ps等命令的輸出一致
used_memory_rss_human:以人類可讀的格式,從操作系統的角度,返回 Redis 已分配的內存總量(俗稱常駐集大小)。這個值和 top 、 ps等命令的輸出一致。
used_memory_peak:redis的內存消耗峰值(以字節為單位)
used_memory_peak_human:以人類可讀的格式返回redis的內存消耗峰值
used_memory_peak_perc:(used_memory/ used_memory_peak) *100%
used_memory_overhead:Redis為了維護數據集的內部機制所需的內存開銷,包括所有客戶端輸出緩沖區、查詢緩沖區、AOF重寫緩沖區和主從復制的backlog。
used_memory_startup:Redis服務器啟動時消耗的內存
used_memory_dataset:used_memory—used_memory_overhead
used_memory_dataset_perc:100%*(used_memory_dataset/(used_memory—used_memory_startup))
total_system_memory:整個系統內存
total_system_memory_human:以人類可讀的格式,顯示整個系統內存
used_memory_lua:Lua腳本存儲占用的內存
used_memory_lua_human:以人類可讀的格式,顯示Lua腳本存儲占用的內存
maxmemory:Redis實例的最大內存配置
maxmemory_human:以人類可讀的格式,顯示Redis實例的最大內存配置
maxmemory_policy:當達到maxmemory時的淘汰策略
mem_fragmentation_ratio:used_memory_rss/ used_memory,內存碎片率
mem_allocator:內存分配器

active_defrag_running:表示沒有活動的defrag任務正在運行,1表示有活動的defrag任務正在運行(defrag:表示內存碎片整理

3、因內存交換引起的性能問題
?? ?內存使用率是Redis服務最關鍵的一部分。如果Redis實例的內存使用率超過可用最大內存 (used_memory > 可用最大內存),那么操作系統開始進行內存與swap空間交換,把內存中舊的或不再使用的內容寫入硬盤上(硬盤上的這塊空間叫Swap分區),以便留出新的物理內存給新頁或活動頁(page)使用。
?? ?如果Redis進程上發生內存交換,那么Redis和依賴Redis上數據的應用會受到嚴重的性能影響。 通過查看used_memory指標可知道Redis正在使用的內存情況,如果used_memory>可用最大內存,那就說明Redis實例正在進行內存交換或者已經內存交換完畢。

4、跟蹤內存使用率
?? ?若是在使用Redis期間沒有開啟rdb快照或aof持久化策略,那么緩存數據在Redis崩潰時就有丟失的危險。因為當Redis內存使用率超過可用內存的95%時,部分數據開始在內存與swap空間來回交換,這時就可能有丟失數據的危險。
?? ?通過減少Redis的內存占用率,來避免這樣的問題,或者使用下面的技巧來避免內存交換發生
(1)假如緩存數據小于4GB,就使用32位的Redis實例。因為32位實例上的指針大小只有64位的一半,它的內存空間占用空間會更少些。 這有一個壞處就是,假設物理內存超過4GB,那么32位實例能使用的內存仍然會被限制在4GB以下。 要是實例同時也共享給其他一些應用使用的話,那可能需要更高效的64位Redis實例,這種情況下切換到32位是不可取的。 不管使用哪種方式,Redis的dump文件在32位和64位之間是互相兼容的, 因此倘若有減少占用內存空間的需求,可以嘗試先使用32位,后面再切換到64位上。
(2)盡可能的使用Hash數據結構。因為Redis在儲存小于100個字段的Hash結構上,其存儲效率是非常高的。所以在不需要集合(set)操作或list的push/pop操作的時候,盡可能的使用Hash結構。比如,在一個web應用程序中,需要存儲一個對象表示用戶信息,使用單個key表示一個用戶,其每個屬性存儲在Hash的字段里,這樣要比給每個屬性單獨設置一個key-value要高效的多。 通常情況下倘若有數據使用string結構,用多個key存儲時,那么應該轉換成單key多字段的Hash結構。 如上述例子中介紹的Hash結構應包含,單個對象的屬性或者單個用戶各種各樣的資料。Hash結構的操作命令是HSET(key, fields, value)和HGET(key, field),使用它可以存儲或從Hash中取出指定的字段。
(3)設置key的過期時間。一個減少內存使用率的簡單方法就是,每當存儲對象時確保設置key的過期時間。倘若key在明確的時間周期內使用或者舊key不大可能被使用時,就可以用Redis過期時間命令(expire,expireat, pexpire, pexpireat)去設置過期時間,這樣Redis會在key過期時自動刪除key。 假如你知道每秒鐘有多少個新key-value被創建,那可以調整key的存活時間,并指定閥值去限制Redis使用的最大內存。
(4)回收key。在Redis配置文件中(一般叫Redis.conf),通過設置“maxmemory”屬性的值可以限制Redis最大使用的內存,修改后重啟實例生效。 也可以使用客戶端命令config set maxmemory 去修改值,這個命令是立即生效的,但會在重啟后會失效,需要使用config rewrite命令去刷新配置文件。 若是啟用了Redis快照功能,應該設置“maxmemory”值為系統可使用內存的45%,因為快照時需要一倍的內存來復制整個數據集,也就是說如果當前已使用45%,在快照期間會變成95%(45%+45%+5%),其中5%是預留給其他的開銷。 如果沒開啟快照功能,maxmemory最高能設置為系統可用內存的95%
volatile-lru:使用LRU算法從已設置過期時間的數據集合中淘汰數據
volatile-ttl:從已設置過期時間的數據集合中挑選即將過期的數據淘汰。
volatile-random:從已設置過期時間的數據集合中隨機挑選數據淘汰
allkeys-lru:使用LRU算法從所有數據集合中淘汰數據。
allkeys-random:從數據集合中任意選擇數據淘汰
⑥no-enviction:禁止淘汰數據。
?

九、redis安全管理
Redis被設計成僅有可信環境下的可信用戶才可以訪問。這意味著將Redis實例直接暴露在網絡上或者讓不可信用戶可以直接訪問Redis的tcp端口或Unix套接字,是不安全的。
1、網絡安全
?? ?bind 127.0.0.1:將Redis綁定在單個接口上
?? ?port 8888:修改Redis默認端口

2、認證特性
?? ?雖然Redis沒有嘗試去實現訪問控制,但是提供了一個輕量級的認證方式,可以編輯redis.conf文件來啟用。
?? ?當認證授權方式啟用后,Redis將會拒絕來自沒有認證的用戶的任何查詢。一個客戶端可以通過發送AUTH命令并帶上密碼來給自己授權。
(1)初始化redis密碼
在配置文件中有個參數: requirepass? 這個就是配置redis訪問密碼的參數。(生成加密密碼:echo "qwertyuiopasdfghjklzxcvbnm" | sha256sum)
(2)使用密碼登陸redis
登陸時使用 -a選項加密碼
登陸到redis上使用auth 進行密碼驗證:
①config get requirepass:查詢密碼
②config set requirepass 密碼字符串:設置密碼

3、限制Redis文件目錄訪問權限
?? ?設置redis的主目錄權限為700;如果redis配置文件獨立于redis主目錄,權限修改為600。
?? ?對配置文件設置特殊權限 文件權限除了r、w、x外還有s、t、i、a權限

4、禁止使用root啟動redis
?? ?為Redis服務創建單獨的用戶和相應目錄

5、禁用或重命名危險命令
?? ?rename-command FLUSHDB zhangsan:重命名FLUSHDB命令
?? ?rename-command FLUSHALL “”:禁用FLUSHALL命令

6、配置防火墻限制客戶端登錄

7、redis-cli監控命令
(1)info命令是redis基本監控
(2)查看和殺掉客戶端連接
?? ?CLIENT LIST
?? ?CLIENT KILL 127.0.0.1:58322
(3)stat命令:顯示key數量、內存、客戶端數量、QPS情況
?? ?redis-cli --stat
(4)查看redis延遲
?? ?redis-cli --latency
(5)monitor命令會監控當前redis接受的命令和數據內容,這個命令會比較消耗資源,根據官網的測試,QPS會下降到原先的50%,需要謹慎使用
?? ?redis-cli monitor
(6)使用bigkeys查找占用空間較大的key
?? ?redis-cli --bigkeys


十、Redis主從復制
1、復制原理
(1)Slave啟動成功連接到master后會發送一個sync命令;
(2)Master接到命令啟動后的存盤進程,同時收集所有接收到的用于修改數據集命令,在后臺進程執行完畢之后,master將傳送整個數據文件到slave,以完成一次完全同步;
(3)全量復制:而slave服務在數據庫文件數據后,將其存盤并加載到內存中;
(4)增量復制:Master繼續將新的所有收集到的修改命令依次傳給slave,完成同步;
(5)但是只要是重新連接master,一次完全同步(全量復制)將被自動執行|

2、配置
(1)配從不配主
(2)從庫配置:slaveof [主庫IP] [主庫端口];
(3)多實例配置文件細節操作
①修改端口:port 6379
②開啟daemonize yes
③pidfile:指定pid文件
④logfile:指定log文件
⑤dbfilename:指定dump.rdb文件
(4)常用主從復制模式
一主二仆
?? ?一個Master,兩個Slave,Slave只能讀不能寫;當Slave與Master斷開后需要重新slave of連接才可建立之前的主從關系;Master掛掉后,Master關系依然存在,Master重啟即可恢復
薪火相傳
?? ?上一個Slave可以是下一個Slave的Master,Slave同樣可以接收其他slaves的連接和同步請求,那么該slave作為了鏈條中下一個slave的Master,如此可以有效減輕Master的寫壓力。如果slave中途變更轉向,會清除之前的數據,重新建立最新的
反客為主
?? ?當Master掛掉后,Slave可鍵入命令 slaveof no one使當前redis停止與其他Master redis數據同步,轉成Master redis
(5)反客為主的自動版,能夠后臺監控Master庫是否故障,如果故障了根據投票數自動將slave庫轉換為主庫。該模式需要使用到redis哨兵


十一、Redis哨兵
1、為什么要使用哨兵
?? ?哨兵(Sentinel)主要是為了解決在主從復制架構中出現宕機的情況,主要分為兩種情況:
(1)從Redis宕機
?? ?這個相對而言比較簡單,在Redis中從庫重新啟動后會自動加入到主從架構中,自動完成同步數據。在Redis2.8版本后,主從斷線后恢復的情況下實現增量復制。
(2)主Redis宕機
?? ?這個相對而言就會復雜一些,需要以下2步才能完成:
??? ①在從數據庫中執行SLAVEOF NO ONE命令,斷開主從關系并且提升為主庫繼續服務
??? ②將主庫重新啟動后,執行SLAVEOF命令,將其設置為其他庫的從庫,這時數據就能更新回來

2、Redis實現的sentinel哨兵機制
(1)監控(Monitoring):
?? ?Sentinel會不斷地檢查你的主服務器和從服務器是否運作正常
(2)提醒(Notification):
?? ?當被監控的某個Redis服務器出現問題時,Sentinel可以通過API向管理員或者其他應用程序發送通知
(3)自動故障遷移(Automatic failover):
?? ?當一個主服務器不能正常工作時,Sentinel 會開始一次自動故障遷移操作,它會將失效主服務器的其中一個從服務器升級為新的主服務器,并讓失效主服務器的其他從服務器改為復制新的主服務器;當客戶端試圖連接失效的主服務器時,集群也會向客戶端返回新主服務器的地址,使得集群可以使用新主服務器代替失效服務器

3、哨兵配置
(1)在Master對應redis.conf同目錄下新建sentinel.conf文件,名字絕對不能錯

(2)在sentinel.conf文件中填入內容:
①sentinel monitor 被監控數據庫名字(自己起名字) ip port 1
?? ?說明:上面最后一個數字1,表示主機掛掉后slave投票看讓誰接替成為主機,得票數多少后成為主機
②sentinel down-after-milliseconds mymaster 30000
?? ?指定了 Sentinel 認為master已經斷線所需的毫秒數
③sentinel parallel-syncs mymaster 1
?? ?指定了在執行故障轉移時, 最多可以有多少個slave同時對新的master進行同步, 這個數字越小, 完成故障轉移所需的時間就越長
④sentinel failover-timeout mymaster 180000
?? ?failover-timeout 指定故障切換允許的毫秒數,超過這個時間,就認為故障切換失敗,默認為3分鐘

(3)啟動sentinel
?? ?redis-sentinel /etc/redis/sentinel.conf

(4)查看狀態
?? ?info sentinel


十二、Redis集群-cluster
1、clushter簡介
?? ?cluster是sentinel和主從模式的結合體,通過cluster可以實現主從和master重選功能,所以如果配置兩個副本三個分片的話,就需要六個Redis實例。因為Redis的數據是根據一定規則分配到cluster的不同機器的,當數據量過大時,可以新增機器進行擴容。
?? ?Redis 集群實現了對Redis的水平擴容,即啟動N個redis節點,將整個數據庫分布存儲在這N個節點中,每個節點存儲總數據的1/N

2、cluster特點
(1)多個redis節點網絡互聯,數據共享
(2)所有的節點都是一主一從(也可以是一主多從),其中從不提供服務,僅作為備用
(3)不支持同時處理多個key(如MSET/MGET),因為redis需要把key均勻分布在各個節點上,并發量很高的情況下同時創建key-value會降低性能并導致不可預測的行為
(4)支持在線增加、刪除節點
(5)客戶端可以連接任何一個主節點進行讀寫

3、集群配置
(1)制作6個實例,6379,6380,6381,6382,6383,6384.conf,并啟動
?? ?cluster-enabled? yes:開啟集群
?? ?cluster-config-file nodes-6379.conf:集群的配置? 配置文件首次啟動自動生成6380、6881、6382
?? ?cluster-node-timeout? 15000:設定節點失聯時間,超過該時間(毫秒),集群自動進行主從切換
?? ?appendonly? yes:aof日志開啟? 有需要就開啟,它會每次寫操作都記錄一條日志
(2)創建集群
①搭建ruby環境
??? 1)Redis 官方提供了 redis-trib.rb 這個工具,就在解壓目錄的 src 目錄中,第三步中已將它復制到 /usr/local/bin 目錄中
??? 2)如果redis版本比較低,則需要安裝ruby:yum -y install ruby ruby-devel rubygems rpm-build
??? 3)安裝redis集群接口:gem install redis
??? ??? a.yum install centos-release-scl-rh:會在/etc/yum.repos.d/目錄下多出一個CentOS-SCLo-scl-rh.repo源
??? ??? b.yum install rh-ruby23? -y
??? ??? c.scl enable rh-ruby23 bash:必要一步
??? ??? d.ruby -v:查看安裝版本
??? ??? e.gem install redis
②創建集群:
1)將六個節點合成一個集群(組合之前,請確保所有redis實例啟動后,nodes-xxxx.conf文件都生成正常)
?? ?redis-trib.rb create --replicas 1 127.0.0.1:6379 127.0.0.1:6380 127.0.0.1:6381 127.0.0.1:6382 127.0.0.1:6383 127.0.0.1:6384

2)哈希槽
?? ?Redis 集群的數據分片 Redis 集群沒有使用一致性hash, 而是引入了 哈希槽的概念
?? ?一個 Redis 集群包含 16384 個插槽(hash slot), 數據庫中的每個鍵都屬于這 16384 個插槽的其中一個, 集群使用公式 CRC16(key) % 16384 來計算鍵 key 屬于哪個槽, 其中 CRC16(key) 語句用于計算鍵 key 的 CRC16 校驗和
?? ?集群的每個節點負責一部分hash槽,舉個例子,比如當前集群有3個主節點,那么:
??? ??? a.節點 A 包含 0 到 5500號哈希槽.
??? ??? b.節點 B 包含5501 到 11000 號哈希槽.
??? ??? c.節點 C 包含11001 到 16384號哈希槽.
③查看測試集群
?? ?登錄redis節點,通過 cluster nodes 命令查看集群信息。一個集群至少要有三個主節點。選項 --replicas 1 表示我們希望為集群中的每個主節點創建一個從節點。
集群操作
1)登錄
redis-cli -c -h 192.168.30.128 -p 6382 -a 123456:-c,使用集群方式登錄
2)查看集群信息
CLUSTER INFO:集群狀態

3)列出節點信息
CLUSTER NODES:列出節點信息這里與nodes.conf文件內容相同

4)寫入數據
set key111 aaa

5)redis cluster集群是去中心化的,每個節點都是平等的,連接哪個節點都可以獲取和設置數據。當然,平等指的是master節點,因為slave節點根本不提供服務,只是作為對應master節點的一個備份。
6)redis集群會將每個實例單獨啟用10000偏移的集群端口,設置防火墻時下需要同時開啟此端口
新加節點
1)復制編輯新節點conf文件并啟動實例
2)進入集群將新節點加入集群
?? ?CLUSTER MEET 127.0.0.1 6386
?? ?所有新加節點都為master節點
3)更換節點身份:登錄想要作為slave節點的實例將該節點更換為指定節點的slave節點
?? ?redis-cli -c -h 127.0.0.1 -p 6386? cluster replicate 3b9fbde7d4ef507fc5982e42d13f483ce569b2f6


十三、php使用redis
1、安裝php的redis擴展模塊
(1)https://github.com/phpredis/phpredis/releases
(2)解包后進入目錄
(3)/usr/local/php5/bin/phpize(可能需要安裝autoconf)
(4)./configure --with-php-config=/usr/local/php5/bin/php-config
(5)make && make install
(6)php.ini中添加
extension_dir = "/usr/local/php5/lib/php/extensions/no-debug-zts-20121212/"
extension=redis.so
(7)重啟apache

十四、redis與mysql結合實現數據同步
多為開發人員使用,可參考以下文檔:
https://blog.csdn.net/hanchao5272/article/details/79729576
https://blog.csdn.net/qq_32217519/article/details/71191521
https://blog.51cto.com/4925054/1910483

總結

以上是生活随笔為你收集整理的数据库应用——Redis详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。