【Linux】Redis 离线安装

下载并解压Redis

执行下面的命令下载redis:

1
wget https://download.redis.io/releases/redis-6.2.6.tar.gz

解压redis:

1
tar xzf redis-6.2.6.tar.gz

移动redis目录,一般都会将redis目录放置到 /usr/local/redis目录:

1
mv redis-6.2.6 /usr/local/redis

编译并安装redis

进入redis安装目录,执行make命令编译redis:

1
2
cd /usr/local/redis
make

等待make命令执行完成即可。

如果执行make命令报错:cc 未找到命令,原因是虚拟机系统中缺少gcc,执行下面命令安装gcc:

1
yum -y install gcc automake autoconf libtool make

如果执行make命令报错:致命错误:jemalloc/jemalloc.h: 没有那个文件或目录,则需要在make指定分配器为libc。执行下面命令即可正常编译:

1
make MALLOC=libc

make命令执行完,redis就编译完成了。

执行下面命令安装redis,并指定安装目录

1
make install PREFIX=/usr/local/redis

image-20240617144514525

至此,redis即安装成功。

启动redis

进入redis安装目录,执行下面命令启动redis服务

1
2
3
4
# 启动
./bin/redis-server redis.conf
# 关闭
./bin/redis-cli shutdown

此时,可以看到redis服务被成功启动:

image-20240617144725136

但这种启动方式不能退出控制台,如果退出,那么redis服务也会停止。如果想要redis以后台方式运行,需要修改redis的配置文件:redis.conf。将该配置文件中的daemonize no改为daemonize yes即可:

修改完成后,重新执行启动命令启动redis,然后通过下面命令查看redis进程,可以发现redis服务已经被启动了:

1
ps -ef | grep redis

其他设置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
daemonize:如需要在后台运行,把该项的值改为yes

pdifile:把pid文件放在/var/run/redis.pid,可以配置到其他地址

bind:指定redis只接收来自该IP的请求,如果不设置,那么将处理所有请求,在生产环节中最好设置该项

(设置0.0.0.0 则改为用iptables来控制访问权限)

port:监听端口,默认为6379

timeout:设置客户端连接时的超时时间,单位为秒

loglevel:等级分为4级,debug,revbose,notice和warning。生产环境下一般开启notice

logfile:配置log文件地址,默认使用标准输出,即打印在命令行终端的端口上

database:设置数据库的个数,默认使用的数据库是0

save:设置redis进行数据库镜像的频率

rdbcompression:在进行镜像备份时,是否进行压缩

dbfilename:镜像备份文件的文件名

dir:数据库镜像备份的文件放置的路径

slaveof:设置该数据库为其他数据库的从数据库

masterauth:当主数据库连接需要密码验证时,在这里设定

requirepass:设置客户端连接后进行任何其他指定前需要使用的密码

maxclients:限制同时连接的客户端数量

maxmemory:设置redis能够使用的最大内存

appendonly:开启appendonly模式后,redis会把每一次所接收到的写操作都追加到appendonly.aof文件中,当redis重新启动时,会从该文件恢复出之前的状态

appendfsync:设置appendonly.aof文件进行同步的频率

vm_enabled:是否开启虚拟内存支持

vm_swap_file:设置虚拟内存的交换文件的路径

vm_max_momery:设置开启虚拟内存后,redis将使用的最大物理内存的大小,默认为0

vm_page_size:设置虚拟内存页的大小

vm_pages:设置交换文件的总的page数量

vm_max_thrrads:设置vm IO同时使用的线程数量

通过redis-cli测试redis是否可用,在redis安装目录执行下面命令:

1
./bin/redis-cli

image-20240617144907738

此处我们通过下面命令随便set一个字符串类型的值,key是test,value是hello:

1
set test hello

image-20240617145110416

然后通过下面命令get出test这个key的value值:

1
get test

image-20240617145127840

测试没有问题,至此,redis在我们的Linux服务器上就已经安装完成了。

开机自启

1
vim /usr/lib/systemd/system/redis.service

注意:–daemonize no 为必须的,要不然起不来

1
2
3
4
5
6
7
8
9
[Unit]
Description = Redis Server
After = network.target
[Service]
ExecStart = /usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf --daemonize no
ExecStop = /usr/local/redis/bin/redis-cli -p 6379 shutdown
Restart = always
[Install]
WantedBy = multi-user.target
1
2
3
4
5
6
7
8
9
10
11
12
# 重新加载服务
systemctl daemon-reload
# 开机自动启动
systemctl enable redis.service
# 取消开机自动启动(卸载服务)
systemctl disabled redis.service
# 启动redis服务
systemctl start redis.service
# 查看服务状态
systemctl status redis.service
# 停止服务
systemctl stop redis.service