1.前期准备:
(1)下载redis-6.2.6.tar.gz(如果已经下载,可跳过这一步)
网盘下载链接如下
https://pan.baidu.com/s/1yQmsw0EraOjNutwdWv0WOg?pwd=2586
(2)如果执行yum命令遇到镜像源的问题,可以看看我的这篇文章
在linux虚拟机上面配置Docker时所踩过的坑_docker 20.10.6设置镜像源不生效-优快云博客
(3)最好把Finalshell也下载好,具体下载教程详见如下文章:
保姆级教程下载finalshell以及连接云服务器基础的使用教程_finalshell下载安装-优快云博客
2.安装配置redis
(1)登录hadoop用户,把redis-6.2.6.tar.gz上传到/export/server目录并且解压到当前目录
代码如下
su - hadoop
cd /export/server
rz
接着解压
tar -zxvf redis-6.2.6.tar.gz -C /export/server
(2)先cd redis-6.2.6/,然后安装gcc
cd redis-6.2.6/
yum -y install gcc
查看gcc版本
gcc -v
(3)还是在redis-6.2.6/目录,执行make命令
make
效果如下
中间会显示一堆东西,大概要5分钟左右才能好
这时ll命令查看src命令有没有创建好,显然如下所示,已经创建好了
(4)进入src目录命令:cd src
安装到redis到指定目录命令:make install PREFIX=/export/server/prod/redis
cd src
make install PREFIX=/export/server/prod/redis
(5)创建etc目录命令:mkdir /export/server/prod/redis/etc
移动redis.conf配置文件:mv /export/server/redis-6.2.6/redis.conf /export/server/prod/redis/etc/
mkdir /export/server/prod/redis/etc
mv /export/server/redis-6.2.6/redis.conf /export/server/prod/redis/etc/
cd /export/server/prod/redis/etc/
ls
(6)配置redis为后台启动
vi /export/server/prod/redis/etc/redis.conf //把daemonize no 改成daemonize yes
vi /export/server/prod/redis/etc/redis.conf
进入文件后,为了快速找到daemonize no的位置,先点击esc键,然后输入“/daemonize”,就可以快速找到daemonize no的位置。
(6)切换到root用户,接着修改文件/etc/profile
代码如下:
su -
vi /etc/profile
添加以下内容(记得先进入插入模式)
export REDIS_HOME=/export/server/prod/redis
export PATH=$PATH:$REDIS_HOME/bin
保存并且退出
source /etc/profile
3.登录hadoop用户,开启redis服务并且启动redis
(1)登录hadoop用户,开启redis服务
su - hadoop
redis-server /export/server/prod/redis/etc/redis.conf
[hadoop@node1 ~]$ redis-server /export/server/prod/redis/etc/redis.conf
当然也可以吧redis.conf复制一份出来
cp /export/server/prod/redis/etc/redis.conf /export/server/begin_one_Redis.conf
然后启动
redis-server begin_one_Redis.conf
(2)启动redis并且尝试使用一下
redis-cli
[hadoop@node1 ~]$ redis-cli
127.0.0.1:6379> set wu 21
OK
127.0.0.1:6379> get wu
"21"
127.0.0.1:6379>
到这里,就基本上算是已经配置好了。
(3)关闭redis-server服务的命令如下:
redis-cli shutdown
效果如下:
[hadoop@node1 ~]$ redis-cli shutdown
4.参考文章
(1)Linux下安装Redis,及部分配置详情_linux下载redis-优快云博客
(3)在linux虚拟机上面配置Docker时所踩过的坑_docker 20.10.6设置镜像源不生效-优快云博客
(5)超强、超详细Redis数据库入门教程_redis学习系列-优快云博客
5.补充笔记
(1)通过vi命令进入linux的文件后,我想要快速跳转到daemonize no第一次出现的位置
在使用 `vi` 或 `vim` 编辑器时,您可以利用 `vim` 提供的强大搜索功能来快速跳转到指定的字符串(如 `daemonize no`)第一次出现的位置。
### 快速跳转到 `daemonize no` 第一次出现的位置:
1. **进入正常模式**:
如果您正在编辑文件并且处于插入模式(即您正在输入文本),按 `Esc` 键退出到正常模式。
2. **开始搜索**:
在正常模式下,输入 `/` 后跟您要查找的字符串,然后按 `Enter` 键。比如,要查找 `daemonize no`,可以输入:
```
/daemonize no
```
3. **跳转到第一次出现的位置**:
按下 `Enter` 后,`vi` 会自动将光标跳转到文件中 `daemonize no` 第一次出现的位置。如果存在该字符串,它会自动定位到第一个匹配的位置。
4. **如果想继续查找后续出现的匹配项**:
- 按 `n` 可以跳到下一个匹配位置。
- 按 `N` 可以跳到上一个匹配位置(反向查找)。
### 示例步骤:
假设您正在使用 `vi` 编辑文件,并且希望跳转到 `daemonize no`:
```bash
vi /etc/redis/redis.conf
```
然后在 `vi` 中:
1. 按 `Esc` 键确保处于正常模式。
2. 输入 `/daemonize no` 并按 `Enter`。
3. `vi` 会将光标跳转到 `daemonize no` 第一次出现的位置。
### 其他相关命令:
- **搜索区分大小写**:默认情况下,`/` 搜索是区分大小写的。如果您想进行不区分大小写的搜索,可以输入:
```
/daemonize no\c
```
- **高亮显示匹配项**:如果您希望在整个文件中高亮显示所有匹配项,可以在正常模式下输入以下命令启用高亮:
```
:set hlsearch
```
这样文件中的所有 `daemonize no` 匹配项会被高亮显示,帮助您更清晰地查看每个出现的位置。
这些方法能够帮助您快速、精准地定位文件中的特定内容。
(2)redis-server 前台启动redis服务后为什么输不了命令,要新开一个窗口才能输入命令
当你在前台启动 `redis-server` 后无法输入命令,这通常是因为 `redis-server` 进程在前台运行时占用了当前终端窗口,阻止了其他命令的输入。具体来说,Redis 服务器会占用当前的终端窗口进行输出和日志显示,而在该终端上无法直接输入新的命令。
### 解决方案
1. **新开一个终端窗口**:
正如你所提到的,最常见的做法是打开一个新的终端窗口,在新窗口中使用 `redis-cli` 来连接和操作 Redis 服务。这样,原来用来启动 Redis 服务的终端可以继续运行,日志输出不会被干扰。
2. **后台启动 Redis 服务**:
如果你希望在启动 Redis 服务后继续使用当前终端,可以将 Redis 服务放到后台运行。可以使用以下两种方法:
- **方法一:使用 `&` 符号将 Redis 进程放到后台**:
```bash
redis-server & # 在后台启动 Redis 服务
```
这样,Redis 服务就会在后台运行,你可以继续在当前终端窗口输入命令。
- **方法二:使用 `nohup` 命令使 Redis 服务在后台持续运行**:
```bash
nohup redis-server & # 即使退出终端,Redis 也会继续运行
```
`nohup` 命令会让 Redis 进程在后台运行,并且即使你退出终端会话,Redis 服务仍然会继续运行。输出日志会被默认保存到 `nohup.out` 文件中。
3. **通过 `screen` 或 `tmux` 使用会话管理**:
使用终端复用工具(如 `screen` 或 `tmux`)可以让你在一个终端窗口中创建多个虚拟终端会话。你可以在一个会话中启动 Redis 服务,在另一个会话中使用 `redis-cli` 命令来与 Redis 交互。
- 使用 `screen`:
```bash
screen # 启动一个新的会话
redis-server # 启动 Redis
# 按下 Ctrl+A,然后按D退出当前会话
```
这会将 Redis 服务启动在一个会话中,而你可以按 `Ctrl+A` 然后按 `D` 来分离该会话,之后重新连接使用 `screen -r`。
- 使用 `tmux`:
```bash
tmux # 启动一个新的 tmux 会话
redis-server # 启动 Redis
# 按下 Ctrl+B,然后按D分离当前会话
```
4. **使用 `redis-cli` 连接 Redis 服务**:
如果你已经有 Redis 服务器在后台运行,你可以通过 `redis-cli` 连接到 Redis 服务并进行交互。只需在新的终端窗口中运行:
```bash
redis-cli
```
默认情况下,`redis-cli` 会连接到本地的 `127.0.0.1` 地址上的 Redis 服务(端口为 6379)。如果需要连接其他 Redis 实例,可以使用以下命令:
```bash
redis-cli -h <host> -p <port>
```
### 总结:
当你通过 `redis-server` 在前台启动 Redis 服务时,当前终端会被 Redis 的输出占用,因此无法输入其他命令。你可以通过以下方法解决:
- 打开新的终端窗口,使用 `redis-cli` 命令与 Redis 交互。
- 使用 `&` 或 `nohup` 将 Redis 服务放到后台运行。
- 使用 `screen` 或 `tmux` 等终端复用工具,在同一个终端窗口中管理多个会话。
这些方法都可以让你在启动 Redis 后继续使用当前终端或通过其他终端进行交互。
(3)在两个窗口操作示例如下(不感兴趣可以跳过)
首先配置redis为前台启动
vi /export/server/prod/redis/etc/redis.conf //把daemonize yes 改成daemonize no
第一个窗口:
第二个窗口:
(4)有关保存的命令bgsave
bgsave
`BGSAVE` 命令是 Redis 中用于触发 **后台持久化操作**(RDB 快照)的命令。与 `SAVE` 命令不同,`BGSAVE` 命令不会阻塞 Redis 主进程,而是通过创建一个子进程来异步地将数据库数据保存到磁盘。
### `BGSAVE` 命令的基本用法:
```bash
BGSAVE
```
当执行 `BGSAVE` 命令时,Redis 会执行以下操作:
1. Redis 主进程会派发一个后台子进程来执行数据持久化(将内存中的数据保存到磁盘上的 `dump.rdb` 文件)。
2. 主进程继续处理来自客户端的请求,不会因为执行 RDB 快照操作而被阻塞。
3. 在执行过程中,新的数据修改会被累积到内存中,而 RDB 快照是在子进程创建时的数据状态的副本。
### 为什么使用 `BGSAVE`?
1. **非阻塞操作**:由于 `BGSAVE` 是后台操作,Redis 主进程不会被阻塞,因此可以继续处理其他客户端请求。对于高负载的 Redis 实例,`BGSAVE` 比 `SAVE` 更适合。
2. **适用于生产环境**:在生产环境中,避免长时间阻塞 Redis 进程非常重要。使用 `BGSAVE` 进行数据持久化时,客户端的请求不会受到影响,保证了高可用性和性能。
### 使用 `BGSAVE` 的流程:
1. **发起命令**:客户端发送 `BGSAVE` 命令。
```bash
BGSAVE
```
2. **Redis 执行后台保存**:
- Redis 会在后台启动一个子进程来进行快照保存。
- 子进程会将数据库的当前状态(内存中的数据)保存到磁盘中的 `dump.rdb` 文件。
3. **Redis 主进程继续服务**:
- Redis 主进程会继续处理客户端的其他请求,不会被阻塞。
4. **完成保存**:
- 当子进程完成 RDB 快照保存后,它会退出。保存过程结束,数据已经持久化到磁盘。
### 检查 `BGSAVE` 是否成功:
你可以使用 `INFO Persistence` 命令查看 Redis 的持久化状态,并确认 `BGSAVE` 是否成功执行。
```bash
INFO Persistence
```
在返回的信息中,如果有类似下面的内容,表示 `BGSAVE` 已成功启动并且正在进行:
```plaintext
rdb_bgsave_in_progress: 1
rdb_last_bgsave_status: OK
rdb_last_bgsave_time_seconds: 15
```
- `rdb_bgsave_in_progress: 1` 表示当前正在进行 `BGSAVE` 操作。
- `rdb_last_bgsave_status: OK` 表示上次 `BGSAVE` 操作成功。
- `rdb_last_bgsave_time_seconds` 显示上次 `BGSAVE` 操作的执行时间(单位:秒)。
### `BGSAVE` 和 `SAVE` 的区别:
- **`BGSAVE`**:通过后台子进程进行数据持久化,不会阻塞 Redis 主进程,因此不会影响 Redis 的正常操作和响应时间。
- **`SAVE`**:是同步的,会阻塞 Redis 主进程,直到 RDB 快照保存完成。因此,`SAVE` 可能会导致 Redis 停顿,影响性能,尤其在处理大量数据时。
### 何时使用 `BGSAVE`?
- 在生产环境中,特别是当 Redis 实例承载高负载时,`BGSAVE` 是首选命令。它能够确保数据被持久化,同时不会阻塞 Redis 主进程。
- 如果你有特殊需要,比如在某个时刻强制保存当前数据库的状态,可以使用 `BGSAVE`。
### 总结:
`BGSAVE` 命令用于在 Redis 中执行 **非阻塞的 RDB 快照持久化**,它通过后台子进程来保存数据,因此不会影响 Redis 的响应能力。对于高并发或需要高可用性的环境,使用 `BGSAVE` 是一个更好的选择。
(5)如果想要在idea的终端里面写代码,就可能需要调整一些设置,否则会有报错
详见这篇文章:idea连接云服务器上的redis报错:Failed to connect to any host resolved for DNS name.【已解决】-优快云博客
因为这篇文章里面的有一部分有一点问题,所以我自己又写了一篇文章
建议看看这一篇文章:
idea连接虚拟机上面的redis报错问题:Failed to connect to any host resolved for DNS name.【已成功解决】-优快云博客