當前位置:首頁 » 編程軟體 » centos7redis啟動腳本

centos7redis啟動腳本

發布時間: 2023-05-04 05:15:36

① centos怎麼啟動redis

1.從官網下載redis-2.8.9.tar.gz之後,將redis解壓在/usr/local下,目錄是redis-2.8.9,然後按照官網給出的辦法安裝redis即可。 2.安裝完在redis-2.8.9目塵滑瞎錄下執行src/redis-server, 然後在另一讓備個shell窗派空口執行src/redis-cli,可以正確運行。 但...

② 如何在 CentOS 7 上安裝 Redis 伺服器

一、安裝redis

a、在redis官網下載redis:

$ wget http://download.redis.io/releases/redis-3.2.6.tar.gz
$ tar xzf redis-3.2.6.tar.gz
$ cd redis-3.2.6
$ make

b、在redis安裝目錄下進入utils目錄,執行自動安裝腳本

cd utils/

./install_server.sh

一路回車都按照默認設置執行

//執行完腳本後,會出現以下提示:

Selected config:

Port : 6379

Config file : /etc/redis/6379.conf

Log file : /var/log/redis_6379.log

Data dir : /var/lib/redis/6379

Executable : /usr/local/bin/redis-server

Cli Executable : /usr/local/bin/redis-cli

c、添加redis開機自啟動

//修改文件許可權

chmod 755 /etc/init.d/redis_6379

//添加自啟動

chkconfig --add redis_6379

chkconfig --level 345 redis_6379on

d、檢查遠程伺服器的6379埠是否被防火牆攔截。假如未開啟,則添加

/sbin/iptables -I INPUT -p tcp --dport 6379 -j ACCEPT

/etc/init.d/iptables restart(視伺服器情況而定,如果不知道的話可以選擇重啟伺服器)

也可以在wdcp的後台系統管理--iptables添加規則

使用安騎士等防火牆軟體的自行添加6379埠訪問通過的規則

e、通過客戶端命令行連接redis

//在本地連接

redis-cli -h 127.0.0.1 -p 6379



二、添加phpredis擴展

獲取並解壓安裝包

cd

wget https://github.com/phpredis/phpredis/archive/develop.zip

unzip develop.zip

注意:若提示未找到「unzip」命令

解決辦法:運行 yum install unzip -y

//進入目錄

cd phpredis-develop

使用phpize命令添加擴展,phpize命令所在路徑根據實際情況修改

/www/wdlinux/nginx_php/bin/phpize

注意:可能會有「Cannot find autoconf. Please check your autoconf installation and the$PHP_AUTOCONF environment variable. Then, rerun this script.」錯誤

解決辦法:運行 yum install -y autoconf

再重新運行前面的phpize命令

出現類似下圖的提示,則代表成功


代表生成redis.so成功,可以進到該目錄去查看是否有生成。該路徑也是視實際情況而定。

//php.ini中加入redis.so擴展

//加入這一行,保存退出。路徑要使用上面裝完redis生成redis.so的路徑

extension=/www/wdlinux/nginx_php/lib/php/extensions/no-debug-non-zts-20121212/redis.so

重啟web服務(重點是重啟php)

通過phpinfo查看是否添加了redis擴展




③ 求教關於Centos 7開機自動啟動腳本 問題。

Centos 7 中 /etc/rc.d/rc.local 這個文件許可權降低了。你可以看下 ll /etc/rc.d/rc.local 看他的許可權。
你可以試著加下許可權。
chmod +x /etc/rc.d/rc.local

④ CentOS7 設置開機自啟動腳本

兩種實現方式:
方法一: (rc.local)
1、因為在 centos7 中 /etc/rc.d/rc.local 的許可權被降低了,所以需要賦予其可執行權

2、賦予腳本可執行許可權
假設 /usr/local/sca/start.sh 是你的腳本路徑,給予執行許可權

3、打開 /etc/rc.d/rc.local 文件,在末尾增加如下內容

方法二: (chkconfig)
1、將腳本移動到 /etc/rc.d/init.d 目錄下

2、增加腳本的可執行許可權

3、添加腳本到開機自動啟動項目中

chkconfig 啟動腳本規范 在腳本開頭加入下面內容:

注意:不添加以上內容的話添加啟動項時會提示service myservice does not support chkconfig
Linux啟動優先順序:

⑤ centos 安裝 redis 怎麼配置文件

Redis是一個開源的使用ANSI C語言編寫、支持網路、可基於內存亦可持久化的日誌型、Key-Value資料庫舉帆帆,並提供多種語言的API。

下載

官網下載:http://redis.io/download

安裝
tar zxvf redis-2.8.9.tar.gz #解壓
cd redis-2.8.9 #進入目錄
make #直接make 編譯
make install #可使用root用戶執行`make install`,將可執行文件拷貝到/usr/local/bin目錄下,這樣就可以直接敲名字運行程序了

啟動(有三種方式)

直接啟動

1、執行命令:
./redis-server & #加上`&`號使redis以後台程序方式運行

2、檢測
ps -ef |grep redis #檢測後台進程是否存在
netstat -lntp | grep 6379 #檢測6379埠是否在監聽
./redis-cli #使用`redis-cli`客戶端檢測連接是否正常
127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379> set key "hello world"
OK
127.0.0.1:6379> get key
"hello world"

3、停止
redis-cli shutdown #使用客戶端
kill -9 PID #因為Redis可以妥善處理SIGTERM信號,所以直接kill -9也是可以的

通過指定配置文件啟動

1、配置文件
可為redis服務啟動指定配置文件,配置文件 redis.conf 在Redis根目錄下:
daemonize yes #修改daemonize為yes,即默認以後台程序方式運行
port 6380 #可修改默認監聽埠,原始為6379,我們修改成了6380
logfile "/home/futeng/logs/redis.log" #修改生成默認日誌文件位置#修改生成默認日誌文件位置
dir /home/futeng/data/redisData #修改生成默認日誌文件位置

2、啟動時指定配置文件
redis-server ./redis.conf #指定目錄中某個配置文件
redis-cli -p 6380 #如果更改了埠,使用`redis-cli`客戶端連接時,也需要指定埠

其他啟停同 直接啟動 方式。配置文件是非常重要的配置工具,隨著使用的逐漸轎隱深入將顯得尤為重要,推薦在一開始就使用配置文件。

使用Redis啟動腳本設置開機自啟動正雹

1、啟動腳本
推薦在生產環境中使用啟動腳本方式啟動redis服務,啟動腳本redis_init_script 位於位於Redis的 /utils/ 目錄下:
#大致瀏覽下該啟動腳本,發現redis習慣性用監聽的埠名作為配置文件等命名,我們後面也遵循這個約定。#redis伺服器監聽的埠
REDISPORT=6379
#服務端所處位置,在make install後默認存放與`/usr/local/bin/redis-server`,如果未make install則需要修改該路徑,下同。
EXEC=/usr/local/bin/redis-server
#客戶端位置
CLIEXEC=/usr/local/bin/redis-cli
#Redis的PID文件位置
PIDFILE=/var/run/redis_${REDISPORT}.pid
#配置文件位置,需要修改
CONF="/etc/redis/${REDISPORT}.conf"

2、配置環境
根據啟動腳本要求,將修改好的配置文件以埠為名復制一份到指定目錄,需使用root用戶:
mkdir /etc/redis
cp redis.conf /etc/redis/6379.conf

將啟動腳本復制到/etc/init.d目錄下,本例將啟動腳本命名為redisd(通常都以d結尾表示是後台自啟動服務):
cp redis_init_script /etc/init.d/redisd

設置為開機自啟動,此處直接配置開啟自啟動
chkconfig redisd on

將報錯誤: service redisd does not support chkconfig ,需要我們在啟動腳本開頭添加如下兩行注釋以修改其運行級別:

#!/bin/sh
# chkconfig: 2345 90 10
# description: Redis is a persistent key-value database
#
再設置即可成功。
chkconfig redisd on #設置為開機自啟動伺服器
service redisd start #打開服務
service redisd stop #關閉服務

更清晰的話可以看下這篇哦http://www.linuxprobe.com/initial-installation-of-redis.html

⑥ 求教關於Centos 7開機自動啟動腳本 問題

1. 自己新建一個腳本,如centnet-service.sh
經過後面的幾個步驟後,這個腳本在開機的時候會執行,在這個腳本裡面可以寫你開機的時候想執行的命令,如啟動tomcat,oracle等服務
2. 在腳本中輸入啟動服務的命令,如(開機啟動tomcat):
#!/bin/bashexport JDK_HOME=/home/java/jdk1.8.0_91export JAVA_HOME=/home/java/jdk1.8.0_91/home/tomcat/apache-tomcat-8.0.36/bin/startup.sh

3. 執行如下命令,將該腳本標記為可執行文件(添加可執行的許可權)
chmod +x /home/centnet/centnet-service.sh

4. 執行如下命令將/etc/rc.d/rc.local文標記為可執行文件
在centos7中,/etc/rc.d/rc.local文件的許可權被降低了,開機的時候執行在自己的腳本是不能起動一些服務的,執行下面的命令可以文件標記為可執行的文件

chmod +x /etc/rc.d/rc.local

5. 打開/etc/rc.d/rc.local文件,在最後面添加如下腳本
/home/centnet/centnet-service.sh

這樣,centnet-service.sh這個腳本在開機的時候就會被執行了,以後再這裡面寫啟動服務的命令就可以了

緩存-redis 三種模式搭建和運行原理

標簽: redis 緩存 主從 哨兵 集群

本文簡單的介紹redis三種模式在linux的安裝部署和數據存儲的總結,希望可以相互交流相互提升。

對於Centos7在安裝redis之前需要進行一些常用工具的安裝:

關閉防火牆

正式安裝redis

在redis進行maketest時候會出現一系列的異常,有如下解決方案:

用redis-server啟動一下redis,做一些實驗沒什麼意義。

要把redis作為一個系統的daemon進程去運行的,每次系統啟動,redis進程一起啟動,操作不走如下:

RDB和AOF是redis的一種數據持久化的機制。 持久化 是為了避免系統在發生災難性的系統故障時導致的系統數據丟失。我們一般會將數據存放在本地磁碟,還會定期的將數據上傳雲伺服器
RDB 是redis的snapshotting,通過redis.conf中的save配置進行設置,如 save 60 1000:

AOF 是以appendonly方式進行數據的儲存的,開啟AOF模式後,所有存進redis內存的數據都會進入os cache中,然後默認1秒執行一次fsync寫入追加到appendonly.aof文件中。一般我們配置redis.conf中的一下指令:

AOF和RDB模式我們一般在生產環境都會打開,一般而言,redis服務掛掉後進行重啟會優先家在aof中的文件。

當啟動一個slave node的時候,它會發送一個PSYNC命令給master node,如果這是slave node重新連接master node,那麼master node僅僅會復制給slave部分缺少的數據;否則如果是slave node第一次連接master node,那麼會觸發一次full resynchronization;
開始full resynchronization的時候,master會啟動一個後台線程,開始生成一份RDB快照文件,同時還會將從客戶端收到的所有寫命令緩存在內存中。RDB文件生成完畢之後,master會將這個RDB發送給slave,slave會先寫入本地磁碟,然後再從本地磁碟載入到內存中。然後master會將內存中緩存的寫命令發送給slave,slave也會同步這些數據。
slave node如果跟master node有網路故障,斷開了連接,會自動重連。master如果發現有多個slave node都來重新連接,僅僅會啟動一個rdb save操作,用一份數據服務所有slave node。

從redis 2.8開始,就支持主從復制的斷點續傳,如果主從復制過程中,網路連接斷掉了,那麼可以接著上次復制的地方,繼續復制下去,而不是從頭開始復制一份。

master node會在內存中常見一個backlog,master和slave都會保存一個replica offset還有一個master id,offset就是保存在backlog中的。如果master和slave網路連接斷掉了,slave會讓master從上次的replica offset開始繼續復制,但是如果沒有找到對應的offset,那麼就會執行一次resynchronization。

master在內存中直接創建rdb,然後發送給slave,不會在自己本地落地磁碟了,可以有如下配置:

slave不會過期key,只會等待master過期key。如果master過期了一個key,或者通過LRU淘汰了一個key,那麼會模擬一條del命令發送給slave。

在redis.conf配置文件中,上面的參數代表至少需要3個slaves節點與master節點進行連接,並且master和每個slave的數據同步延遲不能超過10秒。一旦上面的設定沒有匹配上,則master不在提供相應的服務。

sdown達成的條件很簡單,如果一個哨兵ping一個master,超過了 is-master-down-after-milliseconds 指定的毫秒數之後,就主觀認為master宕機
sdown到odown轉換的條件很簡單,如果一個哨兵在指定時間內,收到了 quorum 指定數量的其他哨兵也認為那個master是sdown了,那麼就認為是odown了,客觀認為master宕機

如果一個slave跟master斷開連接已經超過了down-after-milliseconds的10倍,外加master宕機的時長,那麼slave就被認為不適合選舉為master

(down-after-milliseconds * 10) + milliseconds_since_master_is_in_SDOWN_state

每次一個哨兵要做主備切換,首先需要quorum數量的哨兵認為odown,然後選舉出一個slave來做切換,這個slave還得得到majority哨兵的授權,才能正式執行切換;

(2)SENTINEL RESET *,在所有sentinal上執行,清理所有的master狀態
(3)SENTINEL MASTER mastername,在所有sentinal上執行,查看所有sentinal對數量是否達成了一致

4.3.2 slave的永久下線

讓master摘除某個已經下線的slave:SENTINEL RESET mastername,在所有的哨兵上面執行.

redis的集群模式為了解決系統的橫向擴展以及海量數據的存儲問題,如果你的數據量很大,那麼就可以用redis cluster。
redis cluster可以支撐N個redis master,一個master上面可以掛載多個slave,一般情況我門掛載一個到兩個slave,master在掛掉以後會主動切換到slave上面,或者當一個master上面的slave都掛掉後,集群會從其他master上面找到冗餘的slave掛載到這個master上面,達到了系統的高可用性。

2.1 redis cluster的重要配置

2.2 在三台機器上啟動6個redis實例

將上面的配置文件,在/etc/redis下放6個,分別為: 7001.conf,7002.conf,7003.conf,7004.conf,7005.conf,7006.conf

每個啟動腳本內,都修改對應的埠號

2.3 創建集群

解決辦法是 先安裝rvm,再把ruby版本提升至2.3.3

使用redis-trib.rb命令創建集群

--replicas: 表示每個master有幾個slave

redis-trib.rb check 192.168.31.187:7001 查看狀體

3.1 加入新master

以上相同配置完成後,設置啟動腳本進行啟動;然後用如下命令進行node節點添加:

3.2 reshard一些數據過去

3.3 添加node作為slave

3.4 刪除node

⑧ CentOS7設置Redis開機啟動

記下坑的流水賬

安裝都完成了,redis我安裝在單獨的redis用戶里;
所以安裝目錄就是/home/redis/redis-6.0.8/

配置文件的方式來做開機啟動;
/home/redis/redis-6.0.8/utils/redis_init_script 使用redis自己的啟動腳本,將該腳本cp到/etc/init.d/中,順便改名redisd,d結尾的表示自啟動服務(大概);
腳本裡面部分內容需要做修改:
EXEC= 是伺服器程序位置+程序名稱,位置改成自己的:
/home/redis/redis-6.0.8/src/redis-server
CLIEXEC= 是客頌飢戶端的,同樣有必要的話就修改/home/redis/redis-6.0.8/src/redis-cli
CONF=配置文件位置,的安裝目錄里redis.conf到這里指定的位置,順便改名字成敗櫻絕默認埠號,或者設置自己想要的目錄也行:/etc/redis/6379.conf。
配置文件內容要改,比如:
是否守護進程daemonize no改成yes
屏蔽 bind 127.0.0.1

這圖

chkconfig --list 查看自啟動服務
chkconfig --add redisd 把redis加入其中
chkconfig redisd on 開
reboot 重啟
ps -ef|grep redis看看成功沒察姿有

service redisd start 直接開起服務

service redisd stop 關閉redis
設置密碼會報錯(error) NOAUTH Authentication required
那麼網上有教:在啟動腳本里改一下加入密碼變數

那麼,就是不安全,自己練習機無所謂了

⑨ CENTOS7開機自啟動腳本

1、因為在centos7中 /etc/rc.d/rc.local 的許可權被降低了,所以需要賦予其可執行權

2、賦予腳本可執行許可權
假設 /usr/local/script/autostart.sh 是你的腳本路徑,給予執行許可權

3、打開 /etc/rc.d/rc.local 文件,在末尾增加如下內容

1、將腳本移動到 /etc/rc.d/init.d 目錄下

2、增加腳本的可執行許可權

3、添加腳本到開機自動啟動項目中

chkconfig啟動腳本規范 在腳本開頭加入下面內容:

說明:chkonfig後面是啟動級別和優先順序,description後面是服務描述。如上面腳本意思是,

服務必須在運行級2,3,4,5下被啟動或關閉,啟動的優先順序是90,停止的優先順序是10。

優先順序范圍是0-100,數字越大,優先順序越低。

Linux啟動優先順序

運行級別就是操作系統當前正在運行的功能級別。這個級別從0到6 ,具有不同的功能。

這些級別在/etc/inittab文件里指定。這個文件是init程序尋找的主要文件,最先運行的服務是那些放在/etc/rc.d 目錄下的文件。
不同的運行級定義如下:(可以參考Linux裡面的/etc/inittab)

⑩ Centos7.x Redis6.2.5 Cluster搭建

官方地址:

前提條件:

Redis Cluster 不使用一致性哈希,而是使用不同形式的分片 每個鍵在概念上都是我們所謂的 哈希槽的一部分 。
Redis Cluster 有 16384 個哈希槽,計冊清算哈希值是多少 給定密鑰的插槽,我們只需取密鑰的 CRC16 模 16384。
Redis 集群中的每個節點都負責哈希槽的一個子集, 例如,您可能有一個包含 3 個節點的集群,其中:
節點 A 包含從 0 到 5500 的哈希槽。
節點 B 包含從 5501 到 11000 的哈希槽。
節點 C 包含從 11001 到 16383 的哈希槽。

如果報錯 ERR This instance has cluster support disabled 的話,說明集群未開啟。

本例子是在一台伺服器上面做的實驗,只是創建了6個目錄,啟了6個redis-server而已。

創建一個 redis.conf每個目錄中的文件,從 7000 到 7005。 作為配置文件的模板,只需使用上面的小示例, 但一定要更換埠號 7000使用正確的埠號 根據目錄名。

通過 ps aux|grep redis 查看redis的啟動情況。

如果不想通過配置和執行來創建Redis集群 如上所述,手動單個實例,有一個更簡單的 系統(但您不會了解相同數量的操作細節)。

只需檢查 utils/create-clusterRedis 發行版中的目錄。 有一個腳本叫做 create-cluster裡面(與目錄同名 它包含在)中,它是一個簡單的 bash 腳本。 為了開始 一個有 3 個主節點和 3 個從節點的 6 節點集群只需輸入以下內容 命令:

回復 yes在第 2 步中,當 redis-cli實用程序要你接受 集群布局。

您現在可以與集群交互,第一個節點將從埠 30001 開始 默認情況下。 完成後,使用以下命令停止集群:

請閱讀 README在此目錄中以獲取有關如何操作的更多信息 運行腳本。

create-cluster.sh

集群信息

集群節點

我上面的例子我們可以看出,設置的key會被分配到不同的實例去。
現在很多的sdk都支持move,例如:phpredis。

我們先查看州指前下當前的集群情況。

目前 7000 , 7001 , 7002 是 master 角色, 7003 , 7004 , 7005 是 slave 角色。

然後我們將 7001 這個埠的redis服務的進程殺掉。

7004.log 日誌,發現 7001 主掛了,然後將自己升級為master。

查詢當前的集群狀態如下:

我們可以看出, 7004 升級了 master , 7001 是 fail 狀態。

啟動 7001 的redis服務。
7001.log 中可以發現,自己變成了 slave 。

此時我們再來看下集群情況:

目前 7000 , 7002 , 7004 是 master角色, 7001 , 7003 , 7005 是 slave角色,自動進行了故障切換。

如果配置了 requirepass 的話, masterauth 必須需要配置,不然 master 與 slave 不能自動切換。

修改配置文件 redis.conf 中的 cluster-enabled 參數的值為 yes 並把參數前#去除,重啟Redis伺服器。

在命令尾部追加 2>/dev/null 即可。

我們繼續在 cluster-test 目錄下,創建 7006 目錄,配置和之前的一樣,不同就是埠以及日誌路徑,然後啟動服務即可。

看下最新的集群情況

添加一個 7006 的從節點。

在 cluster-test 目錄下,創建 7007 目錄,配置和之前的一樣,不同就是埠以及日誌路徑,然後逗鋒啟動服務即可。

看下最新的集群情況

從上面集群情況可以看出了問題,新增加的 7006 , 7007 的雖然增加到了集群裡面,但是沒有分配slot。

分配後的集群情況

縮容前:

將 7006 的slot給了 7000 。

縮容後:

刪除了 7006 , 7007 後的集群情況

熱點內容
sql創建鏈接 發布:2025-07-08 00:08:38 瀏覽:398
ftp上傳中斷 發布:2025-07-08 00:08:37 瀏覽:641
linux雲計算課程 發布:2025-07-08 00:07:23 瀏覽:23
安卓網易雲怎麼發布歌曲 發布:2025-07-07 23:42:29 瀏覽:626
安卓內存讀取腳本 發布:2025-07-07 23:42:19 瀏覽:871
python27漢化 發布:2025-07-07 23:42:18 瀏覽:721
源碼鎖屏 發布:2025-07-07 23:26:52 瀏覽:943
手機版編程軟體 發布:2025-07-07 22:57:22 瀏覽:122
linux下執行sh腳本 發布:2025-07-07 22:49:00 瀏覽:127
雲盤怎麼存儲資料 發布:2025-07-07 22:49:00 瀏覽:915