Redis探索之旅(5)- 在Linux下将Redis注册成服务

Redis探索之旅(5)- 在Linux下将Redis注册成服务

    
标签: Redis
1083人阅读 评论(0) 收藏 举报
分类:

在《Redis探索之旅(3)- 在Windows下将Redis注册成本地服务》我们讲述了如何在Windows下的操作方法,在这篇文章中,我们看看在Linux下如何操作。

我们按照下面的步骤一步一步来。


(1)将Redis目录下的初始化脚本拷贝到/etc/rc.d/init.d目录

redis的初始化脚本目录为:/usr/local/src/redis/utils/redis_init_script

将这个目录拷贝到目标目录,同时将文件夹名称进行修改:

[javascript] view plain copy
print ?
  1. cp /usr/local/src/redis/utils/redis_init_script /etc/rc.d/init.d/redis  
cp /usr/local/src/redis/utils/redis_init_script /etc/rc.d/init.d/redis

然后添加注册服务,如下所示:

[javascript] view plain copy
print ?
  1. chkconfig –add redis  
chkconfig --add redis

执行后,可能你会遇到下面的错误:

[javascript] view plain copy
print ?
  1. redis服务不支持chkconfig  
redis服务不支持chkconfig

因此,我们还需要对初始化脚本做一些修改。


(2)修改脚本

我们首先打开redis脚本,修改后内容如下:

[javascript] view plain copy
print ?
  1. #!/bin/sh   
  2. #chkconfig: 2345 80 90   
  3. # Simple Redis init.d script conceived to work on Linux systems   
  4. # as it does use of the /proc filesystem.   
  5.      
  6. REDISPORT=6379   
  7. EXEC=/usr/local/redis/bin/redis-server   
  8. CLIEXEC=/usr/local/redis/bin/redis-cli   
  9.      
  10. PIDFILE=/var/run/redis_{REDISPORT}.pid   
  11. CONF="/etc/redis/{REDISPORT}.conf”   
  12.      
  13. case 1" in   
  14.     start)           if [ -f PIDFILE ]   
  15.         then   
  16.                 echo PIDFILE exists, process is already running or crashed"   
  17.         else                   echo "Starting Redis server..."                   EXEC CONF &           fi           ;;       stop)           if [ ! -f PIDFILE ]   
  18.         then   
  19.                 echo PIDFILE does not exist, process is not running"   
  20.         else                   PID=(cat PIDFILE)                   echo "Stopping ..."                   CLIEXEC -p REDISPORT shutdown                   while [ -x /proc/{PID} ]   
  21.                 do   
  22.                     echo ”Waiting for Redis to shutdown …”   
  23.                     sleep 1   
  24.                 done   
  25.                 echo ”Redis stopped”   
  26.         fi   
  27.         ;;   
  28.     *)   
  29.         echo ”Please use start or stop as first argument”   
  30.         ;;   
  31. esac  
#!/bin/sh 




#chkconfig: 2345 80 90 # Simple Redis init.d script conceived to work on Linux systems # as it does use of the /proc filesystem. REDISPORT=6379 EXEC=/usr/local/redis/bin/redis-server CLIEXEC=/usr/local/redis/bin/redis-cli PIDFILE=/var/run/redis_ REDISPORT.pidCONF="/etc/redis/ {REDISPORT}.conf" case " 1"instart)if[f PIDFILE ] then echo " PIDFILEexists,processisalreadyrunningorcrashed"elseecho"StartingRedisserver..." EXEC CONF & 
        fi 
        ;; 
    stop) 
        if [ ! -f
PIDFILE ] then echo " PIDFILEdoesnotexist,processisnotrunning"elsePID= (cat PIDFILE)echo"Stopping..." CLIEXEC -p REDISPORTshutdownwhile[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
脚本的修改地方主要涉及以下几个地方:

(a)第二行增加如下内容

[javascript] view plain copy
print ?
  1. #chkconfig: 2345 80 90  
#chkconfig: 2345 80 90

(b)原脚本EXEC和CLIEXEC的值因为目录不同而有所修改

[javascript] view plain copy
print ?
  1. EXEC=/usr/local/redis/bin/redis-server     
  2. CLIEXEC=/usr/local/redis/bin/redis-cli  
EXEC=/usr/local/redis/bin/redis-server   
CLIEXEC=/usr/local/redis/bin/redis-cli

(c)redis启动的命令改为以后台方式启动

[javascript] view plain copy
print ?
  1. EXEC CONF &  
$EXEC $CONF &

(d)将redis配置文件拷贝到/etc/redis/端口ID.conf,如下所示:

[javascript] view plain copy
print ?
  1. mkdir /etc/redis      
  2. cp /usr/local/src/redis/redis.conf /etc/redis/6379.conf  
mkdir /etc/redis    
cp /usr/local/src/redis/redis.conf /etc/redis/6379.conf

默认情况下,redis启动时不启用鉴权认证,如果有需要,可以在配置文件中进行设置requirepass参数。


通过上面的脚本修改后,我们可以再次使用下面的命令进行注册服务:

[javascript] view plain copy
print ?
  1. chkconfig –add redis  
chkconfig --add redis

注册成功后,然后就是启动服务了,如下所示:

[javascript] view plain copy
print ?
  1. service redis start  
service redis start

至此,单实例redis服务便启动起来了。


本篇内容参考博客地址:http://www.cnblogs.com/_popc/p/3684835.html,特此说明,谢谢。

document.getElementById("bdshell_js").src = "http://bdimg.share.baidu.com/static/js/shell_v2.js?cdnversion=" + Math.ceil(new Date()/3600000)
    
0
0


你可能感兴趣的:(技术知识库)