“前人栽树,后人乘凉”。对于初次接触redis的小白来说,网上有很多操作的教程可以进行参考,H哥在操作时,也查找过很多相关的讲解和说明,在实际操作中也对大牛的文章也赞不绝口。但对理解不深的小白来说,详细的讲解能帮助其更好的学习。
言归正传,接下来为大家讲解redis的安装及相关操作。
主要解决问题:
联网下载安装redis
离线安装redis
联网或离线安装免编译版redis
一,前置环境
Centos7
二,联网下载安装redis
对于有网络条件下,可以直接进行网上下载,解压并安装。
获取最新redis版本:https://redis.io/download ,下载Stable版本,当前最新版本5.0.7
1,下载安装包
[root@localhost ~]# cd /usr/local/
[root@localhost local]# wget http://download.redis.io/releases/redis-5.0.7.tar.gz
如果出现-bash: wget: 未找到命令。说明命令没安装。执行yum安装。
[root@localhost ~]# yum install wget
2,解压安装包
[root@localhost local]# tar -xzf redis-5.0.7.tar.gz
3、进入解压的redis目录,通过make
命令进行编译
[root@localhost local]# cd redis-5.0.7/
[root@localhost redis-5.0.7]# make
4,出现如下信息:
[root@localhost redis-5.0.7]# make
cd src && make all
make[1]: 进入目录“/usr/local/redis-5.0.7/src”
CC Makefile.dep
make[1]: 离开目录“/usr/local/redis-5.0.7/src”
make[1]: 进入目录“/usr/local/redis-5.0.7/src”
rm -rf redis-server redis-sentinel redis-cli redis-benchmark redis-check-rdb redis-check-aof *.o *.gcda *.gcno *.gcov redis.info lcov-html Makefile.dep dict-benchmark
(cd ../deps && make distclean)
make[2]: 进入目录“/usr/local/redis-5.0.7/deps”
(cd hiredis && make clean) > /dev/null || true
(cd linenoise && make clean) > /dev/null || true
(cd lua && make clean) > /dev/null || true
(cd jemalloc && [ -f Makefile ] && make distclean) > /dev/null || true
(rm -f .make-*)
make[2]: 离开目录“/usr/local/redis-5.0.7/deps”
(rm -f .make-*)
echo STD=-std=c99 -pedantic -DREDIS_STATIC='' >> .make-settings
echo WARN=-Wall -W -Wno-missing-field-initializers >> .make-settings
echo OPT=-O2 >> .make-settings
echo MALLOC=jemalloc >> .make-settings
echo CFLAGS= >> .make-settings
echo LDFLAGS= >> .make-settings
echo REDIS_CFLAGS= >> .make-settings
echo REDIS_LDFLAGS= >> .make-settings
echo PREV_FINAL_CFLAGS=-std=c99 -pedantic -DREDIS_STATIC='' -Wall -W -Wno-missing-field-initializers -O2 -g -ggdb -I../deps/hiredis -I../deps/linenoise -I../deps/lua/src -DUSE_JEMALLOC -I../deps/jemalloc/include >> .make-settings
echo PREV_FINAL_LDFLAGS= -g -ggdb -rdynamic >> .make-settings
(cd ../deps && make hiredis linenoise lua jemalloc)
make[2]: 进入目录“/usr/local/redis-5.0.7/deps”
(cd hiredis && make clean) > /dev/null || true
(cd linenoise && make clean) > /dev/null || true
(cd lua && make clean) > /dev/null || true
(cd jemalloc && [ -f Makefile ] && make distclean) > /dev/null || true
(rm -f .make-*)
(echo "" > .make-cflags)
(echo "" > .make-ldflags)
MAKE hiredis
cd hiredis && make static
make[3]: 进入目录“/usr/local/redis-5.0.7/deps/hiredis”
gcc -std=c99 -pedantic -c -O3 -fPIC -Wall -W -Wstrict-prototypes -Wwrite-strings -g -ggdb net.c
make[3]: gcc:命令未找到
make[3]: *** [net.o] 错误 127
make[3]: 离开目录“/usr/local/redis-5.0.7/deps/hiredis”
make[2]: *** [hiredis] 错误 2
make[2]: 离开目录“/usr/local/redis-5.0.7/deps”
make[1]: [persist-settings] 错误 2 (忽略)
CC adlist.o
/bin/sh: cc: 未找到命令
make[1]: *** [adlist.o] 错误 127
make[1]: 离开目录“/usr/local/redis-5.0.7/src”
make: *** [all] 错误 2
出现错误了!怎么办?发现需要gcc环境,也就是说redis是需要gcc环境进行编译的。
所以安装gcc环境:
[root@localhost ~]# yum install gcc gcc-c++
提示信息如下:
已安装:
gcc.x86_64 0:4.8.5-39.el7 gcc-c++.x86_64 0:4.8.5-39.el7
作为依赖被安装:
cpp.x86_64 0:4.8.5-39.el7 glibc-devel.x86_64 0:2.17-292.el7 glibc-headers.x86_64 0:2.17-292.el7 kernel-headers.x86_64 0:3.10.0-1062.9.1.el7 libmpc.x86_64 0:1.0.1-3.el7 libstdc++-devel.x86_64 0:4.8.5-39.el7 mpfr.x86_64 0:3.1.1-4.el7
完毕!
这时需要重新安装安装redis
删除原目录文件,并进入目录重新编译。
[root@localhost local]# rm -rf redis-5.0.7/
[root@localhost local]# tar -xzf redis-5.0.7.tar.gz
[root@localhost local]# cd redis-5.0.7/
[root@localhost redis-5.0.7]# make
当出现时,证明安装完成:
Hint: It's a good idea to run 'make test' ;)
make[1]: 离开目录“/usr/local/redis-5.0.7/src
5,执行make test ,验证是否编译成功,又报错了,错误提示是tcl的问题,需要安装tcl。
[root@localhost redis-5.0.7]# make test
cd src && make test
make[1]: 进入目录“/usr/local/redis-5.0.7/src”
CC Makefile.dep
make[1]: 离开目录“/usr/local/redis-5.0.7/src”
make[1]: 进入目录“/usr/local/redis-5.0.7/src”
You need tcl 8.5 or newer in order to run the Redis test
make[1]: *** [test] 错误 1
make[1]: 离开目录“/usr/local/redis-5.0.7/src”
make: *** [test] 错误 2
安装tcl
[root@localhost redis-5.0.7]# yum install -y tcl
6,当make test显示以下结果时,如果不幸的是结果出现了这个
!!! WARNING The following tests failed:
*** [err]: Active defrag big keys in tests/unit/memefficiency.tcl
Expected condition '$max_latency <= 120' to be true (165 <= 120)
Cleanup: may take some time... OK
make[1]: *** [test] 错误 1
make[1]: 离开目录“/usr/local/redis-5.0.7/src”
make: *** [test] 错误 2
又双叕出错了,这是什么错误呢?(这TM还让不让人安装了),别急
我们找到了这篇文章,redis make test时出现Active defrag big keys in tests/unit/memefficiency.tcl
链接:https://blog.csdn.net/qq_36711420/article/details/83416155
大概意思就是,你的服务器配置低,给你做了个警告。但只是警告而已。所以可以不用理会。
但如果正常运行会出现字样,说明make test成功。
7,运行make install命令,将命令安装到/usr/local/bin目录
[root@localhost redis-5.0.7]# make install
cd src && make install
make[1]: 进入目录“/usr/local/redis-5.0.7/src”
Hint: It's a good idea to run 'make test' ;)
INSTALL install
INSTALL install
INSTALL install
INSTALL install
INSTALL install
make[1]: 离开目录“/usr/local/redis-5.0.7/src
8,启动服务
[root@localhost redis-5.0.7]# redis-server
出现如下界面,说明启动成功。
9,测试通过redis-cli命令连接redis,输入ping
,redis会为我们返回PONG,同ip另开一个命令窗口。如下,说明成功。
[root@localhost ~]# redis-cli
127.0.0.1:6379> ping
PONG
127.0.0.1:6379>
10,停止服务,退出redis-cli,直接在系统命令行下输入redis-cli shutdown
,前面启动服务的窗口会输出如下图信息:
[root@localhost ~]# redis-cli
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> exit
[root@localhost ~]# redis-cli shutdown
[root@localhost ~]#
而此时第一个命令窗口下会显示:
说明没问题。
三,设置redis配置文件
1,复制redis配置文件,将redis目录的redis.conf复制到/etc/redis目录下,以备使用
[root@localhost redis-5.0.7]# cd /etc/
[root@localhost etc]# mkdir redis
[root@localhost etc]# cd redis/
[root@localhost redis]# cp /usr/local/redis-5.0.7/redis.conf /etc/redis/redis.conf
2,编辑/etc/redis/redis.conf配置文件,设置可以远程登录,找到这行注释掉bind 127.0.0.1
,如下图:
[root@localhost redis]# vi /etc/redis/redis.conf
编辑文本注释掉bind 127.0.0.1,大概第69行
# IF YOU ARE SURE YOU WANT YOUR INSTANCE TO LISTEN TO ALL THE INTERFACES
# JUST COMMENT THE FOLLOWING LINE.
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# bind 127.0.0.1
3,修改默认端口6379,编辑/etc/redis/redis.conf配置文件,找到port 6379
这一行,大概第92行。修改端口为6380或注释掉添加一行port 6380
,如下图:
# Accept connections on the specified port, default is 6379 (IANA #815344).
# If port 0 is specified Redis will not listen on a TCP socket.
# port 6379
port 6380
4,同时修改pidfile
,大概第159行。将其改为pidfile /var/run/redis_6380.pid
,修改目的是为了文件名上的端口和实际端口保持一致,方便通过服务方式启动、停止,如后面设置开机启动
# Creating a pid file is best effort: if Redis is not able to create it
# nothing bad happens, the server will start and run normally.
# pidfile /var/run/redis_6379.pid
pidfile /var/run/redis_6380.pid
5,设置redis服务后台运行,编辑/etc/redis/redis.conf配置文件,将daemonize
设置为yes,大概第137行。如下图
# By default Redis does not run as a daemon. Use 'yes' if you need it.
# Note that Redis will write a pid file in /var/run/redis.pid when daemonized.
# daemonize no
daemonize yes
6,设置访问密码,编辑/etc/redis/redis.conf配置文件,去掉requirepass
行的注释或添加一行,大概第507行。如下图
# Require clients to issue AUTH <PASSWORD> before processing any other
# commands. This might be useful in environments in which you do not trust
# others with access to the host running redis-server.
#
# This should stay commented out for backward compatibility and because most
# people do not need auth (e.g. they run their own servers).
#
# Warning: since Redis is pretty fast an outside user can try up to
# 150k passwords per second against a good box. This means that you should
# use a very strong password otherwise it will be very easy to break.
#
# requirepass foobared
requirepass hrlee520.
注意:由于redis性能非常好,为防止暴力破解,密码需要配置的一大长串足够复杂的字符串,不考虑人是否能记住。
6,启动redis并指定配置文件为我们刚才修改的/etc/redis/redis.conf配置文件,服务启动后就不像前面那样输出redis图形信息的内容了。
[root@localhost redis]# redis-server /etc/redis/redis.conf
# oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
# Redis version=5.0.7, bits=64, commit=00000000, modified=0, pid=26, just started
# Configuration loaded
[root@localhost redis]#
7,测试
[root@localhost redis]# redis-cli
Could not connect to Redis at 127.0.0.1:6379: Connection refused
not connected> exit
[root@localhost redis]# redis-cli -p 6380
127.0.0.1:6380>
127.0.0.1:6380> ping
(error) NOAUTH Authentication required.
127.0.0.1:6380> auth hrlee520.
OK
127.0.0.1:6380> ping
PONG
127.0.0.1:6380>
由于开启了远程访问,所以在其他电脑上也可以访问,通过-h
指定ip,-p
指定端口,如我redis服务器id为192.168.23.131:
[root@localhost src] ./redis-cli -p 6380 -h 192.168.23.131
192.168.23.131:6380> ping
(error) NOAUTH Authentication required.
192.168.23.131:6380> auth hrlee520.
OK
192.168.16.125:6380> ping
PONG
192.168.16.125:6380>
7、停止服务
四,设置redis开机启动
1,复制开机启动脚本,在redis目录的utils包下,有一个redis_init_script文件,我们复制到/etc/init.d/目录下,并将文件名改为redis。
[root@localhost redis]# cp /usr/local/redis-5.0.7/utils/redis_init_script /etc/init.d/redis
2,(非必须)修改/etc/redis/redis.conf
文件名为/etc/redis/6380.conf
,此修改非必须,不修改的话可以在步骤3指定配置文件路径
[root@localhost ~]# mv /etc/redis/redis.conf /etc/redis/6380.conf
3,编辑/etc/init.d/redis启动脚本,脚本说明如下:
#!/bin/sh
#
# 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=6380
# redis-server路径,由于我们是make install默认的路径,无需修改
EXEC=/usr/local/bin/redis-server
# redis-cli路径
CLIEXEC=/usr/local/bin/redis-cli
PIDFILE=/var/run/redis_${REDISPORT}.pid
# redis配置文件路径,默认/etc/redis/端口号.conf,所以我们步骤2修改了配置文件的名字,不要步骤2可以直接修改这里路径
CONF="/etc/redis/${REDISPORT}.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 ..."
# 因为设置了密码,所以此处增加 -a 密码
$CLIEXEC -p $REDISPORT -a 123456 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
详细解释如下:
4,测试启动脚本,启动服务systemctl start redis
,停止服务systemctl stop redis
[root@localhost ~]# systemctl start redis
[root@localhost ~]# systemctl stop redis
5,设置开机启动
[root@localhost ~]# chkconfig --add redis
6,重启系统,redis服务即随系统启动。
[root@localhost init.d]# reboot
到此,第一部分redis联网安装及配置,开启启动都完成。
如果你的机器没有网络时,如何安装redis呢?
五,免编译版redis免编译安装
其实很简单,相对于联网版。由于免编译版不需要编译环境,所以满足于无gcc环境。也就不用使用gcc编译环境了。
1,将文件解压到如root下/,即可
2,跳过了安装环节,直接继续联网状态下配置文件部分即可。
六,离线版安装redis
离线版安装相对免编译版较复杂。如果没有免编译文件,只有redis的安装文件,需要额外配置运行环境,对于一个干净的服务器来说,需要先把环境搭建好,才能安装redis。
1,离线包准备
大家可以自己去搜索下载这些包。也可通过稍后我提供链接下载。
redis离线包
redis-5.0.7.tar.gz
gcc环境包
其他操作工具包
将所有rpm格式文件,放入一个文件夹package下。
创建package
[root@localhost]# cd home/
[root@localhost home]# mkdir package
执行安装命令
将这些包上传到待安装的系统中,执行安装命令:
rpm -ivh *.rpm --nodeps --force
或rpm -ivh *.rpm
如不嫌麻烦,也可以按如下顺序执行安装命令:
rpm -ivh mpfr-3.1.1-4.el7.x86_64.rpm
rpm -ivh libmpc-1.0.1-3.el7.x86_64.rpm
rpm -ivh kernel-headers-3.10.0-862.el7.x86_64.rpm
rpm -ivh glibc-headers-2.17-222.el7.x86_64.rpm
rpm -ivh glibc-devel-2.17-222.el7.x86_64.rpm
rpm -ivh cpp-4.8.5-28.el7.x86_64.rpm
rpm -ivh gcc-4.8.5-28.el7.x86_64.rpm
.....
执行完后,就可以继续安装redis了。
3,安装redis完成后,可以直接继续联网状态下配置文件部分即可。
七,我将提供下载redis,大家可以下载下来,后续使用。
CSDN下载地址:https://download.csdn.net/download/hrlee520/12047500
当然对于无积分下载的小伙伴,提供了如下地址,也希望给与一点点支持。
原创不易,资源有价,知识无价!
免费下载地址
百度云:https://pan.baidu.com/s/1Az2gyMM3Rq2OW9n0-xU90A
微信搜索 “智数智媒” 关注公众号,查看文章,输入“redismake”,获取百度云提取码!更多免费资源,就在“智数智媒”!
遇到什么问题请及时联系我们!
来源:CSDN
作者:hrlees
链接:https://blog.csdn.net/hrlee520/article/details/103665450