『壹』 linux啟動app命令
linux啟動app命令:做 Linux 嵌入式開發,經常會遇到要設置自己的應用程序在系統開機的時候自動啟動,並且一般情況我們不想安裝一些額外的軟體去實現此種需求。那麼直接根據當前系統自帶的默認的一些工具實現用戶軟體的開機自啟動。
本次測驗的系統環境為 Ubuntu 16.04 LTS,測試內容均得到正確的驗證,如果其他環境出現不一致的現象,請查閱相關的差異。
比如先要實現下面的應用程序的開機自啟動(實現的代碼最下面給出,有需要的可以查看):
1. 應用程序的名稱:app.bin
2. 應用程序的保存路徑:/home/ubuntu/app/ 下
3. 應用程序的工作路徑:/home/ubuntu/app/ 下
『貳』 redis啟動,停止
1.直接啟動
進入redis根目錄,執行命令:
#加上『&』號使redis以後台程序方式運行
./redis-server &
2.通過指定配置文件啟動
可以為redis服務啟動指定配置文件,例如配余枝置為/etc/redis/6379.conf
進入redis根目錄,輸臘兆入命令:
./redis-server /etc/redis/6379.conf
#如果更改了埠,使用`redis-cli`客戶輪毀租端連接時,也需要指定埠,例如:
redis-cli -p 6380
後台方式啟動
修改redis.conf,把daemonize no修改成daemonize yes
停止:redis-cli shutdown
查找進程號
ps -ef | grep redis
殺進程
kill -6 pid
redis快照問題錯誤信息如下:
MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk. Commands that may modify the data set are disabled. Please check Redis logs for details about the error.
排查與解決步驟:
進入redis使用info命令查看,會發現最後一次快照失敗的信息
rdb_last_bgsave_status:err
處理方法:
1.進入redis臨時關閉配置(如果需要,要再redis.conf上寫上該配置,不然下次重啟redis配置會失效)
config set stop-writes-on-bgsave-error no
『叄』 怎麼在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伺服器性能
『肆』 redis,主從模式下,如何重啟能不間斷的提供服務
首先說下部署方案:在兩台伺服器上分別部署一套Redis,兩台伺服器共用一個浮動IP,兩套Redis實例則做Master-Slave,始終由浮動IP指向伺服器上的Redis實例做Master。使用HA軟體來檢測Redis實例的運行情況。如果從機出現異常,則重啟從機Redis實例;當主機出現異常,則進行如下操作:早困1)Slave主動斷開與Master的連接(通過HA軟體調用預置腳本實現),然後HA軟體將浮動IP指向備機,進行主備機切換;2)切換後,HA軟體嘗試重啟現備機的Redis實例,重啟成功後將其陸毀念配置為現主機Redis實例的Slave,然後開始主從復制。斷開與Master連接與重啟實例的命令比較簡單,就不在此貼出了。這個方案可能余慎會對業務造成短時影響(要看HA軟體的效率),但是對客戶端來講主從切換是不感知的。~如果你認可我的回答,請及時點擊【採納為滿意回答】按鈕~~手機提問的朋友在客戶端右上角評價點【滿意】即可。
『伍』 linux下怎麼進入redis操作
1.先進入redis目錄,將redis安裝到指定目錄
使用make PREFIX=/usr/local/redis install 命令
5.重新啟動一下redis服務
./bin/redis-server ./redis.conf
然後就可以使用redis進行操作了
『陸』 linux下退出redis shutdown後怎麼開啟
1.在linux系統下可以通過初始化腳本啟動Redis,使得Redis能隨系統自動運行
①:在Redis源代碼目錄中的文件夾中有個redis_init_script的初始化腳本,復制到/etc/init.d目錄中,
文件改名為redis_埠號,然後修改第6行的 REDISPORT 為同樣的埠號
②:建立需要的文件夾/etc/redis存放redis的配置文件/var/redis/埠號 存放Redis的持久化文件
③:修改配置文件將配置文件模板復制到/etc/redis目錄中以埠號命名(如 6379.conf) 然後對部分參數編輯
daemonize yes 使Redis以守護進程模式運行
pidfile /var/run/redis_埠號.pid 設置Redis的pid文件位置
port 埠號 設置Redis監聽的埠號
dir /var/redis/埠號 設置持久化文件存放位置
④:使用 /etc/init.d/redis_埠號 start 啟動 Redis
⑤:設置Redis隨系統自動啟動 sudo update-rc.d redis_埠號 defaults
================================================================
2. 停止Redis的注意事項
停止Redis的時候有可能將內存中的數據同步到硬碟中,強制終極進程可以會導致數據丟失,
正確停止Redis的方法是 向Redis發送 shutdown命令當Redis收到命令後沒回斷開所有客戶端連接,
然後配置執行持久化,最後退出(使用 kill Redis 進程的PID 效果與shutdown相同)
『柒』 linux 的環境搭建(二)--redis單機環境、生產環境、集群環境的搭建
一、目錄
1、工具
2、安裝tcl
3、安裝單機版redis
4、把redis設置為daemon進程,每次系統啟動,redis進程一起啟動
5、安裝redis cluster
二、工具
2.1、tcl8.6.1-src.tar.gz
2.2、ruby-2.3.1.tar.gz
2.3、redis-4.1.1.gem
2.4、redis-3.2.8.tar.gz
2.5、openssl-1.0.2r.tar.gz
三、安裝tcl(安裝redis必須先要安裝tcl)
3.1、把tcl8.6.1-src.tar.gz通過WinSCP上傳到虛擬機中的/usr/local目錄下
四、安裝單機版redis
4.1、把redis-3.2.8.tar.gz通過WinSCP上傳到虛擬機中的/usr/local目錄培乎下
4.2、依次運行如下命令:
tar -zxvf redis-3.2.8.tar.gz 解壓文件
cd redis-3.2.8
make && make test && make install
五、把redis設置為daemon進程,每次系統啟動,redis進程一起啟動
5.1、將redis的utils目錄下的redis_init_script腳本拷貝到linux的/etc/init.d目錄中,將redis_init_script重命名為redis_6379,6379是我們希望這個redis實例監聽的埠號
5.2、修改redis_6379腳本的第6行的REDISPORT,設置為相同的埠號(默認就是6379)
protected-mode no 取消保護模式,保護模式只能127.0.0.1訪問
daemonize yes 讓redis以daemon進程運行
pidfile /var/run/redis_6379.pid 設置redis的pid文件位置
bind 192.168.3.110
port 6379 設置redis的監聽埠號老中耐
dir /var/redis/6379 設置持久化文件的存儲位置
logfile /var/log/redis/6379.log 設置日誌文件位置
5.6、啟動redis,依次執行:
cd /etc/init.d,
chmod 777 redis_6379,賦讀寫執行的許可權(chmod -R 777 * 是遞歸把該目錄下的所有文件和其子文件全部賦許可權)
./redis_6379 start 啟動
5.7、確認redis進程是否啟動,ps -ef | grep redis
5.8、讓redis跟隨系統啟動自動啟動
5.9、重啟系統,不手動啟動redis,直接連接redis,可以連接上,表示配置成功
此時一個單機版的redis的生產環境已經搭建好了,每次伺服器重啟,redis都會自動的啟動
六、安裝redis cluster
(redis cluster集群,要求至少3個master,去組成一個高可用,健壯的分布式的集群,每個master都建議侍春至少給一個slave,3個master,3個slave)
6.1、前提,我在其它機器上啟動了六個redis(安裝步驟都如下)
2.2、創建三個目錄:
mkdir -p /etc/redis-cluster 存放集群配置信息,自動生成配置
mkdir -p /var/log/redis redis日誌
mkdir -p /var/redis/7001 存放redis的rdb文件和aof文件
6.3、將redis的utils目錄下的redis_init_script腳本拷貝到linux的/etc/init.d目錄中,將redis_init_script重命名為redis_7001,7001是我們希望這個redis實例監聽的埠號,並修改redis_7001配置文件中的REDISPORT=7001
6.4、修改/etc/redis/7001.conf中的部分配置為生產環境
6.5、完成了一個redis環境的配置,依次再配置其餘五個,分別為7002、7003、7004、7005、7006,每個啟動腳本內,都修改對應的埠號
6.6、啟動6個redis實例
6.7、創建集群(需要安裝ruby、rubygems)
上述命令在部分機器上是可以直接運行完成,成功安裝的,但在部分機器上運行第三條命令時會提示ruby版本太低、openssl找不到的問題,下面依次解決這兩個問題:
6.8、再次運行gem install redis命令,報出兩個錯誤
6.9、再次運行gem install redis命令,報出一個錯誤
6.10、再次運行gem install redis命令,報出一個錯誤
6.11、再次運行gem install redis命令
[root@ceshi01 local]# gem install redis
Successfully installed redis-4.1.1
Parsing documentation for redis-4.1.1
Done installing documentation for redis after 1 seconds
WARNING: Unable to pull data from ' https://rubygems.org/' : SSL_connect returned=1 errno=0 state=error: certificate verify failed ( https://api.rubygems.org/specs.4.8.gz )
1 gem installed
運行成功
此時Redis安裝好,此三個工具也安裝好了,這時我們來做一個Redis集群測試,在一台伺服器中創建了6個Redis實例,開啟6個Redis服務
redis-trib.rb create --replicas 1 192.168.3.104:7001 192.168.3.104:7002 192.168.3.105:7003 192.168.3.105:7004 192.168.3.106:7005 192.168.3.106:7006
[root@eshop-cache02 init.d]# redis-trib.rb create --replicas 1 192.168.3.104:7001 192.168.3.104:7002 192.168.3.105:7003 192.168.3.105:7004 192.168.3.106:7005 192.168.3.106:7006
此時一個redis集群環境就已經搭建好了,可以通過redis-trib.rb check 192.168.3.105:7003命令查看集群幾點的信息
[root@eshop-cache02 init.d]# redis-trib.rb check 192.168.3.105:7004
redis cluster的優點:讀寫分離+高可用+多master
讀寫分離:每個master都有一個slave
高可用:master宕機,slave自動被切換過去
多master:橫向擴容支持更大數據量
『捌』 linux redis集群怎麼啟動
redis.conf 配置文件說明
daemonize no --是否把redis-server啟動在後台,默認是「否」。若改成yes
pidfile /var/run/redis.pid --當Redis以守護進程方式運行時,Redis默認會把pid寫入/var/run/redis.pid文件,可以通過pidfile指定
prot 6379 --指定Redis監聽埠,默認埠為6379
bind 10.252.1.14 ---綁定的主機地址
timeout 0 ---當 客戶端閑置多長時間後關閉連接,如果指定為0,表示關閉該功能
loglevel notice ---指定日誌記錄級別,Redis總共支持四個級別:debug、verbose、notice、warning,默認為verbose
logfile /mnt/redis/log/redis.log --日誌記錄方式,默認為標准輸出,如果配置Redis為守護進程方式運行,而這里又配置為日誌記錄方式為標准輸出,則日誌將會發送給/dev/null
databases 16 設置資料庫的數量,默認資料庫為0,可以使用SELECT <dbid>命令在連接上指定資料庫id
save 900 1 指定在多長時間內,有多少次更新操作,就將數據同步到數據文件,可以多個條件配合
『玖』 linux安裝好redis,怎麼啟動
1、首先為了方便管理,將Redis文件中的conf配置文件和常用命令移動到統一文件中。
()創建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 服務。
『拾』 linux redis的啟動---後台啟動
1.啟動redis服務: /bin/redis-server
2.找到redis.conf里邊的 daemonize 把no 改為yes.
3.啟動
redis-server redis.conf(這個是針對兩個文件放在同個目錄下的)
如果不同目錄的話使用絕對定位:
redis-server /xxx/xxx/xxx/redis.conf