1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
| mkdir -p /home/tools
mkdir -p /etc/redis
mkdir -p /var/log/redis
mkdir -p /data/redis/7000
cd /home/tools
yum -y install vim wget net-tools ruby-devel ruby ruby-rdoc tcl gcc gcc-c++ curl libyaml-devel make automake unzip
wget -c http://download.redis.io/releases/redis-stable.tar.gz
tar zxvf redis-stable.tar.gz
cd /home/tools/redis-stable && make && make install
gem install redis
\cp /home/tools/redis-stable/src/redis-trib.rb /usr/local/bin/
#Config redis
cat >/etc/redis/nodes-7000.conf<<EOF
port 7000
bind 0.0.0.0
daemonize yes
pidfile /var/run/redis_7000.pid
logfile /var/log/redis/7000.log
cluster-enabled yes
cluster-config-file nodes-7000.conf
cluster-node-timeout 5000
cluster-slave-validity-factor 10
appendonly yes
dir /data/redis/7000
dbfilename dump-7000.rdb
appendfilename "appendonly-7000.aof"
EOF
#Configure startup scripts
cat >/etc/init.d/redis_7000<<EOF
#!/bin/bash
# chkconfig: - 85 15
EXEC="/usr/local/bin/redis-server"
PIDFILE="/var/run/redis_7000.pid"
CONF="/etc/redis/nodes-7000.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
sleep 1
echo "Redis has been started"
fi
;;
stop)
if [ ! -f \$PIDFILE ]
then
echo "\$PIDFILE does not exist, process is not running."
else
PID=\$(cat \$PIDFILE)
echo "Stopping Redis Server…"
while [ -x /proc/\${PID} ]
do
kill -9 \$PID && rm -rf \$PIDFILE
sleep 2
done
echo "Redis stopped."
fi
;;
restart)
\$0 stop
\$0 start
;;
status)
if [ ! -f \$PIDFILE ];then
echo "Redis is not running!"
else
echo "Redis is alreday running!"
fi
;;
*)
echo "Usage: \$0 {start|stop|restart|status}" >&2
exit 1
esac
EOF
#Start Redis service
/etc/init.d/redis_7000 start
|