linux關閉redis
❶ linux配置系列之redis哨兵配置
很精闢的一段話,"未曾清貧難做人,不經打擊永天真;成熟不過是善於隱藏,滄桑不過是無淚有傷。"
redis的主從配置比較容易,主從配置後,主主要進行寫的操作,從主要進行讀的操作,那麼如果主掛了,是不是就沒法進行寫了?所以redis中可以進行哨兵的配置,具有高可用性,即是在主掛了之後,哨兵檢測到後,會在從中進行投票,投票數多的晉升為主。這個配置可折騰我了,按照找的資料進行了哨兵的配置,可是當我把主服務停掉之後,從還在一致嘗試連接主
啟動哨兵日誌
停掉主後從的日誌
停掉後哨兵中,日誌情況
就是這個問題我一直嘗試找到解決辦法,看了其中" sentinel-16379.conf"中的配置差不多,跟網上的一樣。但是就是不行。
sentinel-16379.conf配置如下
這是我把這個配置文件的注釋和空格都去掉後的結果
實際中我修改了如下幾個配置
其他的可能都是自動生成的。當然你也可以自己指定日誌位置。
auth-pass是因為我的主中做了配置密碼了。
官網的配置說明: https://redis.io/topics/sentinel
所以那為什麼我的哨兵沒有起作用了,最後我找了公司運維一起看,問題的原因就是我的從中的bind的這個屬性沒有做配置。
加上了這個,all done!!!
如果你直接使用
報錯如下
因為bind只配置了10.10.39.105所以連接如下
哨兵啟動結果
幹掉主進程
哨兵的日誌列印狀況
從伺服器的日誌情況:
連接39.105設置數據如下
哨兵監控如下:
測試從是否可以設置數據
在主上設置數據
在從上get數據
三:問題說明
上面也說了,第一次沒有成功的原因是因為bind問題
我嘗試翻譯下如下
❷ Linux下安裝配置redis詳細教程,並配置哨兵模式
redis版本為redis-3.2.12,使用工具將安裝包上傳到data目錄。
在data目錄下創建文件夾redis,將redis安裝在此目錄。
第一步:解壓。
第二步:安裝,PREFIX=/data/redis用來設置安裝目錄。
到此,redis已經安裝完成,剩下就是配置和啟動服務。
進入redis目錄, 創建配置文件conf、日誌logs、資料庫mp、進程號pid四個目錄,用來存放對應的文件,這四個目錄也可以存放在其他文件夾,只要與配置文件中的配置一致即可,否則在啟動服務時會報錯。 其中bin目錄就是redis安裝成功後的一些命令文件。
redis服務配置一主二從,哨兵模式。注意:如果在實際開發中用不到哨兵模式,redis服務配置一主一從即可。
主Redis配置:redis_6379.conf
從Redis配置,redis_6380.conf和redis_6381.conf,與主Redis配置基本上一樣,不一樣的地方在於 埠、資料庫、日誌、pid文件名稱 ,都以6380或6381為標志, 最重要的地方是建立主從關系和同步驗證。
注意: 對只使用redis服務 ,只需要在主Redis裡面配置requirepass,在從Redis裡面配置masterauth,密碼保持一致,密碼盡可能復雜,以免被攻擊破解。
注意: 對只使用redis服務 ,如果從Redis也有必要加入訪問驗證,也可以設置requirepass,而且密碼可以與主Redis密碼不同。
將配置文件放置到/data/redis/conf目錄下,然後就可以啟動服務了。
啟動服務要按照主從順序依次啟動。
查看服務啟動情況:
也可以通過查看日誌文件來確認服務是否正常啟動。
通過客戶端登錄Redis驗證數據同步情況:
主Redis登錄驗證,設置數據:
從Redis登錄,獲取數據:從Redis並沒有設置密碼,所以無需驗證就可以操作。
配置哨兵模式:
Redis Sentinel集群通常由3到5個節點組成,如果個別節點掛了,集群還可以正常運作。Sentinel負責監控Redis集群的 健康 情況。
如果主Redis掛掉,Sentinel集群會通過投票選擇一個新的主Redis。 當原來的主Redis恢復時,它會被當做新的主Redis的從Redis重新加入Redis集群。
設置連接master和slave的密碼,需要注意的是sentinel不能分別為master和slave設置不同的密碼,因此master和slave的密碼必須設置相同。也就是說主Redis和從Redis都必須設置requirepass和masterauth,而且密碼必須相同。
sentinel.conf配置信息:
將該配置文件放置到/data/redis/conf目錄下,啟動sentinel服務:
驗證sentinel是否起作用,可以手工shutdown掉主Redis。
這時從Redis想要訪問主Redis同步數據就會提示錯誤信息:
sentinel在監測到主Redis宕機之後,通過選舉,將一個從Redis選定為新的主Redis。通過查看sentinel日誌可以發現,選定6380為新的主Redis,同時將另外兩個Redis作為從Redis。
注意:選定6380為主Redis後,所有的配置文件都會被修改,主要是重新建立主從關系。
6379會新增:slaveof 127.0.0.1 6380
6380會刪掉:slaveof 127.0.0.1 6379
6381會修改:slaveof 127.0.0.1 6380
由於6379服務已經關掉,所以雖然sentinel將6379作為6380的從服務,但是沒有真正的建立。
重新啟動6379服務,這時sentinel會重建建立一次主從關系:
❸ 怎麼在Linux下安裝配置Redis伺服器
1、安裝編譯工具
yum install wget make gcc gcc-c++ zlib-devel openssl openssl-devel pcre-devel kernel keyutils patch perl
2、安裝tcl組件包(安裝Redis需要tcl支持)
下載: tcl8.6.1-src.tar.gz
上傳tcl8.6.1-src.tar.gz到/usr/local/src目錄
cd /usr/local/src #進入軟體包存放目錄
tar zxvf tcl8.6.1-src.tar.gz #解壓
cd tcl8.6.1 #進入安裝目錄
cd unix
./configure --prefix=/usr --without-tzdata --mandir=/usr/share/man $([ $(uname -m) = x86_64 ] && echo --enable-64bit) #配置
make #編譯
sed -e "s@^(TCL_SRC_DIR=').*@1/usr/include'@" -e "/TCL_B/s@='(-L)?.*unix@='1/usr/lib@" -i tclConfig.sh
make install #安裝
make install-private-headers
ln -v -sf tclsh8.6 /usr/bin/tclsh
chmod -v 755 /usr/lib/libtcl8.6.so
3、安裝Redis
下載:http://download.redis.io/redis-stable.tar.gz
上傳redis-stable到/usr/local/src目錄
cd /usr/local/src
tar -zxvf redis-stable.tar.gz #解壓
mv redis-stable /usr/local/redis #移動文件到安裝目錄
cd /usr/local/redis #進入安裝目錄
make #編譯
make install #安裝
cd /usr/local/bin #查看是否有下面文件,如果沒有,拷貝下面文件到/usr/local/bin目錄
cd /usr/local/redis
mkdir -p /usr/local/bin
cp -p redis-server /usr/local/bin
cp -p redis-benchmark /usr/local/bin
cp -p redis-cli /usr/local/bin
cp -p redis-check-mp /usr/local/bin
cp -p redis-check-aof /usr/local/bin
ln -s /usr/local/redis/redis.conf /etc/redis.conf #添加配置文件軟連接
vi /etc/redis.conf #編輯
daemonize yes #設置後台啟動redis
:wq! #保存退出
redis-server /etc/redis.conf #啟動redis服務
redis-cli shutdown #關閉redis
vi /etc/sysctl.conf #編輯,在最後一行添加下面代碼
vm.overcommit_memory = 1
:wq! #保存退出
sysctl -p #使設置立即生效
4、設置redis開機啟動
vi /etc/init.d/redis #編輯,添加以下代碼
#!/bin/sh
# chkconfig: 2345 90 10
# description: Redis is a persistent key-value database
# redis Startup script for redis processes
# processname: redis
redis_path="/usr/local/bin/redis-server"
redis_conf="/etc/redis.conf"
redis_pid="/var/run/redis.pid"
# Source function library.
. /etc/rc.d/init.d/functions
[ -x $redis_path ] || exit 0
RETVAL=0
prog="redis"
# Start daemons.
start() {
if [ -e $redis_pid -a ! -z $redis_pid ];then
echo $prog" already running...."
exit 1
fi
echo -n $"Starting $prog "
# Single instance for all caches
$redis_path $redis_conf
RETVAL=$?
[ $RETVAL -eq 0 ] && {
touch /var/lock/subsys/$prog
success $"$prog"
}
echo
return $RETVAL
}
# Stop daemons.
stop() {
echo -n $"Stopping $prog "
killproc -d 10 $redis_path
echo
[ $RETVAL = 0 ] && rm -f $redis_pid /var/lock/subsys/$prog
RETVAL=$?
return $RETVAL
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status $prog
RETVAL=$?
;;
restart)
stop
start
;;
condrestart)
if test "x`pidof redis`" != x; then
stop
start
fi
;;
*)
echo $"Usage: $0 {start|stop|status|restart|condrestart}"
exit 1
esac
exit $RETVAL
:wq! #保存退出
chmod 755 /etc/init.d/redis #添加腳本執行許可權
chkconfig --add redis #添加開啟啟動
chkconfig --level 2345 redis on #設置啟動級別
chkconfig --list redis #查看啟動級別
service redis restart #重新啟動redis
5、設置redis配置文件參數
mkdir -p /usr/local/redis/var #創建redis資料庫存放目錄
vi /etc/redis.conf #編輯
daemonize yes #以後台daemon方式運行redis
pidfile "/var/run/redis.pid" #redis以後台運行,默認pid文件路徑/var/run/redis.pid
port 6379 #默認埠
bind 127.0.0.1 #默認綁定本機所有ip地址,為了安全,可以只監聽內網ip
timeout 300 #客戶端超時設置,單位為秒
loglevel verbose #設置日誌級別,支持四個級別:debug、notice、verbose、warning
logfile stdout #日誌記錄方式,默認為標准輸出,logs不寫文件,輸出到空設備/deb/null
logfile "/usr/local/redis/var/redis.log" #可以指定日誌文件路徑
databases 16 #開啟資料庫的數量
save 900 1
save 300 10
save 60 10000
創建本地資料庫快照,格式:save * *
900秒內,執行1次寫操作
300秒內,執行10次寫操作
60秒內,執行10000次寫操作
rdbcompression yes #啟用資料庫lzf壓縮,也可以設置為no
dbfilename mp.rdb #本地快照資料庫名稱
dir "/usr/local/redis/var/" #本地快照資料庫存放目錄
requirepass 123456 #設置redis資料庫連接密碼
maxclients 10000 #同一時間最大客戶端連接數,0為無限制
maxmemory 1024MB #設定redis最大使用內存,值要小於物理內存,必須設置
appendonly yes #開啟日誌記錄,相當於MySQL的binlog
appendfilename "appendonly.aof" #日誌文件名,注意:不是目錄路徑
appendfsync everysec #每秒執行同步,還有兩個參數always、no一般設置為everysec,相當於MySQL事物日誌的寫方式
:wq! #保存退出
service redis restart #重啟
6、測試redis資料庫
redis-cli -a 123456 #連接redis資料庫,注意:-a後面跟redis資料庫密碼
set name 111cn.net #寫數據
get name #讀取數據
exit #退出redis資料庫控制台
redis-benchmark -h 127.0.0.1 -p 6379 -c 1000 -n 100000 #1000個並發連接,100000個請求,測試127.0.0.1埠為6379的redis伺服器性能
❹ linux redis 一般會安裝在哪兒
這個主要看解壓的路徑和你自己安裝的位置了。我是直接把編譯生成的文件,直接復制到usr/redis下的。具體操作如下,你可以自己設置安裝位置。
$ tar xzf redis-2.8.3.tar.gz
$ cd redis-2.8.3
$ make
編譯完成後,在Src目錄下,有四個可執行文件redis-server、redis-benchmark、redis-cli和redis.conf。然後拷貝到一個目錄下。
mkdir /usr/redis
cp redis-server /usr/redis
cp redis-benchmark /usr/redis
cp redis-cli /usr/redis
cp redis.conf /usr/redis
cd /usr/redis
❺ Redis停止的命令
Redis停止的命令
我的redis是部署在linux機器上的,而且是redis集群。下面的命令都是在linux上使用的。
執行後,輸出的記錄中,含有「redis-server」的行,全是運行的redis服務節點。
「redis-server」所在行的最後,會有「IP:埠號」,執行第3步停止redis集群時要使用。
第一行記錄,都要執行一次停止命令。
2. 進入redis-cli所在目錄
註:如果不知道redis-cli所在目錄,請使用如下命令查找(網上很多的人回答,redis-cli在redis/bin目錄,我的機器卻不是)
3. 停止redis服務,使用的IP、埠號為第1步查看出的IP、埠號。
第一步中的第一行記錄,都要執行一次停止命令。
註:不加「-h IP」參數時,會提示如下內容,停止是失敗的
Could not connect to Redis at 127.0.0.1:XXXX: Connection refused
4. 查看redis服務是否停止成功
執行後,輸出的記錄中,不存在含有「redis-server」的行,則redis服務停止成功。
原文:
YouLuoJv使用知識的小磚壘起質量、效率燈塔,希望可以照亮更多人的路
❻ linux 怎麼關閉redis服務
直接使用kill命令進行關閉,操作如下:
kill -9
以上請使用實際的redis的京城id進行替換。
❼ linux下怎麼進入redis操作
1.先進入redis目錄,將redis安裝到指定目錄
使用make PREFIX=/usr/local/redis install 命令
5.重新啟動一下redis服務
./bin/redis-server ./redis.conf
然後就可以使用redis進行操作了
❽ linux上怎麼配置redis的aof持久化
Redis 持久化和配置文件
Reids 持久化
Redis提供了兩種持久化的方式,分別是RDB(Redis DataBase)和AOF(Append Only File)。
RDB,簡而言之,就是在不同的時間點,將redis存儲的數據生成快照並存儲到磁碟等介質上。
AOF,則是換了一個角度來實現持久化,那就是將redis執行過的所有寫指令記錄下來,在下次redis重新啟動時,只要把這些寫指令從前到後再重復執行一遍,就可以實現數據恢復了。
其實RDB和AOF兩種方式也可以同時使用,在這種情況下,如果redis重啟的話,則會優先採用AOF方式來進行數據恢復,這是因為AOF方式的數據恢復完整度更高。
如果你沒有數據持久化的需求,也完全可以關閉RDB和AOF方式,這樣的話,redis將變成一個純內存資料庫,就像memcache一樣。
redis配置文件
daemonize no # 默認情況下,redis並不是以daemon形式來運行的。通過daemonize配置項可以控制redis的運行形式
pidfile /path/to/redis.pid #當以daemon形式運行時,redis會生成一個pid文件,默認會生成在/var/run/redis.pid
bind 192.168.1.2 10.8.4.2 # 指定綁定的ip,可以有多個
port 6379 #指定監聽埠
unixsocket /tmp/redis.sock #也可以監聽socket
unixsocketperm 755 #當監聽socket時可以指定許可權為755
timeout 0 #當一個redis-client一直沒有請求發向server端,那麼server端有權主動關閉這個連接,可以通過timeout來設置「空閑超時時限」,0表示永不關閉。
Redis通用配置
tcp-keepalive0 #TCP連接保活策略,可以通過tcp-keepalive配置項來進行設置,單位為秒,假如設置為60秒,則server端會每60秒向連接空閑的客戶端發起一次ACK請求,以檢查客戶端是否已經掛掉,對於無響應的客戶端則會關閉其連接。如果設置為0,則不會進行保活檢測。
loglevelnotice #日誌級別,有四種debug, verbose, notice, warning
logfile「」 #定義日誌路徑,
syslog-identredis #如果希望日誌列印到syslog中,通過syslog-enabled來控制。另外,syslog-ident還可以讓你指定syslog里的日誌標志。
syslog-facility local0 #指定syslog的設備,可以是USER或者local0-local7
databases 16 #設置資料庫的總數量
Redis快照配置(rdb持久化)
save 900 1 #表示每15分鍾且至少有1個key改變,就觸發一次持久化
save 300 10 #表示每5分鍾且至少有10個key改變,就觸發一次持久化
save 60 10000 #表示每60秒至少有10000個key改變,就觸發一次持久
save 「」 #這樣可以禁用rdb持久化
stop-writes-on-bgsave-error yes #rdb持久化寫入磁碟避免不了會出現失敗的情況,默認一旦出現失敗,redis會馬上停止寫操作。如果你覺得無所謂,那就可以使用該選項關閉這個功能。
rdbcompressionyes #是否要壓縮
rdbchecksumyes #是否進行數據校驗
dbfilenamemp.rdb #定義快照文件的名字
dir ./ #定義快照文件儲存路勁
Redis安全相關配置
requirepassaminglinux
#設置redis-server的密碼
rename-command CONFIG aminglinux.config
#將CONFIG命令更名為aminglinux.config,這樣可以避免誤操作,但如果使用了AOF持久化,建議不要啟用該功能
rename-command CONFIG 「」
#也可以後面定義為空,這樣就禁掉了該CONFIG命令
Redis限制相關配置
maxclients10000 #限制最大客戶端連接數
maxmemory<bytes> #設定最大內存使用數,單位是byte
maxmemory-policy volatile-lru#指定內存移除規則
maxmemory-samples 3 #LRU演算法和最小TTL演算法都並非是精確的演算法,而是估算值。所以你可以設置樣本的大小。假如redis默認會檢查三個key並選擇其中LRU的那個,那麼你可以改變這個key樣本的數量。
Redis AOF持久化相關配置
appendonlyno #如果是no,則開啟aof持久化
appendfilename「appendonly.aof」 #指定aof文件名字
appendfsynceverysec#指定fsync()調用模式,有三種no(不調用fsync),always(每次寫都會調用fsync),everysec(每秒鍾調用一次fsync)。第一種最快,第二種數據最安全,但性能會差一些,第三種為這種方案,默認為第三種。
no-appendfsync-on-rewrite no #使用no,可以避免當寫入量非常大時的磁碟io阻塞
auto-aof-rewrite-percentage 10 #規定什麼情況下會觸發aof重寫。該值為一個比例,10表示當aof文件增幅達到10%時則會觸發重寫機制。
auto-aof-rewrite-min-size 64mb #重寫會有一個條件,就是不能低於64Mb
Redis 慢日誌相關配置
針對慢日誌,你可以設置兩個參數,一個是執行時長,單位是微秒,另一個是慢日誌的長度。當一個新的命令被寫入日誌時,最老的一條會從命令日誌隊列中被移除。
❾ 如何在linux下安裝redis3.2
方法/步驟
1
首先在官網下載redis-3.0.3.tar.gz
2
在某一個要安裝redis的目錄下輸入命令
tar xzf redis-3.0.3.tar.gz
實現解壓縮
3
進入解壓縮後的redis目錄
4
輸入make命令,在編譯的過程中有可能會碰到錯誤
5
如果報錯誤make[3]: gcc: Command not found
就調用yum命令安裝gcc 命令如下yum install gcc
6
如果報如下錯誤
zmalloc.h:50:31: error: jemalloc/jemalloc.h: No such file or directory
zmalloc.h:55:2: error: #error "Newer version of jemalloc required"
make[1]: *** [adlist.o] Error 1
make[1]: Leaving directory `/root/redis-3.0.3/src'
make: *** [all] Error 2
那麼輸入
make MALLOC=libc
重新編譯
7
安裝成功以後,運行redis-server & 使用redis資料庫在後台運行,如果沒有報錯,那就證明redis資料庫安裝成功
8
這時輸入命令redis-cli對資料庫發起鏈接,就可以對redis資料庫做簡單的測試了
9
關閉redis服務的方法,可以採用ps|redis的方式找到pid,然後通過kill -9 pid的方式關閉redis服務
❿ linux安裝好redis,怎麼啟動
1、首先為了方便管理,將Redis文件中的conf配置文件和常用命令移動到統一文件中。
(1)創建bin和redis.conf文件,復制代碼「mkdir -p/usr/local/redis/bin;mkdir -p/usr/local/redis/ect」;
(2)執行Linux文件移動命令,復制代碼「mv /lamp/redis-3.0.7/redis.conf /usr/local/redis/etc;cd /lamp/redis-3.0.7/src;mv mkreleasdhdr.sh redis-benchmark redis-check-aof redis-check-mp redis-cli redis-server /usr/local/redis/bin」;
2、執行Redis-server 命令,啟動Redis 服務。