一、上传Redis安装包到Linux服务器某文件中,再解压Redis安装包
tar xzf redis-3.2.9.tar.gz
二、进入Redis目录
cd redis-3.2.9
三、编译原码
Make
图例:
四、新建立一个目录存放Redis的必要文件,因为编译生成的东西比较多,也乱
mkdir bin
五、复制文件
1、复制Redis的配置文件(redis.conf)到bin目录下。注意:这个配置文件是在Redis根目录的。
cp redis.conf /usr/redis/redis-3.2.9/bin/
2、进入src目录
cd src
3、复制Redis的redis-server文件到bin目录下。
cp redis-server /usr/redis/redis-3.2.9/bin/
4、复制Redis的redis-cli 文件到bin目录下。
cp redis-cli /usr/redis/redis-3.2.9/bin/
5、复制Redis的redis-benchmark文件到bin目录下。
cp redis-benchmark /usr/redis/redis-3.2.9/bin/
六、再进入bin目录
cd /usr/redis/redis-3.2.9/bin/
七、启动Redis服务(前面是有点的),不能关闭这个(不能使用Ctrl+C终止,这样会退出Redis服务的)
./redis-server
八、需要再打开另一个命令窗口启动客户端
1、先进入bin目录
cd /usr/redis/redis-3.2.9/bin/
2、启动客户端命令
./redis-cli
3、然后就可以使用Redis命令操作了。
九、Redis自动启动见:
1、新建、编写开机自启动脚本(redis-auto为新建的文件)
vi /etc/init.d/redis-auto
2、在文件redis-auto加入如下内容:(注意Redis具体的安装路径)
#!/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
REDISPATH=/usr/redis/redis-3.2.9/bin
EXEC=${REDISPATH}/redis-server
CLIEXEC=${REDISPATH}/redis-cli
PIDFILE=/var/run/redis_${REDISPORT}.pid
CONF="${REDISPATH}/redis.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
;;
stop)
if [ ! -f $PIDFILE ]
then
echo "$PIDFILE does not exist, process is not running"
else
PID=$(cat $PIDFILE)
echo "Stopping ..."
$CLIEXEC -p $REDISPORT shutdown
while [ -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
3、保存退出
:wq
4、设置文件redis-auto的权限,让Linux可以执行
chmod 755 redis-auto
5、启动Redis服务测试,此处启动用的是第二步设置的启动脚本
/etc/init.d/redis-auto start
可以打开redis-cli客户端进行测试
6、设置开机自启动:
chkconfig redis-auto on
7、经过测试,Linux系统在重新启动时,Redis的数据会自动丢失,解决方案见:
问题说明:
在Linux系统中,Redis本来是有数据的,但在Linux系统重启后,Redis中的数据全部丢失。经过几次测试都一样,只有在Linux系统重启才会丢失,Redis重启应该是没有问题的。
这个问题只在Linux系统才存在,在Windows系统是没有问题的。
解决方案:
在Linux系统设置一个参数(vm.overcommit_memory)即可解决。
步骤如下:
1、编辑 sysctl.conf 配置文件
vi /etc/sysctl.conf
2、另起一行增加参数 vm.overcommit_memory 配置,如下
vm.overcommit_memory = 1
3、使配置文件生效
sysctl -p
再重启Linux系统查看数据是没有丢失的