为wordpress服务器配置Redis加速方案

Installation

Download, extract and compile Redis with:

$ wget http://download.redis.io/releases/redis-4.0.6.tar.gz
$ tar xzf redis-4.0.6.tar.gz
$ cd redis-4.0.6
$ make
$ make install

最好再编译后直接执行make install命令来将这些可执行程序复制到/user/local/bin目录中以便以后执行程序时可以不用输入完整的路径

make的时候注意:

如果make的时候提示如下错误:

cc: error: ../deps/hiredis/libhiredis.a: No such file or directory

cc: error: ../deps/lua/src/liblua.a: No such file or directory

cc: error: ../deps/jemalloc/lib/libjemalloc.a: No such file or directory

make: *** [redis-server] Error 1

则分别进入redis下的deps下的hiredis、lua和jemalloc下运行make。jemalloc下可能要先运行./configure,然后make。最后回到redis的src下,运行make,就OK了。

如果提示如下错误:

CPU you selected does not support x86-64 instruction set

把make命令改成make CFLAGS=”-march=x86-64”就行了

The binaries that are now compiled are available in the src directory. Run Redis with:

$ src/redis-server

You can interact with Redis using the built-in client:

$ src/redis-cli
redis> set foo bar
OK
redis> get foo
"bar"

如果不顺利的话,我这里准备了一些报错的解决方案:

一:make编译时,出现错误

解决方法:仔细看看error错误位置的信息,很可能是某些东西没有安装好,把这些东西安装了就没问题了

二:

Warning: no config file specified, using the default config. In order to specify a config file use ‘redis-server /path/to/redis.conf’
Opening port: bind: Address already in use

类似这样的警告是因为配置文件没有正确加载。
我们可以事先修改一下配置文件redis.conf,修改daemonize no,将no改成yes,使其成为后台线程,进入redis.conf配置文件的同级目录

使用命令redis-server redis.conf。我这里因为配置文件没有正确加载导致了使用redis命令没有任何反应,为空。

三:启动redis时出现警告,就是使用redis-server出现redis图形的时候,大致是memory相关的警告信息,我们使用如下命令

a) echo vm.overcommit_memory=1 >> /etc/sysctl.conf

b) sysctl vm.overcommit_memory=1 或执行echo vm.overcommit_memory=1 >>/proc/sys/vm/overcommit_memory

如果出现警告:

WARNING overcommit_memory is set to 0! Background save may fail under low memory condition.
To fix this issue add ‘vm.overcommit_memory = 1’ to /etc/sysctl.conf and then reboot or run the command ‘sysctl vm.overcommit_memory=1’ for this to take effect.

过量使用内存设置为0!在低内存环境下,后台保存可能失败。为了修正这个问题,请在/etc/sysctl.conf 添加一项 ‘vm.overcommit_memory = 1’ ,然后重启(或者运行命令’sysctl vm.overcommit_memory=1’ )使其生效。

按这个提示来做,警告排除。

2、通过初始化脚本启动redis

redis源码目录的utils文件夹中有一个名为redis-init_script的初始化脚本文件

步骤

(1)配置初始化脚本。首先将初始化脚本复制到/etc/init.d目录中,文件名为redis_端口号(redis_6379),然后修改脚本第6行的REDISPORT的变量值为同样的端口号(ubuntu)

如果是centos或者redhat则使用以下脚本(端口号根据实际情况修改)

#chkconfig: 2345 90 10
#description: Redis is a persistent key-value database
PATH=/usr/local/bin:/sbin:/usr/bin:/bin
REDISPORT=6379
EXEC=/usr/local/bin/redis-server
REDIS_CLI=/usr/local/bin/redis-cli
PIDFILE=/var/run/redis_6379.pid
CONF="/etc/redis/6379.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
fi
if [ "$?"="0" ]
then
echo "Redis is running..."
fi
;;
stop)
if [ ! -f $PIDFILE ]
then
echo "$PIDFILE does not exist, process is not running"
else
PID=$(cat $PIDFILE)
echo "Stopping ..."
$REDIS_CLI -p $REDISPORT SHUTDOWN
while [ -x ${PIDFILE} ]
do
echo "Waiting for Redis to shutdown ..."
sleep 1
done
echo "Redis stopped"
fi
;;
restart|force-reload)
${0} stop
${0} start
;;
*)
echo "Usage: /etc/init.d/redis_6379 {start|stop|restart|force-reload}" >&2
exit 1
esac

(2)建立需要的文件夹

/etc/redis    存放redis配置文件

/var/redis/端口号    存放redis的持久化文件

(3)修改配置文件

把配置文件模板复制到/etc/redis目录中,已端口号命名(如“6379.conf”)

需要修改的配置及说明:

daemonize       yes                                          使redis以守护进程模式运行

pidfile         /var/run/redis_端口号.pid        设置redis的pid文件位置

port            端口号                                     设置redis监听的端口号

 dir            /var/redis/端口号                     设置持久化文件存放位置

设置开机启动服务:

sudo update-rc.d redis端口号 defaults // 告诉系统启动时候,自动执行redis端口号 这个脚本。(ubuntu)

如果是centos或者redhat则使用以下方法:

chkconfig redis_端口号  on

设置权限可执行

chmod +x /etc/init.d/redis_端口号

现在就可以使用 /etc/init.d/redis_端口号 start/stop 来启动和停止redis了

三、停止redis

redis-cli shutdown  或者 kill redis进程的pid

附:

redis启动警告问题:WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.

1.启动redis,命令: redis-server redis.conf路径文件

2.会发现warning警告,WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128. 如下图

3.这句话的翻译大概就是:对一个高负载的环境来说tcp设置128这个值,太小了。 这是我的理解,绝体的还需到官网理解。然后我们可以手动设置,或者设置永久值.所以执行:

4.执行后如下,这个问题解决了。

5.原因就是因为128太小了。执行echo 511 > /proc/sys/net/core/somaxconn

命令就把这个问题解决了。但是这个只是暂时的。如果想要永久解决,打开ietc/sysctl.conf

在这里面添net.core.somaxconn= 1024 然后执行sysctl -p 就可以永久消除这个warning

在这启动redis就看不到这个128的warning了

未经允许不得转载:哈勃私语 » 为wordpress服务器配置Redis加速方案

本文共3862个字 创建时间:2018年1月6日16:10   

分享到:更多 ()