久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

redis中持久化配置的示例分析

183次閱讀
沒有評論

共計 4225 個字符,預計需要花費 11 分鐘才能閱讀完成。

自動寫代碼機器人,免費開通

這篇文章主要介紹了 redis 中持久化配置的示例分析,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓丸趣 TV 小編帶著大家一起了解一下。

redis 的持久化配置(圖文介紹)redis 簡述

redis 是一款由 c 語言編寫的,開源的高可用的非關系型數據庫(NoSQL,不僅僅是數據庫)型的鍵值對(key-value)數據庫。

與傳統的數據庫不同的是 redis 的數據是存在內存的,所以讀寫性能不是一般的高,可達到每秒 10 萬次操作,因此被廣泛的應用到緩存方向,例如:在網站架構里面和 tomcat 做 session 共享,做數據庫緩存等。

redis 的優缺點

優點

讀寫速度快,讀能達到 110000 次 /s,寫能達到 81000 次 /s,c 語言寫的,代碼優雅,而且還是單線程架構,所以執行效率高,速度快

支持多種數據結構,字符串(string,也是最常用的),哈希(hash),列表(list),集合(SET),有序集合(ZSET)

豐富的功能,例如:天然計數器,  鍵過期功能,消息隊列等

支持的客戶端語言多,支持 php,java,python

支持數據持久化

自帶多種高可用架構,比如:主從復制,哨兵,高可用集群

缺點

正是因為數據都存在內存里,所以對服務器性能要求嚴格,根據業務量自己選擇內存選購多大

很難實現在線擴容,所以第一次選購需謹慎

上面有提到持久化,何為持久化?

持久化就是支持把內存中的數據寫到磁盤里面,防止服務器宕機了內存里面數據全部丟失。

實現持久化的方式

支持 2 種格式持久化數據 AOF,RDB,還有就是這兩種混合使用 AOF RDB
注意:當這種都開啟時,redis 數據恢復優先使用 AOF,但是 RDB 是默認的持久化方式。

AOF 持久化:就是把 redis 每一次執行的命令都記錄到單獨指定的日志文件里面,當重啟或者要恢復數據時就會恢復日志文件中的數據

RDB:就像是拍快照一樣,按照配置文件定義的 save 參數來定義快照的周期,然后保存到硬盤里面,會產生 dump.rdb 文件

AOF 和 RDB 的對比:

1AOF 文件比 rdb 更新頻率高,優先使用 aof 還原

aof 比 rdb 更安全

rdb 性能比 aof 要好,數據量很大時,日志恢復速度比 rdb 慢

在持續讀寫時,如果 rdb 拍攝快照,會有數據延遲,恢復的數據會不完整

redis 的數據結構數據類型存儲值常用的操作命令應用的場景 string 字符串 SET(創建),GET(查看),DEL(刪除),MSET(批量創建),MGET(批量查看做緩存,鍵值對的過期時間,把 session 會話存在 redis, 過期刪除,緩存用戶信息,緩存 Mysql 部分數據,商城優惠卷過期時間等 list 列表 RPUSH(創建,若存在則向右邊添加),LPUSH(左添加,LRABGE+ 范圍(查看范圍值),RPOP(刪除右邊最后一個),LPOP(刪除左邊最后一個)一般與 zset 結合用,主要應用于排行榜,熱度 / 點擊數排行榜,直播間榜一大哥排行等 hash 哈希 HMSET+ 對象(創建對象的鍵值,針對的是一個對象),HGET+ 對象(查看對象的某個參數)一般 key 是 ID 或唯一標識,value 是對應的詳細信息,如:商品信息,個人信息,新聞等 SET 無序集合 SADD(創建集合),SMEMBERS(查看集合),SREM(刪除集合的值),SDIFF 集合 1 集合 2(求差集),SINTER 集合 1 集合 2(求合集),SUNION 集合 1 集合 2(求并集)求交集,并集,合集,應用于社交網絡,如:共同愛好,共同好友等 ZSET 有序集合同 SET 可以和 list 結合完成排行榜實現 redis 的持久化部署 redis

1. 創建數據目錄

mkdir -p /redis/soft
mkdir -p /opt/redis_cluster/redis_6379/{conf,logs,pid}

解釋下為什么自己創建 conf,logs,pid 目錄,而不是讓它初始化自動生成
我們是為了再一臺主機上開啟多個 redis 進程來實現后期的 redis 集群(至少 6 臺)(Author 電腦配置不允許我任性操作)

2. 下載 redis 安裝包

cd /redis/soft
wget http://download.redis.io/releases/redis-5.0.6.tar.gz

3. 解壓 redis 到 /opt/redis_cluster/

tar zxf redis-5.0.6.tar.gz -C /opt/redis_cluster/
ln -s /opt/redis_cluster/redis-5.0.6 /opt/redis_cluster/redis # 做好軟連接,方便自己管理

4. 切換目錄安裝 redis

cd /opt/redis_cluster/redis
 make   make install

5. 自己編寫配置文件 /opt/redis_cluster/redis_6379/conf/6379.conf
添加一些重要的內容

添加:bind 127.0.0.1 192.168.10.1
port 6379
daemonize yes # 開啟 daemon 進程 pidfile /opt/redis_cluster/redis_6379/pid/redis_6379.pid
logfile /opt/redis_cluster/redis_6379/logs/redis_6379.log
databases 16
dbfilename redis.rdb #RDB 持久化文件 dir /opt/redis_cluster/redis_6379 #RDB 存放的位置

6. 啟動當前 redis 服務
redis-server /opt/redis_cluster/redis_6379/conf/6379.conf

[root@redis-master ~]# netstat -anpt |grep 6379tcp 0 0 192.168.10.1:6379 0.0.0.0:* LISTEN 49206/redis-server 
tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN 49206/redis-server 
tcp 0 0 127.0.0.1:41400 127.0.0.1:6379 TIME_WAIT - 
tcp 0 0 192.168.10.1:6379 192.168.10.8:46220 ESTABLISHED 49206/redis-server 
[root@redis-master ~]#

持久化之 RDB 配置

修改配置文件,添加 save 項

vim /opt/redis_cluster/redis_6379/conf/6379.conf 
save 900 1 #在 900 秒 (15 分鐘) 之后,如果至少有 1 個 key 發生變化,則 dump 內存快照。save 300 10 #在 300 秒 (5 分鐘) 之后,如果至少有 10 個 key 發生變化,則 dump 內存快照。save 60 500 # 在 60 秒 (1 分鐘) 之后,如果至少有 500 個 key 發生變化,則 dump 內存快照

持久化之 AOF 配置

同為修改配置文件
添加 appendonly,啟用持久化

vim /opt/redis_cluster/redis_6379/conf/6379.conf
appendonly yes #啟用 AOF 持久化 appendfilename  redis.aof #指定 AOF 文件名 appendfsync everysec #每秒同步一次

重啟 redis 使其生效,驗證持久化

redis-cli shutdownredis-server /opt/redis_cluster/redis_6379/conf/6379.conf

在 redis 數據庫里面添加鍵值對

#!/bin/bashfor i in {1..500}do 
 redis-cli set k_$i v_$idone

redis 中持久化配置的示例分析

這時候關閉數據庫,內存里的東西正??隙〞G失,但是,現在肯定不會丟失的,而且還會有持久化的文件

[root@redis-master ~]# redis-cli shutdown[root@redis-master ~]# redis-server /opt/redis_cluster/redis_6379/conf/6379.conf [root@redis-master ~]# [root@redis-master ~]# redis-cli127.0.0.1:6379  keys k_500
1)  v_500 127.0.0.1:6379

redis 中持久化配置的示例分析

redis 主從復制

為什么要做 redis 主從復制?
為解決單點故障把數據復制到一個或多個副本副本服務器(從服務器),實現冗余,達到故障恢復和負載均衡的目的

另起一臺服務器,安裝 redis

1. 為了簡單,我們直接復制前邊 master

[root@redis-master ~]# scp -rp /opt/redis_cluster/ root@192.168.10.8:/opt

2. 直接 make install 安裝 redis,無須再編譯,在 master 已經做過

修改配置文件

cd /opt/redis_cluster/redis
vim /opt/redis_cluster/redis_6379/conf/6379.conf 
 bind 127.0.0.1 192.168.10.8
 slaveof 192.168.10.1 6379 # 添加 master 的 ip port 保存退出

3. 啟動服務

redis-server /opt/redis_cluster/redis_6379/conf/6379.conf

主服務器上新建鍵值,測試從服務器自動同步

redis 中持久化配置的示例分析
redis 中持久化配置的示例分析
注:
從服務器在同步過程中,只能復制主數據庫的數據,不能手動添加修改數據;
如果從服務器非要修改數據,需要斷開同步:
[root@redis-slave ~]# redis-cli slaveof no one

提示 OK 即可

如果 master 宕機的話,從服務器可以先手動斷開同步,這時候,他就是一個獨立的個體,其他的從服務器再指向自己,即可完成切換

感謝你能夠認真閱讀完這篇文章,希望丸趣 TV 小編分享的“redis 中持久化配置的示例分析”這篇文章對大家有幫助,同時也希望大家多多支持丸趣 TV,關注丸趣 TV 行業資訊頻道,更多相關知識等著你來學習!

向 AI 問一下細節

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-12-16發表,共計4225字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 读书| 囊谦县| 柞水县| 东光县| 西华县| 德阳市| 新巴尔虎右旗| 泰来县| 儋州市| 临海市| 二手房| 庐江县| 尉犁县| 安化县| 南京市| 定州市| 通海县| 琼结县| 玛沁县| 毕节市| 利川市| 会泽县| 格尔木市| 芜湖市| 且末县| 中方县| 孟村| 新干县| 黔西县| 南和县| 文水县| 三原县| 巴林左旗| 大关县| 鹤壁市| 章丘市| 偃师市| 长汀县| 河间市| 当涂县| 太湖县|