玩轉Rocky Linux 9 部署Redis指南
大家好,我是星哥。今天,咱們來盤一盤Redis,Redis作為高性能的鍵值數據庫,在緩存、消息隊列、實時數據處理等場景中扮演著舉足輕重的角色。
功能介紹
功能介紹:Rocky Linux 9系統中源碼包安裝 Redis 的shell腳本
安裝版本:redis-7.4.1
端口:63920
配置所在的目錄: /data/conf/
密碼: YpassWord666 【請修改密碼】
redis持久化目錄:/data/redis/端口號
redis日志: /data/redis/端口號/redis_端口號.log
![]()
快速安裝
使用: gitee: wget https://gitee.com/funet8/Rocky-Linux-Shell/raw/main/shell/Rocky_Linux_9_Install_Redis.sh sh Rocky_Linux_9_Install_Redis.sh github: wget https://raw.githubusercontent.com/funet8/Rocky-Linux-Shell/refs/heads/main/shell/Rocky_Linux_9_Install_Redis.sh sh Rocky_Linux_9_Install_Redis.sh1.安裝依耐dnf groupinstall -y "Development Tools" dnf install -y gcc jemalloc-devel tcl 2.新建目錄mkdir -p /data/software/ mkdir -p /data/conf/ cd /data/software/3.下載安裝包解壓并安裝
# 去這里查找 http://download.redis.io/releases/ # 官方下載地址: wget http://download.redis.io/releases/redis-7.4.1.tar.gz tar -zxf redis-7.4.1.tar.gz cd redis-7.4.1 make cd src && make test make install4.配置redis 開機啟動文件mkdir /etc/init.d/ cp /data/software/redis-7.4.1/utils/redis_init_script /etc/init.d/redis_63920 #修改配置文件: sed -i "s/REDISPORT\=6379/REDISPORT\=63920/g" /etc/init.d/redis_63920 sed -i "s/\/etc\/redis\//\/data\/conf\//g" /etc/init.d/redis_63920 啟動redis、開機自啟動 /etc/init.d/redis_63920 start echo "/etc/init.d/redis_63920 start" >> /etc/rc.d/rc.local配置文件#創建目錄 mkdir -p /data/conf/ cp /data/software/redis-7.4.1/redis.conf /data/conf/63920.conf cat > /data/conf/63920.conf << EOFI #綁定的主機地址,默認:bind 127.0.0.1 bind 0.0.0.0 #端口 port 63920 # TCP 監聽的最大容納數量 # 在高并發的環境下,你需要把這個值調高以避免客戶端連接緩慢的問題。 # Linux 內核會一聲不響的把這個值縮小成 /proc/sys/net/core/somaxconn 對應的值, # 所以你要修改這兩個值才能達到你的預期。 tcp-backlog 511 # 指定在一個 client 空閑多少秒之后關閉連接(0 就是不管它) timeout 20 # tcp 心跳包。 # 如果設置為非零,則在與客戶端缺乏通訊的時候使用 SO_KEEPALIVE 發送 tcp acks 給客戶端。 # 這個之所有有用,主要由兩個原因: # 1) 防止死的 peers # 2) Take the connection alive from the point of view of network # equipment in the middle. # 推薦一個合理的值就是60秒 tcp-keepalive 60 # 默認情況下 redis 不是作為守護進程運行的,如果你想讓它在后臺運行,你就把它改成 yes。 # 當redis作為守護進程運行的時候,它會寫一個 pid 到 /var/run/redis.pid 文件里面。 daemonize yes #可以通過upstart和systemd管理Redis守護進程,這個參數是和具體的操作系統相關的。 supervised no #當redis以守護模式啟動時指定pid pidfile /var/run/redis_63920.pid #loglevel日志級別 #debug-->記錄大量日志信息,適用于開發、測試階段 #verbose-->較多日志信息 #notice-->適量日志信息,使用于生產環境 #warning-->僅有部分重要、關鍵信息才會被記錄 loglevel notice #日志文件的位置 logfile "/data/conf/redis_63920.log" #設置數據庫的數目 databases 16 #保存數據到磁盤。格式是:save ,含義是在 seconds 秒之后至少有 changes個keys 發生改變則保存一次。 #默認設置意思是:在60 秒之內有10000 個keys 發生變化時、在300 秒之內有10 個keys 發生了變化、在900 秒之內有1 個keys 發生了變化,則鏡像備份。 save 9001 save 30010 save 6010000 #默認情況下,如果 redis 最后一次的后臺保存失敗,redis 將停止接受寫操作,這樣以一種強硬的方式讓用戶知道數據不能正確的持久化到磁盤, 否則就會沒人注意到災難的發生。 如果后臺保存進程重新啟動工作了,redis 也將自動的允許寫操作。然而你要是安裝了靠譜的監控,你可能不希望 redis 這樣做,那你就改成 no 好了。 stop-writes-on-bgsave-error yes #是否在dump .rdb數據庫的時候壓縮字符串,默認設置為yes。如果你想節約一些cpu資源的話,可以把它設置為no,這樣的話數據集就可能會比較大。 rdbcompression yes #是否CRC64校驗rdb文件,會有一定的性能損失(大概10%)。 rdbchecksum yes #rdb文件 dbfilename dump.rdb #數據庫存放目錄。必須是一個目錄,aof文件也會保存到該目錄下。 dir /data/conf/ #設置本機為slave服務。格式:slaveof 。設置master服務的IP地址及端口,在Redis啟動時,它會自動從master進行數據同步 # slaveof 192.168.1.3 6379 # slaveof #當master服務設置了密碼保護時,slave服務連接master的密碼。 #masterauth #當一個slave與master失去聯系時,或者復制正在進行的時候,slave應對請求的行為:1) 如果為 yes(默認值) ,slave 仍然會應答客戶端請求,但返回的數據可能是過時,或者數據可能是空的在第一次同步的時候;2) 如果為 no ,在你執行除了 info 和 salveof 之外的其他命令時,slave 都將返回一個 "SYNC with master in progress" 的錯誤。 slave-serve-stale-data yes #設置slave是否是只讀的。從2.6版起,slave默認是只讀的。 slave-read-only yes #主從數據復制是否使用無硬盤復制功能。 repl-diskless-sync no repl-diskless-sync-delay 5 #指定向slave同步數據時,是否禁用socket的NO_DELAY選 項。若配置為“yes”,則禁用NO_DELAY,則TCP協議棧會合并小包統一發送,這樣可以減少主從節點間的包數量并節省帶寬,但會增加數據同步到 slave的時間。若配置為“no”,表明啟用NO_DELAY,則TCP協議棧不會延遲小包的發送時機,這樣數據同步的延時會減少,但需要更大的帶寬。 通常情況下,應該配置為no以降低同步延時,但在主從節點間網絡負載已經很高的情況下,可以配置為yes。 repl-disable-tcp-nodelay yes #當 master 不能正常工作的時候,Redis Sentinel 會從 slaves 中選出一個新的 master,這個值越小,就越會被優先選中,但是如果是 0 , 那是意味著這個 slave 不可能被選中。 默認優先級為 100。 slave-priority 100 #設置redis連接密碼。 requirepass YpassWord666 #是否啟用aof持久化方式 。即是否在每次更新操作后進行日志記錄,默認配置是no,即在采用異步方式把數據寫入到磁盤,如果不開啟,可能會在斷電時導致部分數據丟失。 appendonly no #更新日志文件名,默認值為appendonly.aof 。 appendfilename "appendonly.aof" #aof文件刷新的頻率。有三種: #no 依靠OS進行刷新,redis不主動刷新AOF,這樣最快,但安全性就差。 #always 每提交一個修改命令都調用fsync刷新到AOF文件,非常非常慢,但也非常安全。 #everysec 每秒鐘都調用fsync刷新到AOF文件,很快,但可能會丟失一秒以內的數據。 appendfsync everysec #指定是否在后臺aof文件rewrite期間調用fsync,默認為no,表示要調用fsync(無論后臺是否有子進程在刷盤)。Redis在后臺寫RDB文件或重寫AOF文件期間會存在大量磁盤IO,此時,在某些linux系統中,調用fsync可能會阻塞。 no-appendfsync-on-rewrite no #當AOF文件增長到一定大小的時候Redis能夠調用 BGREWRITEAOF 對日志文件進行重寫 。當AOF文件大小的增長率大于該配置項時自動開啟重寫。 auto-aof-rewrite-percentage 100 #當AOF文件增長到一定大小的時候Redis能夠調用 BGREWRITEAOF 對日志文件進行重寫 。當AOF文件大小大于該配置項時自動開啟重寫。 auto-aof-rewrite-min-size 64mb #redis在啟動時可以加載被截斷的AOF文件,而不需要先執行 redis-check-aof 工具。 aof-load-truncated yes #一個Lua腳本最長的執行時間,單位為毫秒,如果為0或負數表示無限執行時間,默認為5000。 lua-time-limit 5000 #設定執行時間,單位是毫秒,執行時長超過該時間的命令將會被記入log。-1表示不記錄slow log; 0強制記錄所有命令 slowlog-log-slower-than 10000 #slow log的長度。最小值為0。如果日志隊列已超出最大長度,則最早的記錄會被從隊列中清除。 slowlog-max-len128 #服務端內部的延遲監控,設置一個合理的閾值,如設置100ms latency-monitor-threshold 0 notify-keyspace-events "" hash-max-ziplist-entries 512 hash-max-ziplist-value 64 list-max-ziplist-size -2 list-compress-depth 0 set-max-intset-entries 512 zset-max-ziplist-entries 128 zset-max-ziplist-value 64 hll-sparse-max-bytes3000 activerehashing yes client-output-buffer-limit normal 000 client-output-buffer-limit slave 256mb 64mb 60 client-output-buffer-limit pubsub 32mb 8mb 60 hz 10 aof-rewrite-incremental-fsync yes #最大內存設置,默認為0,表示"無限制",推薦為物理內存的3/4,此配置需要和"maxmemory-policy"配合使用,當redis中內存數據達到maxmemory時,觸發"清除策略" maxmemory 1024mb #內存不足"時,數據清除策略,默認為"volatile-lru"。 maxmemory-policy volatile-lru #限制同時連接的客戶端數量,不易過大具體多少根據具體情況而定 maxclients 30000 EOFI5.防火墻放開端口###############4.防火墻開啟端口 #允許端口 firewall-cmd --zone=public --add-port=63920/tcp --permanent firewall-cmd --reload firewall-cmd --zone=public --list-ports # 查看redis版本 redis-cli --version6.連接redisredis-cli -h IP地址 -p 端口 -a 密碼 例如: redis-cli -h 127.0.0.1 -p 63920 -a YpassWord666關閉redis
# 關閉redis redis-cli -h IP地址 -p 端口 -a 密碼 shutdown 例如: redis-cli -h 127.0.0.1 -p 63920 -a YpassWord666 shutdown至此,現在你已經在Rocky Linux 9上成功安裝并配置了Redis。
最后
寫文不易,如果你都看到了這里,請點個贊和在看,分享給更多的朋友;也別忘了關注星哥玩云!這里有滿滿的干貨分享,還有輕松有趣的技術交流~點個贊、分享給身邊的小伙伴,一起成長,一起玩轉技術世界吧!
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.