Redis基础使用

Redis基础使用

下载

官网下载地址如下:

3.0:http://download.redis.io/releases/redis-3.0.0.tar.gz

4.0:http://download.redis.io/releases/redis-4.0.14.tar.gz

5.0:http://download.redis.io/releases/redis-5.0.14.tar.gz

6.2:http://download.redis.io/releases/redis-6.2.14.tar.gz

将 redis-5.0.4.tar.gz 拷贝到服务器 /usr/local/src/redis 目录下,使用 tar -zxvf redis-5.0.4.tar.gz 命令进行解压

也可以在 Linux 服务器终端执行wget命令,直接下载源码压缩包到当前目录,无需手动上传:

bash 复制代码
# 下载3.0.4版本
wget http://download.redis.io/releases/redis-3.0.4.tar.gz

# 下载4.0.14版本
wget http://download.redis.io/releases/redis-4.0.14.tar.gz

# 下载5.0.14稳定版
wget http://download.redis.io/releases/redis-5.0.14.tar.gz

如果直接访问官网下载速度慢,可使用国内镜像源,速度更快:

bash 复制代码
# 阿里云镜像下载5.0.14版本
wget https://mirrors.aliyun.com/redis/releases/redis-5.0.14.tar.gz

# 阿里云镜像下载6.2.14版本
wget https://mirrors.aliyun.com/redis/releases/redis-6.2.14.tar.gz

下面需要进入下载的 Redis 实例目录

bash 复制代码
cd /usr/local/src/redis/redis-5.0.4

Redis 的核心代码全部由 C 语言编写,而 C 语言属于编译型语言,源码必须先通过编译器转换成和当前操作系统 / 硬件架构匹配的二进制机器码(即可执行文件),电脑才能直接运行,而 make 就是自动化完成这一系列编译步骤的工具。并且由于 Redis 是跨平台软件,不同操作系统、不同硬件架构的机器码指令集和二进制格式不同,而源码包是通用的,make编译时会读取 Redis 的Makefile文件,并调用编译器自动检测你的系统环境,编译出适配当前环境的二进制可执行文件(如redis-server)。

bash 复制代码
make

安装目录如下:

其中 redis.conf 是 redis 的配置文件

port 用于设置 redis 进程的端口,默认是 6379

设置 redis 可远程访问(3.0默认允许,4.0需要手动设置)

默认是 bind 127.0.0.1,仅允许本地访问,修改为 bind 0.0.0.0,允许所有 IP 访问

另外还有预编译包安装 Redis 的方式在我这篇博客里有详细介绍 前后端分离项目 Springboot+vue 在云服务器上的部署

启动

前端模式启动

前端模式启动无需修改任何配置(默认daemonize=no),开箱即用

进入Redis安装目录的 src 目录,redis-server 是 Redis 的服务启动程序

bash 复制代码
./redis-server

Redis 直接占用当前终端,所有日志实时输出到终端;前端模式启动的缺点是ssh命令窗口关闭则 redis-server 程序结束,不推荐使用此方法。

后台启动

修改 redis.conf 配置文件, daemonize yes 后端模式启动

加载指定配置并启动 Redis

bash 复制代码
./src/redis-server ./redis.conf

查看 Redis 进程

bash 复制代码
ps -ef|grep redis

Redis 以守护进程形式运行在系统后台,终端可正常输入其他命令,即使关闭终端,Redis 进程仍持续运行;日志会输出到配置文件指定的日志文件。

终止 Redis 服务

bash 复制代码
./redis-cli shutdown

若端口号不是6379,那么需要将其更换成对应的端口号

bash 复制代码
./redis-cli -p 6380 shutdown

通过客户端向 Redis 服务端发送停止指令,服务端接收到指令后会按固定流程主动退出。

若如果直接用 kill 命令强制终止 Redis 进程,会导致数据丢失、文件损坏、资源泄漏、客户端异常。

为什么不能用 redis-server 停止?

redis-server 是 Redis 的启动程序,其核心功能是 "加载配置、启动服务进程",而非管理进程生命周期。若使用 ./redis-server shutdown 会报错,因为 redis-server 会把 shutdown 当成配置文件路径,而非停止指令。

启动客户端

进入Redis安装目录的 src 目录,redis-cli 连接已运行的 Redis 服务,启动客户端程序

bash 复制代码
./redis-cli

如果 Redis 服务运行在非 6379 端口,需加 -p 参数指定端口

PING 是 Redis 的 "心跳检测" 命令,核心作用是验证客户端和 Redis 服务端的连接是否通畅

启动多个redis进程

第一种方式:创建多个 redis 实例,分别启动各个 redis 实例。

安装新的 redis 实例后,修改新 redis 实例配置文件的端口号,避免端口冲突,启动时指定端口可在一台服务器启动多个redis进程

bash 复制代码
./redis-server ./redis.conf --port 6380

每个终端启动一个 redis-cli,可连接同一个或不同的 Redis 实例

另一种方式:同一台服务器上只有一套 Redis 安装程序,通过多个独立的配置文件,启动多个独立的 Redis 进程。

/usr/local/src/redis 下创建 conf 目录,用于存放所有的 conf 配置文件:

bash 复制代码
mkdir conf

基于原 redis.conf 复制配置文件,一份配置文件对应一个 Redis 节点:

bash 复制代码
cp ../redis-5.0.4/redis.conf redis_6379.conf
cp ../redis-5.0.4/redis.conf redis_6380.conf

修改各个配置文件内的端口号和 dbfilenam 快照文件名称,再启动各个 redis 进程

bash 复制代码
../redis-5.0.4/src/redis-server ./redis_6379.conf
../redis-5.0.4/src/redis-server ./redis_6380.conf

指定端口号停止 redis 进程

bash 复制代码
../redis-5.0.4/src/redis-cli -p 26380 shutdown

数据库操作

单个 Redis 实例默认划分16 个逻辑数据库,下标从0到15(这是 Redis 的默认配置,可修改但不推荐);

客户端连接 Redis 后,默认使用 0 号数据库,所有命令都作用于当前数据库;

redis 不支持修改数据库的名称,可通过 SELECT 命令切换到指定数据库,切换后所有操作仅对该数据库生效。

每个数据库的键是独立的,相同的键名在不同数据库中互不影响

清空库操作:

FLUSHDB 仅作用于当前数据库,只清空你当前选中的数据库,其他库数据完全保留;

FLUSHALL 作用于整个 Redis 实例清空,0-15 号所有数据库的所有数据。

FLUSHDB:

FLUSHALL:

相关推荐
zhangfeng11331 小时前
多台服务器同时训练llamfactory 大语言模型 国家超算中心 Slurm 是目前全球最主流的开源、高性能计算(HPC)集群资源管理与作业调度系统
服务器·语言模型·开源
不会写DN2 小时前
其实跨域问题是后端来解决的? CORS
服务器·网络·面试·go
JZC_xiaozhong8 小时前
数据不互通、审批慢?企业多系统智能协同与流程自动化解决方案
运维·自动化·流程管理·流程自动化·数据集成与应用集成·流程监控·流程可视化设计
爱学习的小囧8 小时前
ESXi 8.0 原生支持 NVMe 固态硬盘吗?VMD 配置详解教程
linux·运维·服务器·esxi·esxi8.0
NCIN EXPE8 小时前
redis 使用
数据库·redis·缓存
坚持就完事了8 小时前
Linux中的变量
linux·运维·服务器
hERS EOUS8 小时前
nginx 代理 redis
运维·redis·nginx
Cat_Rocky9 小时前
利用Packet Tracer网络实验
linux·运维·服务器
嵌入式×边缘AI:打怪升级日志9 小时前
Linux 驱动实战:SR501 人体红外传感器驱动开发与调试全记录
linux·运维·驱动开发
正点原子9 小时前
【正点原子Linux连载】第三章 U-Boot使用 摘自【正点原子】ATK-DLRK3568嵌入式Linux驱动开发指南
linux·运维·驱动开发