環境介紹
Ubantu 16.04
Redis5.0.3
下載地址(安裝路徑:/usr/local/redis):
http://download.redis.io/releases/redis-5.0.3.tar.gz
一、下載安裝
1.1.創建目錄
mkdir /usr/local/redis
1.2.進入redis目錄
cd /usr/local/redis
1.3.下載
wget http://download.redis.io/releases/redis-5.0.3.tar.gz
1.4.解壓
tar -xvf **redis-5.0.3.tar.gz**
1.5.文件夾重命名
mv -f redis-5.0.3 redis-single
1.6.進入redis-single目錄
cd /redis-single
1.7.編譯
make
make install
make test
This :輸出下面代碼則無報錯安裝成功**
All tests passed without errors
還有要注意的一點是記得安裝gcc和gcc-c++,還要注意gcc的版本,用gcc -v來查看當前安裝的gcc版本,版本過低(一般需要4.0以上)的話編譯redis3.0以上的是會出錯的。
apt-get install gcc
apt-get install gcc-c++
有可能還要安裝tcl(如果make test出現You need tcl 8.5 or newer in order to run the Redis test的話)
apt-getinstall tcl
安裝需要root權限 命令前加上sudo即可(當前root用戶則不需要)
redis編譯報致命錯誤:jemalloc/jemalloc.h沒有那個文件或目錄
分配器allocator, 如果有MALLOC 這個 環境變量, 會有用這個環境變量的 去建立Redis。
而且libc 並不是默認的 分配器, 默認的是 jemalloc, 因爲 jemalloc 被證明 有更少的 fragmentation problems 比libc。
但是如果你又沒有jemalloc 而只有 libc 當然 make 出錯。 所以加這麼一個參數,運行如下命令:
make MALLOC=libc
1.8.啓動服務
src/redis-server
1.9.運行客戶端
src/redis-cli
1.10測試
set sex 1
get sex
"1"
二、添加redis到服務設爲開機啓動
2.1.修改redis配置
vim redis.conf
#註釋掉開啓遠程訪問
#bind 127.0.0.1
#關閉保護模式不然遠程還是連接不了
protected-mode no
#設爲後臺運行
deamonize yes
#添加redis密碼
requirepass 1234
#修改爲你的安裝目錄 redis_端口號 端口改爲該redis服務端口
pidfile /usr/local/redis/redis-single/redis_6379.pid
#redis日誌存放位置
logfile /usr/local/redis/redis-single/redis_log.log
#redis位置
dir /usr/local/redis/redis-single
修改以上保存即可
2.2.開放redis端口
#開放6379端口
ufw allow 6379
#關閉防火牆
ufw disable
#打開防火牆
ufw enable
2.3.添加redis到服務
複製到redis_init_script 到init.d起個名字
cp utils/redis_init_script /etc/init.d/redis-single
編輯
vim /etc/init.d/redis-single
Tips:
注意頭的修改
#! /bin/sh
### BEGIN INIT INFO
# Provides: redis-single
# Required-Start: $syslog $remote_fs
# Required-Stop: $syslog $remote_fs
# Should-Start: $local_fs
# Should-Stop: $local_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: redis-single - Persistent key-value db
# Description: redis-single - Persistent key-value db
### END INIT INFO
原始文件內容:
#!/bin/sh
#
# Simple Redis init.d script conceived to work on Linux systems
# as it does use of the /proc filesystem.
### BEGIN INIT INFO
# Provides: redis_6379
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Redis data structure server
# Description: Redis data structure server. See https://redis.io
### END INIT INFO
REDISPORT=6379
EXEC=/usr/local/bin/redis-server
CLIEXEC=/usr/local/bin/redis-cli
PIDFILE=/var/run/redis_${REDISPORT}.pid
CONF="/etc/redis/${REDISPORT}.conf"
case "$1" in
start)
if [ -f $PIDFILE ]
then
echo "$PIDFILE exists, process is already running or crashed"
else
echo "Starting Redis server..."
$EXEC $CONF
fi
;;
stop)
if [ ! -f $PIDFILE ]
then
echo "$PIDFILE does not exist, process is not running"
else
PID=$(cat $PIDFILE)
echo "Stopping ..."
$CLIEXEC -p $REDISPORT shutdown
while [ -x /proc/${PID} ]
do
echo "Waiting for Redis to shutdown ..."
sleep 1
done
echo "Redis stopped"
fi
;;
*)
echo "Please use start or stop as first argument"
;;
esac
修改後內容
#! /bin/sh
### BEGIN INIT INFO
# Provides: redis-single
# Required-Start: $syslog $remote_fs
# Required-Stop: $syslog $remote_fs
# Should-Start: $local_fs
# Should-Stop: $local_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: redis-single - Persistent key-value db
# Description: redis-single - Persistent key-value db
### END INIT INFO
#redis端口
REDISPORT=6379
#redis server目錄
EXEC=/usr/local/redis/redis-single/src/redis-server
#redis cli
CLIEXEC=/usr/local/redis/redis-single/src/redis-cli
#這和redis.conf設置的一樣
PIDFILE=/usr/local/redis/redis-single/redis_6379.pid
#redis.conf位置
CONF="/usr/local/redis/redis-single/redis.conf"
case "$1" in
start)
if [ -f $PIDFILE ]
then
echo "$PIDFILE exists, process is already running or crashed"
else
echo "Starting Redis server..."
$EXEC $CONF
fi
;;
stop)
if [ ! -f $PIDFILE ]
then
echo "$PIDFILE does not exist, process is not running"
else
PID=$(cat $PIDFILE)
echo "Stopping ..."
# -a 'password' 這是關閉redis時候需要的密碼 也就是我們上面設置的redis密碼
$CLIEXEC -a '1234' -p $REDISPORT shutdown
while [ -x /proc/${PID} ]
do
echo "Waiting for Redis to shutdown ..."
sleep 1
done
echo "Redis stopped"
fi
;;
*)
echo "Please use start or stop as first argument"
;;
esac
設置服務腳本有執行權限
chmod +x /etc/init.d/redis-single
註冊服務 開機啓動
cd /etc/init.d
update-rc.d redis-single defaults
Tips:
啓動redis
service redis start
關閉redis
service redis stop
重啓系統測試是否成功
reboot
三、添加快速運行指令
3.1.編輯
vim ~/.bashrc
3.2.添加保存
alias REDIS_HOME='cd /usr/local/redis/'
3.3.立即生效
source ~/.bashrc
Tips:
任意終端輸入
REDIS_HOME
進入Redis目錄
可以自行添加比較順手的命令去執行redis服務
2018即將過去了,我不想去懷念它
2018已經過去了,我決定去懷念它
不管過得像一首詩還是像一攤狗屎