<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[Ops运维 | Mr`kang Blog｜小豆子]]></title> 
<link>https://www.cnmysql.com/index.php</link> 
<description><![CDATA[关注服务器运维技术、DB优化、Docker虚拟化、自动化运维、工作积累]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[Ops运维 | Mr`kang Blog｜小豆子]]></copyright>
<item>
<link>https://www.cnmysql.com/post//</link>
<title><![CDATA[Redis部署安装]]></title> 
<author>kangyang &lt;kangyang315@qq.com&gt;</author>
<category><![CDATA[WEB技术]]></category>
<pubDate>Fri, 08 Aug 2014 04:19:49 +0000</pubDate> 
<guid>https://www.cnmysql.com/post//</guid> 
<description>
<![CDATA[ 
	<span style="color: #4B0082;"><span style="font-size: 12px;"><span style="font-family: 宋体;"><br/>redis部署<br/>wget <a href="http://download.redis.io/releases/redis-2.8.9.tar.gz" target="_blank">http://download.redis.io/releases/redis-2.8.9.tar.gz</a><br/>tar xzf redis-2.8.9.tar.gz<br/>cd redis-2.8.9<br/>make PREFIX=/usr/local/redis install<br/>cp redis.conf /etc/redis.conf<br/><br/>修改配置文件<br/>/etc/sysctl.conf<br/>添加<br/>vm.overcommit_memory=1<br/>sysctl -p<br/>overcommit_memory文件指定了内核针对内存分配的策略，其值可以是0、1、2。<br/>0， 表示内核将检查是否有足够的可用内存供应用进程使用；如果有足够的可用内存，内存申请允许；否则，内存申请失败，并把错误返回给应用进程。<br/>1， 表示内核允许分配所有的物理内存，而不管当前的内存状态如何。<br/>2， 表示内核允许分配超过所有物理内存和交换空间总和的内存 <br/><br/>启动服务<br/>redis-server /etc/redis.conf&nbsp;&nbsp;<br/><br/>关闭服务<br/>$ redis-cli shutdown&nbsp;&nbsp;&nbsp;&nbsp; <br/>#关闭指定端口的redis-server&nbsp;&nbsp;<br/>$redis-cli -p 6380 shutdown <br/><br/>redis-server：Redis服务器的daemon启动程序<br/>redis-cli：Redis命令行操作工具。当然，你也可以用telnet根据其纯文本协议来操作<br/>redis-benchmark：Redis性能测试工具，测试Redis在你的系统及你的配置下的读写性能<br/>redis-stat：Redis状态检测工具，可以检测Redis当前状态参数及延迟状况<br/><br/>下面是redis.conf的主要配置参数<br/>daemonize yes #转为守护进程，否则启动时会每隔5秒输出一行监控信息<br/>save 60 1000 #减小改变次数，其实这个可以根据情况进行指定<br/>maxmemory 256000000 #分配256M内存<br/><br/>daemonize：是否以后台daemon方式运行<br/>pidfile：pid文件位置<br/>port：监听的端口号<br/>timeout：请求超时时间<br/>loglevel：log信息级别<br/>logfile：log文件位置<br/>databases：开启数据库的数量<br/>save * *：保存快照的频率，第一个*表示多长时间，第三个*表示执行多少次写操作。在一定时间内执行一定数量的写操作时，自动保存快照。可设置多个条件。<br/>rdbcompression：是否使用压缩<br/>dbfilename：数据快照文件名（只是文件名，不包括目录）<br/>dir：数据快照的保存目录（这个是目录）<br/>appendonly：是否开启appendonlylog，开启的话每次写操作会记一条log，这会提高数据抗风险能力，但影响效率。<br/>appendfsync：appendonlylog如何同步到磁盘（三个选项，分别是每次写都强制调用fsync、每秒启用一次fsync、不调用fsync等待系统自己同步）<br/><br/><br/>下面是一个略做修改后的配置文件内容：<br/><div class="code">daemonize yes<br/>pidfile /usr/local/redis/var/redis.pid<br/>port 6379<br/>timeout 300<br/>loglevel debug<br/>logfile /usr/local/redis/var/redis.log<br/>databases 16<br/>save 900 1<br/>save 300 10<br/>save 60 10000<br/>rdbcompression yes<br/>dbfilename dump.rdb<br/>dir /usr/local/redis/var/<br/>appendonly no<br/>appendfsync always<br/>glueoutputbuf yes<br/>shareobjects no<br/>shareobjectspoolsize 1024</div><br/><br/>下面是一个Shell脚本，用于管理Redis进程（启动，停止，重启），这个脚本可供参考。<br/><div class="code">#!/bin/sh<br/>#<br/># redis - this script starts and stops the redis-server daemon<br/>#<br/># chkconfig:&nbsp;&nbsp; - 85 15<br/># description:&nbsp;&nbsp;Redis is a persistent key-value database<br/># processname: redis-server<br/># config:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/usr/local/redis/bin/redis-server<br/># config:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/etc/redis.conf<br/># Source function library.<br/>. /etc/rc.d/init.d/functions<br/># Source networking configuration.<br/>. /etc/sysconfig/network<br/># Check that networking is up.<br/>&#91; &quot;$NETWORKING&quot; = &quot;no&quot; &#93; &amp;&amp; exit 0<br/>redis=&quot;/usr/local/redis/bin/redis-server&quot;<br/>cli=&quot;/usr/local/redis/bin/redis-cli&quot;<br/><br/>prog=$(basename $redis)<br/><br/>REDIS_CONF_FILE=&quot;/etc/redis.conf&quot;<br/>&#91; -f /etc/sysconfig/redis &#93; &amp;&amp; . /etc/sysconfig/redis<br/>lockfile=/var/lock/subsys/redis<br/>start() &#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#91; -x $redis &#93; &#124;&#124; exit 5<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#91; -f $REDIS_CONF_FILE &#93; &#124;&#124; exit 6<br/>&nbsp;&nbsp;&nbsp;&nbsp;echo -n $&quot;Starting $prog: &quot;<br/>&nbsp;&nbsp;&nbsp;&nbsp;daemon $redis $REDIS_CONF_FILE<br/>&nbsp;&nbsp;&nbsp;&nbsp;retval=$?<br/>&nbsp;&nbsp;&nbsp;&nbsp;echo<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#91; $retval -eq 0 &#93; &amp;&amp; touch $lockfile<br/>&nbsp;&nbsp;&nbsp;&nbsp;return $retval<br/>&#125;<br/>stop() &#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;echo -n $&quot;Stopping $prog: &quot;<br/>&nbsp;&nbsp;&nbsp;&nbsp;#killproc $prog -QUIT<br/>&nbsp;&nbsp;&nbsp;&nbsp;daemon $cli -p 6379 shutdown<br/>&nbsp;&nbsp;&nbsp;&nbsp;retval=$?<br/>&nbsp;&nbsp;&nbsp;&nbsp;echo<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#91; $retval -eq 0 &#93; &amp;&amp; rm -f $lockfile<br/>&nbsp;&nbsp;&nbsp;&nbsp;return $retval<br/>&#125;<br/>restart() &#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;stop<br/>&nbsp;&nbsp;&nbsp;&nbsp;start<br/>&#125;<br/>reload() &#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;echo -n $&quot;Reloading $prog: &quot;<br/>&nbsp;&nbsp;&nbsp;&nbsp;killproc $redis -HUP<br/>&nbsp;&nbsp;&nbsp;&nbsp;RETVAL=$?<br/>&nbsp;&nbsp;&nbsp;&nbsp;echo<br/>&#125;<br/>force_reload() &#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;restart<br/>&#125;<br/>rh_status() &#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;status $prog<br/>&#125;<br/>rh_status_q() &#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;rh_status &gt;/dev/null 2&gt;&amp;1<br/>&#125;<br/>case &quot;$1&quot; in<br/>&nbsp;&nbsp;&nbsp;&nbsp;start)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rh_status_q &amp;&amp; exit 0<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$1<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;stop)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rh_status_q &#124;&#124; exit 0<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$1<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;restart&#124;configtest)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$1<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;reload)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rh_status_q &#124;&#124; exit 7<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$1<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;force-reload)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;force_reload<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;status)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rh_status<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;condrestart&#124;try-restart)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rh_status_q &#124;&#124; exit 0<br/>&nbsp;&nbsp;&nbsp;&nbsp;;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;*)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo $&quot;Usage: $0 &#123;start&#124;stop&#124;status&#124;restart&#124;condrestart&#124;try-restart&#124;reload&#124;force-reload&#125;&quot;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit 2<br/>esac</div><br/>chmod 755 /etc/rc.d/init.d/redis<br/>[root@lx_web_s1 init.d]# service redis start<br/>Starting redis-server:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [&nbsp;&nbsp;OK&nbsp;&nbsp;]<br/>[root@lx_web_s1 init.d]# service redis stop <br/>Stopping redis-server:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&nbsp;&nbsp;OK&nbsp;&nbsp;]<br/>添加到开机启动<br/>chkconfig --add redis<br/>chkconfig --level 3 redis on<br/><br/>另外一种开启启动<br/>参考：<a href="http://blog.csdn.net/chhxo/article/details/8673020" target="_blank">http://blog.csdn.net/chhxo/article/details/8673020</a><br/>下载：<a href="http://www.cnmysql.com/soft/redis" target="_blank">http://www.cnmysql.com/soft/redis</a><br/>脚本名称：<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;redis&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #在多实例里可以按实例端口,如:redis-6001命名,以区分不同实例<br/>脚本用法：<br/>1. 将脚本复制到:/etc/rc.d/init.d/目录下<br/>2.&nbsp;&nbsp;chkconfig --add redis&nbsp;&nbsp; #注册服务<br/>3. checkconfig --level 345 redis on&nbsp;&nbsp;#指定服务在3、4、5级别运行<br/>4.脚本默认Redis程序安装在/usr/local/redis目录下，配置为/usr/local/redis/etc/redis.conf，如安装在其他目录，请自行修改<br/><br/>脚本参数:<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;redis -p [port]&nbsp;&nbsp;[start&#124;stop&#124;status&#124;restart]<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 参数说明：<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-p [port] : 指定redis实例的端口，用于多实例的服务器<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; start：启动指定端口的Redis服务<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; stop：停止指定端口的Redis服务<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; status：进程状态<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; restart：先关闭Redis服务,再启动Redis服务<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;注：不指定端口时，脚本默认指定启动6379端口的redis<br/>用法实例：<br/>&nbsp;&nbsp;&nbsp;&nbsp;service redis -p 6381 start&nbsp;&nbsp;#启动6381端口实例的redis<br/>&nbsp;&nbsp; /etc/init.d/redis&nbsp;&nbsp;start&nbsp;&nbsp;#默认启动6379端口实例的redis</span></span></span>
]]>
</description>
</item><item>
<link>https://www.cnmysql.com/post//#blogcomment</link>
<title><![CDATA[[评论] Redis部署安装]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>https://www.cnmysql.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>