一、redis下载与安装
首先上官网下载Redis 压缩包,地址:http://redis.io/download 下载稳定版即可。(这里我下载的是redis-3.0.6.tar.gz)
通过xftpd工具上传安装包到linux环境 (存在/usr/local/下)
通过tar -zxvf redis-3.0.6.tar.gz 解压文件到当前文件夹
对解压后redis文件夹重命名为redis
进入redis文件夹,执行“make” 解压后的文件进行编译 编译成功如下:
编译成功后,进入redis下的src文件夹,执行”make install”进行redis安装 ,成功后如下:
其实到这一步,在src下执行”redis-server”就已经可以启动redis了,启动成功后如下:
但是,这只能置于前台显示,Ctrl+c退出后redis也会退出,且安装后redis的可执行命令后都在src下,这样不方便管理,所以我们统一部署一下redis的环境。
二、redis部署
在redis下创建bin目录(存放常用执行命令)和etc(conf配置文件)目录
a)创建bin目录
mkdir -p /usr/local/redis/bin
b)创建etc目录
mkdir -p /usr/local/redis/etc
c)移动可执行命令到bin目录下:
cd /usr/local/redis/src/
mv mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-dump redis-cli redis-server /usr/local/redis/bin
d)移动conf配置文件到etc目录下:
mv /usr/local/redis/redis.conf /usr/local/redis/etc/
设置redis置于后台启动,编辑conf文件,将daemonize属性改为yes(表明需要在后台运行)
vi /usr/local/redis/etc/redis.conf
启动redis服务,并指定配置文件来启动
redis-server /usr/local/redis/etc/redis.conf
启动redis客户端,看redis是否启动成功,如下表示redis已成功安装成功!
三、redis开机自启动
linux系统下,/etc/init.d/下的服务都是系统自启动会去执行的脚本,所以在其下创建启动redis启动的shell脚本
vi /etc/init.d/redis
如下:EXEC改成你的redis服务文件路径;REDIS_CLI改成你的redis客户端路径;CONF改成你的redis配置文件路径;其他保持不变即可!
#!/bin/bash #chkconfig: 2345 10 90 # description: Start and Stop redis PATH=/usr/local/bin:/sbin:/usr/bin:/bin REDISPORT=6379 EXEC=/usr/local/redis/bin/redis-server REDIS_CLI=/usr/local/redis/bin/redis-cli PIDFILE=/var/run/redis.pid CONF="/usr/local/redis/etc/redis.conf" AUTH="1234" 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 exists, process is not running." else PID=$(cat $PIDFILE) echo "Stopping..." $REDIS_CLI -p $REDISPORT SHUTDOWN sleep 2 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 {start|stop|restart|force-reload}" >&2 exit 1 esac
检查自启动服务是否开启 chkconfig
把redis添加到开机自启动服务中 chkconfig –add redis
查看系统的启动级别 vi /etc/inittab
查看第三项是否为”启动”,如果不是需要执行chkconfig redis on
reboot重启服务器 ,重启后 执行 redis-cli 客户端命令,看是否是开机自启动
四、重启数据丢失问题
杀死进程,然后重启——>数据不会丢失!
步骤:a) ps -ef |grep redis
b) kill- 9 进程id
c) redis-server /usr/local/redis/etc/redis.conf
shutdown 命令,然后重启—>数据丢失
步骤:a) redis-cli -p 6379 SHUTDOWN
b)redis-server /usr/local/redis/etc/redis.conf
原因:该重启方式会致使dump.rdb文件丢失,在redis.conf可以找到其配置dump.rdb存放的路径,
如图,./ 表示服务启动命令的当前路径下;需要把它修改成绝对路径,这里咱们在redis下创建 一个data文件夹,把数据存放路径指向这个文件夹;
解决方法:
a)在redis.conf中找到dir ,把它配置./修改成/usr/local/redis/data/
b)然后再重新启动redis服务,在data文件夹下有看到dump.rdb即可;
linux系统直接reboot,然后重启—>数据丢失
步骤:a)reboot
b)配置的默认重启redis(上面有讲)
解决方法:
在Linux系统设置一个参数(vm.overcommit_memory)即可解决。
a)编辑 sysctl.conf 配置文件
vi /etc/sysctl.conf
b)检查sysctl.conf配置文件中的vm.overcommit_memory参数是否为0,若为0系统不允许回写,可将参数vm.overcommit_memory = 1。(如果没有这个参数,则另起一行增加参数 vm.overcommit_memory 配置,如下):
vm.overcommit_memory = 1
c)使配置文件生效
sysctl -p