redis 安装并且设置开机后台自动启动(转)

 

1,安装redis

1 wget http://download.redis.io/releases/redis-2.8.8.tar.gz
2 tar xzf redis-2.8.8.tar.gz
3 cd redis-2.8.8
4 make

 2,建立Redis目录(非必须)

这个过程不是必须的,只是为了将Redis相关的资源统一管理而进行的操作。
执行以下命令建立相关目录并拷贝相关文件至目录中: 
1 cd redis-2.8.8
2 mkdir -p /usr/local/redis/bin
3 mkdir -p /usr/local/redis/etc
4 mkdir -p /usr/local/redis/var
5 
6 cp redis.conf /usr/local/redis/etc/
7 
8 cd src 
9 cp redis-server redis-cli redis-benchmark  /usr/local/redis/bin/

3,修改redis.conf

    参考http://www.cnblogs.com/yinliang/p/3677827.html

      vi /usr/local/redis/etc/redis.conf 

4,开启redis远程端口

开启redis端口,修改防火墙配置文件
      vi /etc/sysconfig/iptables   

加入端口配置
      -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 6379 -j ACCEPT   

5,设置内存分配策略

/proc/sys/vm/overcommit_memory
可选值:0、1、2。
0, 表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。
1, 表示内核允许分配所有的物理内存,而不管当前的内存状态如何。
2, 表示内核允许分配超过所有物理内存和交换空间总和的内存

    vi /etc/sysctl.conf 

  添加参数

 vm.overcommit_memory = 1 

 后重启系统

6,配置init脚本

其实github上很多老外写好的启动脚本,不过大部分都是ubuntu的,对于Centos,也有一份

https://gist.github.com/1335694
经过我的修改,如下:

 1 # chkconfig:   2345 90 10
 2 
 3   # description:  Redis is a persistent key-value database
 4 
 5 PATH=/usr/local/bin:/sbin:/usr/bin:/bin
 6 
 7 REDISPORT=6379
 8 EXEC=/usr/local/redis/bin/redis-server
 9 REDIS_CLI=/usr/local/redis/bin/redis-cli
10 
11 PIDFILE=/usr/local/redis/var/redis.pid
12 CONF="/usr/local/redis/etc/redis.conf"
13 
14 case "$1" in
15     start)
16         if [ -f $PIDFILE ]
17         then
18                 echo "$PIDFILE exists, process is already running or crashed"
19         else
20                 echo "Starting Redis server..."
21                 $EXEC $CONF
22         fi
23         if [ "$?"="0" ]
24         then
25               echo "Redis is running..."
26         fi
27         ;;
28     stop)
29         if [ ! -f $PIDFILE ]
30         then
31                 echo "$PIDFILE does not exist, process is not running"
32         else
33                 PID=$(cat $PIDFILE)
34                 echo "Stopping ..."
35                 $REDIS_CLI -p $REDISPORT SHUTDOWN
36                 while [ -x ${PIDFILE} ]
37                do
38                     echo "Waiting for Redis to shutdown ..."
39                     sleep 1
40                 done
41                 echo "Redis stopped"
42         fi
43         ;;
44    restart|force-reload)
45         ${0} stop

把上述代码存为redis,放到/etc/init.d/下面

chmod +x /etc/init.d/redis 

其实做成服务启动,也是调用redis-server,如果想让它在后台作为daemon运行,那么

需要修改redis.conf,将 daemonize no 改为 daemonize yes

7,设定开机启动服务 

 sudo chkconfig redis on 

8,启动,停止redis
启动:

 service redis start #或者 /etc/init.d/redis start 

停止: 

  service redis stop #或者 /etc/init.d/redis stop 

9,查看redis启动日志

 tail -f /usr/local/redis/var/redis.log 


10,测试redis

1 redis-cli 
2 redis 127.0.0.1:6379> set foo 123
3 OK
4 redis 127.0.0.1:6379> get foo
5 "123"
6 redis 127.0.0.1:6379> exit