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