您的位置:首页 > 数据库 > Redis

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

2017-07-21 15:41 211 查看



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

<div class="article_manage clearfix">
<div class="article_l">
<span class="link_categories">
标签:
<a href="http://www.csdn.net/tag/Redis" target="_blank" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_tag']);">Redis</a>
</span>
</div>
<div class="article_r">
<span class="link_postdate">2016-09-03 20:50</span>
<span class="link_view" title="阅读次数">1083人阅读</span>
<span class="link_comments" title="评论次数"> <a href="#comments" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_pinglun'])">评论</a>(0)</span>
<span class="link_collect tracking-ad" data-mod="popu_171"> <a href="javascript:void(0);" onclick="javascript:collectArticle('Redis%e6%8e%a2%e7%b4%a2%e4%b9%8b%e6%97%85%ef%bc%885%ef%bc%89-+%e5%9c%a8Linux%e4%b8%8b%e5%b0%86Redis%e6%b3%a8%e5%86%8c%e6%88%90%e6%9c%8d%e5%8a%a1','52425238');return false;" title="收藏" target="_blank">收藏</a></span>
<span class="link_report"> <a href="#report" onclick="javascript:report(52425238,2);return false;" title="举报">举报</a></span>

</div>
</div>    <style type="text/css">
.embody{
padding:10px 10px 10px;
margin:0 -20px;
border-bottom:solid 1px #ededed;
}
.embody_b{
margin:0 ;
padding:10px 0;
}
.embody .embody_t,.embody .embody_c{
display: inline-block;
margin-right:10px;
}
.embody_t{
font-size: 12px;
color:#999;
}
.embody_c{
font-size: 12px;
}
.embody_c img,.embody_c em{
display: inline-block;
vertical-align: middle;
}
.embody_c img{
width:30px;
height:30px;
}
.embody_c em{
margin: 0 20px 0 10px;
color:#333;
font-style: normal;
}
</style>
<script type="text/javascript">
$(function () {
try
{
var lib = eval("("+$("#lib").attr("value")+")");
var html = "";
if (lib.err == 0) {
$.each(lib.data, function (i) {
var obj = lib.data[i];
//html += '<img src="' + obj.logo + '"/>' + obj.name + "  ";
html += ' <a href="' + obj.url + '" target="_blank">';
html += ' <img src="' + obj.logo + '">';
html += ' <em><b>' + obj.name + '</b></em>';
html += ' </a>';
});
if (html != "") {
setTimeout(function () {
$("#lib").html(html);
$("#embody").show();
}, 100);
}
}
} catch (err)
{ }

});
</script>
<div class="category clearfix">
<div class="category_l">
<img src="http://static.blog.csdn.net/images/category_icon.jpg">
<span>分类:</span>
</div>
<div class="category_r">
<label onclick="GetCategoryArticles('6399348','andamajing','top','52425238');">
<span onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_fenlei']);">Redis<em>(11)</em></span>
<img class="arrow-down" src="http://static.blog.csdn.net/images/arrow_triangle _down.jpg" style="display:inline;">
<img class="arrow-up" src="http://static.blog.csdn.net/images/arrow_triangle_up.jpg" style="display:none;">
<div class="subItem">
<div class="subItem_t"><a href="http://blog.csdn.net/andamajing/article/category/6399348" target="_blank">作者同类文章</a><i class="J_close">X</i></div>
<ul class="subItem_l" id="top_6399348">
</ul>
</div>
</label>
</div>
</div>
<div class="bog_copyright">
<p class="copyright_p">版权声明:本文为博主原创文章,未经博主允许不得转载。</p>
</div>


在《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?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?chkconfig –add redis
chkconfig --add redis


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

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


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

(2)修改脚本

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

[javascript] view plain copy print?#!/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}.pid   </span></span></li><li class="alt"><span>CONF=<span class="string">"/etc/redis/{REDISPORT}.conf”

case “1"</span><span> </span><span class="keyword">in</span><span>   </span></span></li><li class=""><span>    start)   </span></li><li class="alt"><span>        <span class="keyword">if</span><span> [ -f PIDFILE ]
then
echo ”PIDFILE exists, process is already running or crashed"</span><span>   </span></span></li><li class=""><span>        <span class="keyword">else</span><span>   </span></span></li><li class="alt"><span>                echo <span class="string">"Starting Redis server..."</span><span>   </span></span></li><li class=""><span>                EXEC CONF &   </span></li><li class="alt"><span>        fi   </span></li><li class=""><span>        ;;   </span></li><li class="alt"><span>    stop)   </span></li><li class=""><span>        <span class="keyword">if</span><span> [ ! -f PIDFILE ]
then
echo ”PIDFILE does not exist, process is not running"</span><span>   </span></span></li><li class="alt"><span>        <span class="keyword">else</span><span>   </span></span></li><li class=""><span>                PID=(cat PIDFILE)   </span></li><li class="alt"><span>                echo <span class="string">"Stopping ..."</span><span>   </span></span></li><li class=""><span>                CLIEXEC -p REDISPORT shutdown   </span></li><li class="alt"><span>                <span class="keyword">while</span><span> [ -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


#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[−fPIDFILE ]
then
echo "PIDFILEexists,processisalreadyrunningorcrashed"elseecho"StartingRedisserver..."EXEC CONF &
fi
;;
stop)
if [ ! -fPIDFILE ]
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?#chkconfig: 2345 80 90
#chkconfig: 2345 80 90


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

[javascript] view plain copy print?EXEC=/usr/local/redis/bin/redis-server 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?EXEC CONF &
$EXEC $CONF &


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

[javascript] view plain copy print?mkdir /etc/redis 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?chkconfig –add redis
chkconfig --add redis


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

[javascript] view plain copy print?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)

<div id="digg" articleid="52425238">
<dl id="btnDigg" class="digg digg_enable" onclick="btndigga();">

<dt>顶</dt>
<dd>0</dd>
</dl>

<dl id="btnBury" class="digg digg_enable" onclick="btnburya();">

<dt>踩</dt>
<dd>0</dd>
</dl>

</div>
<div class="tracking-ad" data-mod="popu_222"><a href="javascript:void(0);" target="_blank"> </a>   </div>
<div class="tracking-ad" data-mod="popu_223"> <a href="javascript:void(0);" target="_blank"> </a></div>
<script type="text/javascript">
function btndigga() {
$(".tracking-ad[data-mod='popu_222'] a").click();
}
function btnburya() {
$(".tracking-ad[data-mod='popu_223'] a").click();
}
</script>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  redis linux