linux下安装redis步骤及遇到的坑
1. redis官网下载最新redis并上传到服务器
redis 官网下载地址https://redis.io/download
2. 解压安装包
3. 进入redis目录下使用make命令编译
这时可能没有gcc会报错
4.安装gcc
yum -y install gcc
验证gcc是否安装成功
rpm -qa|grep gcc
5.继续 make redis
这时还是会报错,jemalloc 找不到
这是一个管理内存的库,可以从github下载压缩包,解压
github地址https://github.com/jemalloc/jemalloc/releases
预编译jemalloc
./configure --prefix=/usr/local/jemalloc
然后编译 jemalloc
make && make install
5.回到redis目录继续编译
make MALLOC=/usr/local/jemalloc/lib
6.继续redis安装
cd src
make install PREFIX=/usr/local/redis-5.0.0/
7.make test
然后会报错,需要安装tcl ```java yum -y install tcl ```
redis 启动
复制redis.conf文件到/usr/local/redis-5.0.0/bin
修改redis.conf 配置
vi /etc/redis.conf #查找daemonize no改为 yes以守护进程方式运行 即以后台运行方式去启动 daemonize yes #修改dir ./为绝对路径, 默认的话redis-server启动时会在当前目录生成或读取dump.rdb 所以如果在根目录下执行redis-server /etc/redis.conf的话 #, 读取的是根目录下的dump.rdb,为了使redis-server可在任意目录下执行 所以此处将dir改为绝对路径 dir /usr/local/redis-4.0.11/bin #修改appendonly为yes #指定是否在每次更新操作后进行日志记录, Redis在默认情况下是异步的把数据写入磁盘, #如果不开启,可能会在断电时导致一段时间内的数据丢失。 因为 redis本身同步数据文件是按上面save条件来同步的, #所以有的数据会在一段时间内只存在于内存中。默认为no appendonly yes #redis 日志生成位置 logfile "/app/log/redis.log"
启动redis
cd /usr/local/redis-5.0.0/bin
./redis-server redis.conf
启动客户端测试
./redis-cli
使用脚本设置开机自启动
启动脚本 redis_init_script 位于位于Redis的 /utils/ 目录下
#!/bin/sh
#说明启动优先级
# chkconfig: 2345 90 10
#
# Simple Redis init.d script conceived to work on Linux systems
# as it does use of the /proc filesystem.
### BEGIN INIT INFO
# Provides: redis_6379
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Redis data structure server
# Description: Redis data structure server. See https://redis.io
### END INIT INFO
#端口
REDISPORT=6379
REDIS=redis
#服务启动脚本位置
EXEC=/usr/local/redis-4.0.11/bin/redis-server
#客户端连接脚本位置
CLIEXEC=/usr/local/redis-4.0.11/bin/redis-cli
#启动PID所在位置
PIDFILE=/var/run/redis_${REDISPORT}.pid
#启动配置文件所在位置
CONF="/usr/local/redis-4.0.11/bin/${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
将启动脚本复制到/etc/init.d目录下,本例将启动脚本命名为redis(通常都以d结尾表示是后台自启动服务) 进入/etc/init.d目录下设置为开机自启动,直接配置开启自启动 chkconfig redis on 如果是ubuntu系统使用以下命令 update-rc.d redis defaults 可以使用 service redis start 启动redis service redis stop 停止redis