Redis 安装与基本使用


文章目录

  • Redis 安装与基本使用
  • Redis 简介
  • Redis 安装 (Linux)
  • Redis 启动
  • 默认启动
  • 指定配置启动
  • 开机自启
  • Redis客户端
  • Redis命令行客户端
  • 基本命令


Redis 简介

  • Redis (REmote DIctionary Server) 是用 C 语言开发的一个开源的高性能键值对(key-value)数据库。
  • 特点:
  1. 数据间没有必然的关联关系
  2. 内部采用单线程机制进行工作
  3. 高性能。官方提供测试数据,50个并发执行100000 个请求,读的速度是110000 次/s,写的速度是81000次/s。
  4. 多数据类型支持
  • 字符串类型 string
  • 列表类型 list
  • 散列类型 hash
  • 集合类型 set
  • 有序集合类型 sorted_set
  1. 持久化支持。可以进行数据灾难恢复

Redis 安装 (Linux)

  • 安装在Linux服务器中, 以centos 7为例
  • Redis是基于C语言编写的,因此首先需要安装Redis所需要的gcc依赖:
yum install -y gcc tcl
  • 这个命令是在Linux系统中使用Yum包管理器安装gcc和tcl软件包。
  • gcc是GNU编译器集合,用于编写和编译C、C++和其他编程语言的程序,
  • tcl是一个脚本语言,可以用于创建各种不同类型的应用程序。
  • 通过执行这个命令,你可以轻松地在Linux系统中安装这两个软件包,并准备好开始编写和编译代码。

如果系统已经安装了gcc和tcl,并且gcc和tcl已经是最新版本,无需更新。因此,输出信息中显示“已安装并具有最新版本”,最后提示“无需进行任何操作”。可以认为该系统已经安装好了gcc和tcl软件包,并且它们已准备好在该系统上使用。

  • 去官网下载安装包 : https://redis.io/download/
  • 下载链接:https://download.redis.io/releases/redis-6.2.11.tar.gz
  • 可以使用 curl 命令或者 wget 命令。以下是两个命令的例子:
  • 使用 curl 命令:
curl -O https://download.redis.io/releases/redis-6.2.11.tar.gz
  • 使用 wget 命令:
wget https://download.redis.io/releases/redis-6.2.11.tar.gz

两个命令的作用是相同的,都会下载该文件。其中 -O 参数表示将文件保存到本地,并使用远程文件名(即不改变文件名)。如果你想要指定本地文件名,可以将 -O 后面的参数替换成你需要的文件名。请注意,这些命令在 Linux 系统中通常已经预装。

tips: curlwget 都是用于从网络上获取文件的命令行工具,它们的主要区别在于使用方式、功能和支持的协议等方面。

一些常见的区别包括:

  • 使用方式:curl 命令更加灵活,可以执行更复杂的任务,例如发送 POST 请求或设置请求头信息。而 wget 命令则更加简单,可以快速下载整个网站或递归下载目录。
  • 支持的协议:curl 支持多种协议,包括 HTTP、HTTPS、FTP、IMAP、POP3、SMTP 等,而 wget 主要支持 HTTP、HTTPS 和 FTP 协议。
  • 功能:curl 命令提供了许多高级功能,如支持断点续传、HTTP 认证、代理、cookie 管理等。而 wget 命令则不支持所有这些功能,但提供了一些类似的选项。

因此,在选择使用哪个命令时,需要根据具体的需求来判断。如果你需要一个强大且灵活的工具来处理各种网络请求,那么 curl 可能更适合你;如果你只是需要简单地下载文件或者整个网站,那么 wget 可能更适合你。

  • 这里以wget命令为例演示
  • 已经下载成功!
  • 若是Linux下载过慢, 可以通过本地Windows电脑下载, 再通过MobaXterm软件上传到Linux服务器中

解压压缩包

  • tar -xzf redis-6.2.11.tar.gz
  • 进入redis目录,运行编译命令:
cd redis-6.2.11
make && make install
  • 默认的安装redis软件是在 /usr/local/bin目录下:ll /usr/local/bin/

这个命令是列出 /usr/local/bin/ 目录下的所有文件和目录,其中 llls -l 命令的一个别名,表示以长格式显示目录内容。在Linux或Unix系统中,/usr/local/bin 是一个存放可执行文件的标准目录,通常用于安装自定义软件。使用该命令可以快速查看该目录下的所有文件及其相关权限、所有者、大小等信息。

  • 该目录以及默认配置到环境变量,因此可以在任意目录下运行这些命令。其中:
  • redis-cli:是redis提供的命令行客户端
  • redis-server:是redis的服务端启动脚本
  • redis-sentinel:是redis的哨兵启动脚本

Redis 启动

redis的启动方式有很多种,例如:

  • 默认启动
  • 指定配置启动
  • 开机自启

默认启动

安装完成后,在任意目录输入redis-server命令即可启动Redis:

redis-server

如图:

redis6.2.1 redis6.2.1 aof太大,启动慢_linux

这种启动属于前台启动,会阻塞整个会话窗口,窗口关闭或者按下CTRL + C则Redis停止。不推荐使用。

指定配置启动

如果要让Redis以后台方式启动,则必须修改Redis配置文件,就在我们之前解压的redis安装包下文件名为redis.conf

redis6.2.1 redis6.2.1 aof太大,启动慢_数据库_02

如果不知道配置文件在哪, 可以输入下面的命令进行查找:

sudo find / -name redis.conf 2> /dev/null

find 命令用于在指定目录结构下查找文件,-name 参数指定要查找的文件名模式。这个命令的作用是以超级用户身份在整个系统中查找名为 redis.conf 的文件,并将搜索过程中产生的错误输出忽略掉。

redis6.2.1 redis6.2.1 aof太大,启动慢_Redis_03

找到文件后先进入到该目录

我们先将这个配置文件备份一份(以后出啥问题可以改回来):

cp redis.conf redis.conf.bck

redis6.2.1 redis6.2.1 aof太大,启动慢_数据库_04

然后修改redis.conf文件中的一些配置:

输入vi redis.conf 进入vi编辑器,配置内容如下:

# 允许访问的地址,默认是127.0.0.1,会导致只能在本地访问。修改为0.0.0.0则可以在任意IP访问,生产环境不要设置为0.0.0.0
bind 0.0.0.0
# 守护进程,修改为yes后即可后台运行
daemonize yes 
# 密码,设置后访问Redis必须输入密码
requirepass 12345678

# 监听的端口
port 6379
# 工作目录,默认是当前目录,也就是运行redis-server时的命令,日志、持久化等文件会保存在这个目录
dir .
# 数据库数量,设置为1,代表只使用1个库,默认有16个库,编号0~15
databases 1
# 设置redis能够使用的最大内存
maxmemory 512mb
# 日志文件,默认为空,不记录日志,可以指定日志文件名
logfile "redis.log"

如找不到则可以用搜索功能, /bind即/加搜索的名称,即可跳到对应的内容。按a进入编辑

在vi编辑器中,搜索文本是通过在命令模式下使用“/”或“?”命令来实现的。搜索操作处于命令模式下。

使用“/”命令可向前搜索指定的字符串,而使用“?”命令则向后搜索指定的字符串。在执行搜索操作后,用户可以使用n和N命令来查找下一个或上一个匹配项。

redis6.2.1 redis6.2.1 aof太大,启动慢_数据库_05

  • 将bind 127.0.0.1注释掉, 添加bind 0.0.0.0

ESC退到命令模式下, 继续搜索\daemon

redis6.2.1 redis6.2.1 aof太大,启动慢_Redis_06

  • 守护进程,修改为yes后即可后台运行 daemonize yes

redis6.2.1 redis6.2.1 aof太大,启动慢_linux_07

  • 修改密码: 12345678

redis6.2.1 redis6.2.1 aof太大,启动慢_数据库_08

  • 添加日志文件

redis6.2.1 redis6.2.1 aof太大,启动慢_数据库_09

修改上述四处即可, 其余的可按需求修改。按Esc键, 输入:wq保存并退出

启动Redis:

# 进入redis安装目录 , 主要是用到redis.conf文件
cd /home/mydownload/redis-6.2.11
# 启动,使用配置文件的形式启动
redis-server redis.conf

使用 ps -ef | grep redis查看启动的redis的进程

redis6.2.1 redis6.2.1 aof太大,启动慢_linux_10

停止服务:

# 利用redis-cli来执行 shutdown 命令,即可停止 Redis 服务,
# 因为之前配置了密码,需要输入密码
# 执行命令 redis-cli -h <hostname_or_ip> -a <password> shutdown
#其中的hostname可以使用下面的命令查看
hostname
#再输入
redis-cli -h localhost.localdomain -a 12345678 shutdown
# 查看redis进程
ps -ef | grep redis

redis6.2.1 redis6.2.1 aof太大,启动慢_redis_11

开机自启

我们也可以通过配置来实现开机自启。

首先,新建一个系统服务文件:

vi /etc/systemd/system/redis.service

内容如下:

按A插入文本, 输入下面的内容(可能一些地方需要修改比如redis-server和redis.conf的路径要更改)

[Unit]
Description=redis-server
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/bin/redis-server /home/mydownload/redis-6.2.11/redis.conf
PrivateTmp=true

[Install]
WantedBy=multi-user.target

上述内容用于启动和管理Redis服务器进程。

[Unit] Description=redis-server After=network.target

这部分定义了服务的名称和它所依赖的其他服务(在这里是网络服务)。当系统启动时,所有必须的服务都要先启动,然后才能启动当前服务。

[Service] Type=forking ExecStart=/usr/local/bin/redis-server /home/mydownload/redis-6.2.11/redis.conf PrivateTmp=true

这部分定义了服务的类型、启动命令和服务是否使用私有临时文件。Type=forking表示该服务会fork一个子进程来运行Redis服务器,而父进程将退出。ExecStart指定了服务的启动命令,即通过在终端中执行的命令,以启动Redis服务,ExecStart=/usr/local/bin/redis-server /home/mydownload/redis-6.2.11/redis.conf,其中/usr/local/bin/redis-server 是 Redis 服务器程序的可执行文件路径(不同系统安装路径可能不一样,注意查看),它被用于启动 Redis 服务器进程。/home/mydownload/redis-6.2.11/redis.conf为redis配置文件的路径,注意配置文件的路径, 根据自己安装的路径修改。PrivateTmp=true表示服务将使用私有的临时文件夹。

Tips:若不知道redis-server的可执行文件路径和redis.conf配置文件的路径,可以使用 which 命令来查找可执行文件的位置,比如查询redis-server的可执行文件路径命令:which redis-server;查找redis.conf的路径命令:sudo find / -name redis.conf 2> /dev/null

[Install] WantedBy=multi-user.target

这部分将服务安装在系统启动时需要启动的目标文件中,以确保在系统重新启动时自动启动服务。在这种情况下,服务将在多用户目标(multi-user.target)下启动。

redis6.2.1 redis6.2.1 aof太大,启动慢_linux_12

ESC键,输入:wq保存并退出,然后重载系统服务:

systemctl daemon-reload

redis6.2.1 redis6.2.1 aof太大,启动慢_redis_13

现在,我们可以用下面这组命令来操作redis了:

# 启动
systemctl start redis
# 停止
systemctl stop redis
# 重启
systemctl restart redis
# 查看状态
systemctl status redis

redis6.2.1 redis6.2.1 aof太大,启动慢_redis_14

执行下面的命令,可以让redis开机自启:

systemctl enable redis

redis6.2.1 redis6.2.1 aof太大,启动慢_Redis_15

Redis客户端

安装完成Redis,我们就可以操作Redis,实现数据的CRUD了。这需要用到Redis客户端,包括:

  • 命令行客户端
  • 图形化桌面客户端
  • 编程客户端

Redis命令行客户端

Redis安装完成后就自带了命令行客户端:redis-cli,使用方式如下:

redis-cli [options] [commonds]

其中常见的options有:

  • -h 127.0.0.1:指定要连接的redis节点的IP地址,默认是127.0.0.1
  • -p 6379:指定要连接的redis节点的端口,默认是6379
  • -a 123321:指定redis的访问密码

其中的commonds就是Redis的操作命令,例如:

  • ping:与redis服务端做心跳测试,服务端正常会返回pong

输入redis-cli -a 12345678 进入Redis命令行客户端

redis6.2.1 redis6.2.1 aof太大,启动慢_Redis_16

或者不指定commond时,会进入redis-cli的交互控制台:再输入auto 12345678 进入Redis客户端的命令行

redis6.2.1 redis6.2.1 aof太大,启动慢_redis_17

基本命令

  • 信息添加: set key value
  • 功能:设置 key,value 数据
  • 信息查询: get key
  • 功能:根据 key 查询对应的 value,如果不存在,返回空(nil)在Redis中nil就是null
  • 清除屏幕信息: clear (Linux系统下的命令, Windows的命令行清屏是cls)
  • 功能:清除屏幕中的信息
  • 退出客户端命令行模式: quit 或 exit 或<ESC>键
  • 功能:退出客户端
  • 帮助
  • 功能:获取命令帮助文档,获取组中所有命令信息名称
help 命令名称
help @组名

redis6.2.1 redis6.2.1 aof太大,启动慢_Redis_18

Redis默认有16个仓库,编号从0至15. 通过配置文件可以设置仓库数量,但是不超过16,并且不能自定义仓库名称。

  • 如果是基于redis-cli连接Redis服务,可以通过select命令来选择数据库:
# 选择 0号库
select 0

redis6.2.1 redis6.2.1 aof太大,启动慢_redis_19

redis6.2.1 redis6.2.1 aof太大,启动慢_Redis_20