大多数企业都是基于Linux服务器来部署项目,而且Redis官方也没有提供Windows版本的安装包,因此你在网上找的Windows的redis都不是由redis官方提供的,而是由微软自己编译出来的。因此课程中我们会基于Linux系统来安装Redis.
此处选择的Linux版本为CentOS 7
文章目录
一、官网安装
Redis的官方网站地址:https://redis.io/
点进来后会发现它有三个下载的版本
Redis Enterprise Software (Redis ES)
:Redis Enterprise Software 是一个为企业设计的 Redis 版本,提供了额外的合规性、可靠性和可扩展性功能。Redis OSS (Redis Open Source Software)
:Redis OSS 是 Redis 的开源版本,是一个高性能的内存数据存储,被广泛用于缓存、会话管理、消息代理等场景。这个也是我们待会会下载的版本。Redis Stack
:Redis Stack 是 Redis 的扩展,包含了 Redis OSS 的所有功能,并增加了一些额外的模块,提供更多的数据结构和处理能力。Redis Insight
:Redis Insight 是一个图形化工具,用于可视化和优化 Redis 数据。
找到 Redis OSS
,然后点击红框
![image-20240522170700217](https://img-blog.csdnimg.cn/img_convert/923a7cd0e2bbe4f88039441c8332e503.png)
选择安装在Linux系统上
虽然按照它的步骤来安装即可。
点击 Commands
,即redis的相关命令
进来后,这里就包含了redis所有的命令,如果忘记了,就可以到官网查看帮助文档,每个命令是干什么的都有。
另外 Clients
是redis官方提供的一些各种语言的客户端。
二、CentOS安装Redis
1)安装Redis依赖
Redis是基于C语言编写的,因此首先需要安装Redis所需要的gcc依赖:
yum install -y gcc tcl
2)上传安装包并解压
然后将课前资料提供的Redis安装包上传到虚拟机的任意目录:
例如,我放到了/usr/local/src(这个目录一般就是来放一些安装文件的) 目录:
解压缩:
tar -xzf redis-6.2.6.tar.gz
解压后:
进入redis目录:
cd redis-6.2.6
运行编译命令:
make:编译
makeinstall:安装
make && make install
如果没有出错,应该就安装成功了。
默认的安装路径是在 /usr/local/bin
目录下:
该目录以及默认配置到环境变量,因此可以在任意目录下运行这些命令。
- redis-cli:是redis提供的命令行客户端
- redis-server:是redis的服务端启动脚本
- redis-sentinel:是redis的哨兵启动脚本
三、启动
安装完成后,redis就已经加入到环境变量了,可以在任意目录下运行
redis的启动方式有很多种,例如:
- 默认启动
- 指定配置启动
- 开机自启
cd -:回到刚才的目录
1)默认启动
安装完成后,在任意目录输入redis-server命令即可启动Redis:
redis-server
运行后就会弹出如下图的界面,这个就是redis的运行日志界面了,版本是6.2.6,端口是6379,进程ID,官方网站,logo
这种启动属于前台启动
,会阻塞整个会话窗口,如果你想要和redis建立连接,那就需要重新打开一个窗口,创建建立连接,如果关闭当前窗口,那么redis也就被停止了。
因此这种方式是一种不友好的方式,窗口关闭或者按下 CTRL + C
则Redis停止。不推荐使用。
2)指定配置启动
① 配置配置文件
如果要让Redis以后台
方式启动,则必须修改Redis配置文件,并且指定配置文件启动。
配置文件就在我们之前解压的redis安装包下(/usr/local/src/redis-6.2.6
),名字叫redis.conf:
修改配置文件前,最好先做一个备份,备份完,将来修改错了,还能有一个文件让你去恢复。
cp redis.conf redis.conf.bck
然后修改redis.conf文件中的一些配置:
# 监听的地址,默认是127.0.0.1,会导致只能在本地访问,从外面访问就会拒绝。修改为0.0.0.0则可以在任意IP访问,但是生产环境不要设置为0.0.0.0,还是默认
bind 0.0.0.0
# 守护进程,修改为yes后即可后台运行
daemonize yes
# 密码,设置后访问Redis必须输入密码。如果任何人都能访问你的redis其实是有风险的,别人有可能会在你的电脑上执行一些脚本。
requirepass 123321
IP可能有多个地方,别看岔了,记得注释掉没有注释的
Redis的其它常见配置,可配可不配:
# 监听的端口,默认的就行了,除非被占用
port 6379
# 工作目录,默认是当前目录,也就是运行redis-server时的命令,日志、持久化等文件会保存在这个目录。
# 大白话:你在哪里启动redis,那么哪个目录就是你的工作目录
dir .
# 数据库数量,设置为1,代表只使用1个库,默认有16个库,编号0~15
# 这也是与MySQL不一样的地方,MySQL的库是可以随便创建的,但是redis的库是固定的,是提前创建好的,但是reids库的数量是可以控制的
databases 1
# 设置redis能够使用的最大内存
maxmemory 512mb
# 日志文件,默认为空,不记录日志,可以指定日志文件名,它默认产生在上面的dir .
logfile "redis.log"
② 启动Redis
# 进入redis安装目录
cd /usr/local/src/redis-6.2.6
# 启动并指定配置文件
redis-server redis.conf
执行完命令后可以发现没有任何日志输出,因为它已经变成后台运行了
通过 ps -ef | grep redis
可以看见redis有没有成功运行
③ 停止服务
方法一:直接杀死进程
kill -9 62214
方法二
# 利用redis-cli来执行 shutdown 命令,即可停止 Redis 服务,
# 因为之前配置了密码,因此需要通过 -u 来指定密码
redis-cli -u 123321 shutdown
3)开机自启
上面两种方式启动redis都比较麻烦,我们也可以通过配置来实现开机自启。
首先,新建一个系统服务文件:
vi /etc/systemd/system/redis.service
内容如下:
[Unit]
Description=redis-server
After=network.target
[Service]
Type=forking
# 前面是安装位置,后面是配置文件的目录,此时它就会使用前面命令启动,然后指定后面的配置文件,复制粘贴时记得把我删掉!
ExecStart=/usr/local/bin/redis-server /usr/local/src/redis-6.2.6/redis.conf
PrivateTmp=true
[Install]
WantedBy=multi-user.target
然后重载系统服务:
systemctl daemon-reload
有了这个服务后,此时并没有开机自启,它只是被系统管理了,因此需要通过 systemctl start redis
来启动redis
现在,我们可以用下面这组命令来操作redis了:
# 启动
systemctl start redis
# 停止
systemctl stop redis
# 重启
systemctl restart redis
# 查看状态
systemctl status redis
# 让redis开机自启
systemctl enable redis
sudo fuser -k 80/tcp
fuser命令列出了本地进程的进程号,那些本地进程使用file,参数指定的本地或远程文件。
-k:杀死访问指定文件的所有进程;
通过 ps -ef | grep redis
看redis有没有成功运行,如下图,可以发现已经成功启动,启动的时候是使用 redis-server
命令启动的,监听的端口是 6379
四、卸载
首先,通过下面的命令查看redis服务是否在运行
[root@localhost ~]# ps aux|grep redis
root 2553 0.2 0.1 41964 1916 ? Ssl 09:38 0:00 redis-server 127.0.0.1:6379
root 2565 0.0 0.0 6048 780 pts/0 S+ 09:39 0:00 grep redis
[root@localhost ~]#
可以看到,在6379端口,有redis-server的监听
通过下面的命令停止redis服务器。
[root@localhost ~]# redis-cli shutdown
[root@localhost ~]# ps aux|grep redis
root 2575 0.0 0.0 6048 780 pts/0 S+ 09:41 0:00 grep redis
[root@localhost ~]#
可以看到,已经停止了redis服务了。
需要注意的是,由于我的redis命令都安装到/usr/local/bin目录下面了,并且添加到环境变量PATH里面了,所以可以直接运行。
2、删除make的时候生成的几个redisXXX的文件
[root@localhost local]# ll /usr/local/bin
总用量 30908
-rwxr-xr-x. 1 root root 4985307 9月 2 21:13 redis-benchmark
-rwxr-xr-x. 1 root root 7185872 9月 2 21:13 redis-check-aof
-rwxr-xr-x. 1 root root 7185872 9月 2 21:13 redis-check-rdb
-rwxr-xr-x. 1 root root 5092475 9月 2 21:13 redis-cli
lrwxrwxrwx. 1 root root 12 9月 2 21:13 redis-sentinel -> redis-server
-rwxr-xr-x. 1 root root 7185872 9月 2 21:13 redis-server
[root@localhost local]# rm -f /usr/local/bin/redis*
[root@localhost local]# ll /usr/local/bin
总用量 0
[root@localhost local]#
3、顺便也删除掉解压后的文件目录和所以文件
[root@localhost local]# ll
总用量 40
drwxr-xr-x. 2 root root 4096 9月 3 09:43 bin
drwxr-xr-x. 2 root root 4096 9月 23 2011 etc
drwxr-xr-x. 2 root root 4096 9月 23 2011 games
drwxr-xr-x. 2 root root 4096 9月 23 2011 include
drwxr-xr-x. 2 root root 4096 9月 23 2011 lib
drwxr-xr-x. 2 root root 4096 9月 23 2011 libexec
drwxrwxr-x. 6 root root 4096 9月 2 21:11 redis
drwxr-xr-x. 2 root root 4096 9月 23 2011 sbin
drwxr-xr-x. 5 root root 4096 4月 1 04:48 share
drwxr-xr-x. 2 root root 4096 9月 23 2011 src
[root@localhost local]# rm -rf redis
[root@localhost local]# ll
总用量 36
drwxr-xr-x. 2 root root 4096 9月 3 09:43 bin
drwxr-xr-x. 2 root root 4096 9月 23 2011 etc
drwxr-xr-x. 2 root root 4096 9月 23 2011 games
drwxr-xr-x. 2 root root 4096 9月 23 2011 include
drwxr-xr-x. 2 root root 4096 9月 23 2011 lib
drwxr-xr-x. 2 root root 4096 9月 23 2011 libexec
drwxr-xr-x. 2 root root 4096 9月 23 2011 sbin
drwxr-xr-x. 5 root root 4096 4月 1 04:48 share
drwxr-xr-x. 2 root root 4096 9月 23 2011 src
[root@localhost local]#
这样,redis就卸载完成了。