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

歡迎訪問 生活随笔!

生活随笔

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

数据库

如何在CentOS 7上安装Redis服务器

發布時間:2025/3/8 数据库 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何在CentOS 7上安装Redis服务器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

大家好,本文的主題是 Redis,我們將要在 CentOS 7 上安裝它。編譯源代碼,安裝二進制文件,創建、安裝文件。在安裝了它的組件之后,我們還會配置 redis ,就像配置操作系統參數一樣,目標就是讓 redis 運行的更加可靠和快速。

Redis 服務器

Redis 是一個開源的多平臺數據存儲軟件,使用 ANSI C 編寫,直接在內存使用數據集,這使得它得以實現非常高的效率。Redis 支持多種編程語言,包括 Lua, C, Java, Python, Perl, PHP 和其他很多語言。redis 的代碼量很小,只有約3萬行,它只做“很少”的事,但是做的很好。盡管是在內存里工作,但是數據持久化的保存還是有的,而redis 的可靠性就很高,同時也支持集群,這些可以很好的保證你的數據安全。

構建 Redis

redis 目前沒有官方 RPM 安裝包,我們需要從源代碼編譯,而為了要編譯就需要安裝 Make 和 GCC。

如果沒有安裝過 GCC 和 Make,那么就使用 yum 安裝。

  • yum?install?gcc?make?
  • 從官網下載 tar 壓縮包。

  • curl?http://download.redis.io/releases/redis-3.0.4.tar.gz?-o?redis-3.0.4.tar.gz?
  • 解壓縮。

  • tar?zxvf?redis-3.0.4.tar.gz?
  • 進入解壓后的目錄。

  • cd?redis-3.0.4?
  • 使用Make 編譯源文件。

  • make?
  • 安裝

    進入源文件的目錄。

  • make?
  • 復制 Redis 的服務器和客戶端到 /usr/local/bin。

  • cp?redis-server?redis-cli?/usr/local/bin?
  • 最好也把 sentinel,benchmark 和 check 復制過去。

  • cp?redis-sentinel?redis-benchmark?redis-check-aof?redis-check-dump?/usr/local/bin?
  • 創建redis 配置文件夾。

  • mkdir?/etc/redis?
  • 在/var/lib/redis 下創建有效的保存數據的目錄。

  • mkdir?-p?/var/lib/redis/6379?
  • 系統參數

    為了讓 redis 正常工作需要配置一些內核參數。

    配置 vm.overcommit_memory 為1,這可以避免數據被截斷,詳情見此

  • sysctl?-w?vm.overcommit_memory=1?
  • 修改 backlog 連接數的最大值超過 redis.conf 中的 tcp-backlog 值,即默認值511。你可以在?kernel.org?找到更多有關基于 sysctl 的 ip 網絡隧道的信息。

  • sysctl?-w?net.core.somaxconn=512?
  • 取消對透明巨頁內存(transparent huge pages)的支持,因為這會造成 redis 使用過程產生延時和內存訪問問題。

  • echo?never?>?/sys/kernel/mm/transparent_hugepage/enabled?
  • redis.conf

    redis.conf 是 redis 的配置文件,然而你會看到這個文件的名字是 6379.conf ,而這個數字就是 redis 監聽的網絡端口。如果你想要運行超過一個的 redis 實例,推薦用這樣的名字。

    復制示例的 redis.conf 到 /etc/redis/6379.conf。

  • echo?never?>?/sys/kernel/mm/transparent_hugepage/enabled?
  • 現在編輯這個文件并且配置參數。

  • vi?/etc/redis/6379.conf?
  • daemonize

    設置 daemonize 為 no,systemd 需要它運行在前臺,否則 redis 會突然掛掉。

  • vi?/etc/redis/6379.conf?
  • pidfile

    設置 pidfile 為 /var/run/redis_6379.pid。

  • vi?/etc/redis/6379.conf?
  • port

    如果不準備用默認端口,可以修改。

  • port?6379?
  • loglevel

    設置日志級別。

  • port?6379?
  • logfile

    修改日志文件路徑。

  • logfile?/var/log/redis_6379.log?
  • dir

    設置目錄為 /var/lib/redis/6379

  • dir?/var/lib/redis/6379?
  • 安全

    下面有幾個可以提高安全性的操作。

    Unix sockets

    在很多情況下,客戶端程序和服務器端程序運行在同一個機器上,所以不需要監聽網絡上的 socket。如果這和你的使用情況類似,你就可以使用 unix socket 替代網絡 socket,為此你需要配置 port 為0,然后配置下面的選項來啟用 unix socket。

    設置 unix socket 的套接字文件。

  • unixsocket?/tmp/redis.sock?
  • 限制 socket 文件的權限。

  • unixsocketperm?700?
  • 現在為了讓 redis-cli 可以訪問,應該使用 -s 參數指向該 socket 文件。

  • redis-cli?-s?/tmp/redis.sock?
  • requirepass

    你可能需要遠程訪問,如果是,那么你應該設置密碼,這樣子每次操作之前要求輸入密碼。

  • requirepass?"bTFBx1NYYWRMTUEyNHhsCg"?
  • rename-command

    想象一下如下指令的輸出。是的,這會輸出服務器的配置,所以你應該在任何可能的情況下拒絕這種訪問。

  • CONFIG?GET?*?
  • 為了限制甚至禁止這條或者其他指令,可以使用 rename-command 命令。你必須提供一個命令名和替代的名字。要禁止的話,需要設置替代的名字為空字符串,這樣禁止任何人猜測命令的名字會比較安全。

  • rename-command?FLUSHDB?"FLUSHDB_MY_SALT_G0ES_HERE09u09u"?
  • rename-command?FLUSHALL?""?
  • rename-command?CONFIG?"CONFIG_MY_S4LT_GO3S_HERE09u09u"?
  • 使用密碼通過 unix socket 訪問,和修改命令

    快照

    默認情況下,redis 會周期性的將數據集轉儲到我們設置的目錄下的 dump.rdb 文件。你可以使用 save 命令配置轉儲的頻率,它的第一個參數是以秒為單位的時間幀,第二個參數是在數據文件上進行修改的數量。

    每隔15分鐘并且最少修改過一次鍵。

  • save?900?1?
  • 每隔5分鐘并且最少修改過10次鍵。

  • save?300?10?
  • 每隔1分鐘并且最少修改過10000次鍵。

  • save?60?10000?
  • 文件 /var/lib/redis/6379/dump.rdb 包含了從上次保存以來內存里數據集的轉儲數據。因為它先創建臨時文件,然后替換之前的轉儲文件,這里不存在數據破壞的問題,你不用擔心,可以直接復制這個文件。

    開機時啟動

    你可以使用 systemd 將 redis 添加到系統開機啟動列表。

    復制示例的 init_script 文件到 /etc/init.d,注意腳本名所代表的端口號。

  • cp?utils/redis_init_script?/etc/init.d/redis_6379?
  • 現在我們要使用 systemd,所以在 /etc/systems/system 下創建一個單位文件名字為 redis_6379.service。

  • vi?/etc/systemd/system/redis_6379.service?
  • 填寫下面的內容,詳情可見 systemd.service。

  • [Unit]?
  • Description=Redis?on?port?6379?
  • ?
  • [Service]?
  • Type=forking?
  • ExecStart=/etc/init.d/redis_6379?start?
  • ExecStop=/etc/init.d/redis_6379?stop?
  • ?
  • [Install]?
  • WantedBy=multi-user.target?
  • 現在,添加我之前在 /etc/sysctl.conf 里面修改過的內存過量使用和 backlog 最大值的選項。

  • vm.overcommit_memory?=?1?
  • ?
  • net.core.somaxconn=512?
  • 對于透明巨頁內存支持,并沒有直接 sysctl 命令可以控制,所以需要將下面的命令放到 /etc/rc.local 的結尾。

  • echo?never?>?/sys/kernel/mm/transparent_hugepage/enabled?
  • 總結

    這樣就可以啟動了,通過設置這些選項你就可以部署 redis 服務到很多簡單的場景,然而在 redis.conf 還有很多為復雜環境準備的 redis 選項。在一些情況下,你可以使用replication?和?Sentinel?來提高可用性,或者將數據分散在多個服務器上,創建服務器集群。





    作者:Carlos Alberto 來源:51CTO

    總結

    以上是生活随笔為你收集整理的如何在CentOS 7上安装Redis服务器的全部內容,希望文章能夠幫你解決所遇到的問題。

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