【Redis】Linux 配置Redis

一、Redis介绍

Redis(Remote Dictionary Server)是一款开源的、高性能的键值对(Key-Value)存储数据库,由 Salvatore Sanfilippo 于 2009 年开发,采用 ANSI C 语言编写。它以内存存储为核心,支持数据持久化,同时提供了丰富的数据结构和灵活的功能,广泛应用于缓存、会话存储、消息队列、实时分析等场景。

在这里插入图片描述

1.1 Redis 的特点

  1. 高性能

    • 所有数据默认存储在内存中,读写速度极快(单机 QPS 可达 10 万 +),远超磁盘数据库(如 MySQL)。
    • 采用单线程模型(避免多线程上下文切换开销),结合 IO 多路复用机制,高效处理并发请求。
  2. 丰富的数据结构
    支持多种原生数据结构,满足复杂业务需求:

    • 字符串(String):最基础的键值类型,可存储文本、数字或二进制数据(最大 512MB)。
    • 哈希(Hash):适合存储对象(如用户信息),键值对的集合。
    • 列表(List):有序字符串集合,支持两端插入 / 删除,可实现队列、栈等结构。
    • 集合(Set):无序且唯一的字符串集合,支持交集、并集等运算。
    • 有序集合(Sorted Set):类似 Set,但每个元素关联一个分数(Score),可按分数排序(如排行榜)。
    • 其他:BitMap(位图)、HyperLogLog(基数统计)、Geospatial(地理位置)等。
  3. 数据持久化
    虽然数据存储在内存中,但 Redis 提供两种持久化方式,避免宕机后数据丢失:

    • RDB(Redis Database):定期将内存中的数据快照写入磁盘(二进制文件),适合备份和灾难恢复。
    • AOF(Append Only File):记录所有写操作到日志文件,重启时重新执行日志恢复数据,可靠性更高(可配置刷盘策略)。
  4. 高可用与扩展性

    • 主从复制(Master-Slave):主节点写入数据,从节点同步并提供读服务,实现读写分离和故障备份。
    • 哨兵模式(Sentinel):监控主从节点状态,当主节点故障时自动将从节点升级为主节点,保证高可用。
    • 集群模式(Cluster):将数据分片存储在多个节点,支持横向扩展(最多 16384 个节点),解决单机内存和性能瓶颈。
  5. 原子操作与事务

    • 所有单个命令都是原子性的,支持通过MULTIEXEC等命令实现简单事务(批量执行命令,要么全成功,要么全失败)。
    • 提供WATCH命令实现乐观锁,用于并发场景下的数据一致性控制。
  6. 其他特性

    • 过期键删除:支持为键设置过期时间,自动删除过期数据(基于惰性删除 + 定期删除策略)。
    • 发布订阅(Pub/Sub):实现简单的消息队列功能,支持消息的发布与订阅。
    • Lua 脚本:支持嵌入 Lua 脚本执行,实现复杂逻辑的原子性操作。
    • 跨平台:可在 Linux、Windows、macOS 等系统运行,且客户端语言丰富(Java、Python、Go 等均有成熟库)。

1.2 Redis应用场景

  1. 缓存:存储热点数据(如商品信息、用户会话),减少数据库访问压力,提升读性能。
  2. 会话存储:替代传统的 Cookie 或服务器本地会话,实现分布式系统中的会话共享。
  3. 计数器与排行榜:利用INCR命令实现点赞数、访问量统计,通过Sorted Set实现实时排行榜。
  4. 消息队列:基于ListLPUSH/RPOP或 Pub/Sub 实现简单的消息传递。
  5. 分布式锁:通过SETNX(SET if Not Exists)命令实现分布式环境下的资源竞争控制。
  6. 地理位置服务:利用GEO系列命令实现附近的人、距离计算等功能。

二、配置Redis

这里介绍在Ubuntu下载并配置Redis

2.1 下载Redis

Redis官网下载,这里选择下载7.0.5版本:http://download.redis.io/releases/redis-7.0.5.tar.gz

下载完成后解压到当前目录下:

tar -zxvf redis-7.05.tar.gz

进入到对应的解压后的文件夹下,里面有Makefile文件

cd redis-7.05

2.2 编译Redis

Makefile文件路径下执行make进行编译,编译完成后使用make install安装到默认路径下

make -j4 && sudo make install

Redis默认安装到/usr/local/bin目录下,安装后有redis-server服务器和redis-cli客户端

ls /usr/local/bin | grep redis

在这里插入图片描述

2.3 设置配置文件

启动Redis的时候需要指定配置文件,我们这里创建一个配置文件的目录,用于存放Redis的配置文件

cd /usr/local/bin
sudo mkdir redisconf

实际上,刚刚解压的文件夹中存在默认的Redis配置,即redis.conf文件,我们将它拷贝到我们的文件夹中

sudo cp ~/redis-7.0.5/redis.conf ./redisconf/

下面是常见的Redis配置,如有需要可以修改配置文件

# 允许访问的地址,默认是127.0.0.1,会导致只能在本地访问。修改为0.0.0.0则可以在任意IP访问,生产环境不要设置为0.0.0.0
bind 0.0.0.0
# 守护进程,修改为yes后即可后台运行
daemonize yes 
# 密码,设置后访问Redis必须输入密码
requirepass 123456
# 监听的端口
port 6379
# 工作目录,默认是当前目录,也就是运行redis-server时的命令,日志、持久化等文件会保存在这个目录
dir .
# 数据库数量,设置为1,代表只使用1个库,默认有16个库,编号0~15
databases 1
# 设置redis能够使用的最大内存
maxmemory 512mb
# 日志文件,默认为空,不记录日志,可以指定日志文件名
logfile "redis.log"

2.4 启动Redis

启动Redis服务器,指定我们的配置文件,启动完成后的服务器输出如下:

redis-server /usr/local/bin/redisconf/redis.conf

在这里插入图片描述

启动客户端,这里我们可以使用-p指定端口,如果不指定,就使用默认的端口6379

redis-cli -p 6379

查看进程信息,确保启动了Redis

ps -aux | grep redis

在这里插入图片描述

2.5 测试Redis

Redis客户端redis-cli输入info,查看对应的Redis信息

info

在这里插入图片描述

更多资料:https://github.com/0voice

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/916371.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/916371.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MongoDB数据库高并发商业实践优化·运行优化之不可使用root账户进行MongoDB运行-优雅草卓伊凡

MongoDB数据库高并发商业实践优化运行优化之不可使用root账户进行MongoDB运行-优雅草卓伊凡 引言 关于最近优雅草卓伊凡发布关于MongoDB的内容是由于我们的甲方上线了一个很老的产品,但是他的用户量极大,并且还有各种人搞事情,不断的来GJ&a…

戴尔电脑 Linux 安装与配置指南_导入mysql共享文件夹

本指南将详细介绍在戴尔电脑上安装 Linux 操作系统的步骤,以及后续的重要配置,包括系统选择、安装流程、MySQL 数据恢复、网络配置、文件共享和远程维护等。步骤清晰且配有命令行示例和配置文件示例,适合初中级用户参考。1、Linux 系统选择与…

昇思学习营-DeepSeek-R1-Distill-Qwen-1.5B 模型LoRA微调学习心得

LoRA微调:加入参数式微调冻结原始网络参数,对Attention层中QKV等添加旁支,包含两个低维度的矩阵A和矩阵B,微调过程中仅更新A、B 矩阵效果:训练参数被大幅降低,资源消耗较低。对attention的参数加入如下图所…

彩色转灰度的核心逻辑:三种经典方法及原理对比

灰度实验将彩色图像转换为灰度图像的过程称为灰度化,这种做法在图像处理和计算机视觉领域非常常见。灰度图与彩色图最大的不同就是:彩色图是由R、G、B三个通道组成,而灰度图只有一个通道,也称为单通道图像,所以彩色图转…

Spring Boot 项目启动自动执行逻辑的最佳实践:掌握 CommandLineRunner

前言 Spring Boot 启动阶段,总有些操作迫不及待冲在前线:配置要加载,数据要准备,日志要抢首发,仿佛个个争当“启动 MVP”。如果你也想让项目一启动就自动开工,少写点手动触发的“苦力逻辑”,那 CommandLineRunner 就是你的得力助手。它像那个永远第一个打卡的同事,不喝…

高可用集群KEEPALIVED的详细部署

一.高可用集群 1.1 集群类型 LB:Load Balance 负载均衡 LVS/HAProxy/nginx(http/upstream, stream/upstream) HA:High Availability 高可用集群 数据库、Redis SPoF: Single Point of Failure,解决单点故障 HPC&#x…

[论文阅读] 人工智能 + 软件工程 | NoCode-bench:评估LLM无代码功能添加能力的新基准

NoCode-bench:评估LLM无代码功能添加能力的新基准 论文:NoCode-bench: A Benchmark for Evaluating Natural Language-Driven Feature Addition 研究背景:当AI尝试给软件"加新功能",我们需要一张靠谱的"考卷"…

【Git知识】Git 常用知识集合之基础--分支系统与 Tag 标签机制

🧰 Git 常用知识集合Git 是程序员的“时间机器”。这份手册帮你从入门到精通,把 Git 玩明白。1️⃣ Git 基础操作流程 📌 三步走流程:添加 → 提交 → 推送 git add . # 把所有修改加入暂存区 git commit -m …

深入解析 Spark:关键问题与答案汇总

在大数据处理领域,Spark 凭借其高效的计算能力和丰富的功能,成为了众多开发者和企业的首选框架。然而,在使用 Spark 的过程中,我们会遇到各种各样的问题,从性能优化到算子使用等。本文将围绕 Spark 的一些核心问题进行…

Python-初学openCV——对openCV的简单使用

一、概述1、简单介绍OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉库,旨在为实时图像处理提供强大的功能。它由Intel开发,现由开源社区维护。OpenCV 提供了跨平台的解决方案,支持 Windows、Linu…

去中心化时代的通信革命:briefing与cpolar技术融合带来的安全范式革新

文章目录前言1.关于briefing2.本地部署briefing3.使用briefing4.cpolar内网穿透工具安装5.创建远程连接公网地址6.固定briefing公网地址前言 数字协作本该是提升效率的过程,却被这些数据管理问题不断困扰:平台条款中的监控声明、跨网络环境的接入障碍、…

GitHub新手生存指南:AI项目版本控制与协作实战

点击 “AladdinEdu,同学们用得起的【H卡】算力平台”,H卡级别算力,按量计费,灵活弹性,顶级配置,学生专属优惠。 代码仓库创建 分支管理 PR提交 开源项目复现 读者收获:掌握团队开发必备技能…

Axios封装以及添加拦截器

在前端开发中,http请求层的封装可以极大提升代码的复用性和可维护性,本文将完整的用axios封装接口请求,配置请求与响应拦截器,封装统一的请求方法全过程。封装的目的和思路在项目直接用axios发送请求当然没问题,但是如…

C语言中奇技淫巧04-仅对指定函数启用编译优化

相信很多人使用GCC编译代码时,都会接触到gcc -O0/1/2/3/s,知道它可以对工程进行全局优化。 事实上,除了全局优化外,使用GCC扩展方式,我们还可以仅对部分关键函数实施差异化编译优化。 在GCC编译器中,attrib…

HTML Style 对象深度解析:从基础到高级应用

一、Style 对象的核心概念定义与作用 Style 对象是 HTML DOM 中用于操作元素内联样式的接口,通过 element.style 访问。它允许动态修改元素的 CSS 属性,但仅能直接影响内联样式(即通过 style 属性直接写在标签中的样式)。与外部样…

【C++】定义常量

在 C 中&#xff0c;有两种简单的定义常量的方式&#xff1a; 使用 #define 预处理器。使用 const 关键字。 #define 预处理器 #include <iostream> using namespace std;#define LENGTH 10 #define WIDTH 5 #define NEWLINE \nint main() {int area; area LENGTH …

基于遗传算法的多无人车协同侦察与安全保护策略优化

基于遗传算法的多无人车协同侦察与安全保护策略优化 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家&#xff0c;觉得好请收藏。点击跳转到网站。 1. 引言 1.1 研究背景与意义 随着无人系统技术的快速发…

python面向对象编程详解

面向对象编程&#xff08;OOP&#xff09;是一种以对象为核心的编程范式。Python全面支持OOP&#xff0c;主要包含以下核心概念&#xff1a;一、类与对象1.类(Class)类是创建对象的模板或蓝图&#xff0c;它定义了对象的属性和方法。class Dog:# 类属性&#xff08;所有实例共享…

快速入门Socket编程——封装一套便捷的Socket编程——导论

快速入门Socket编程——封装一套便捷的Socket编程——导论 前言 ​ 这里是笔者打算做的Socket编程的第二部分&#xff0c;也就是核心的讨论我们Socket编程本身。 导论 ​ 我们知道&#xff0c;一个经典的服务器套接字的处理流程是如下的&#xff1a; 创建一个指定传输层和网络层…

【Mermaid 离线工具】Mermaid 流程图生成器 - 高清PNG输出,一键生成专业级流程图!

文章目录 Mermaid 流程图生成器(离线版本):高效绘图,离线也能玩转专业可视化 一、Mermaid:文本绘图的 “魔法语法” 二、离线版生成器:功能与优势解析 (一)离线可用,场景更灵活 (二)操作流程:简单五步,产出专业图表 (三)界面设计:简洁直观,降低使用门槛 三、应…