CentOS 安装Redis
1. 安装 Redis
安装 EPEL 仓库(对于 CentOS/RHEL 系统):
首先安装 EPEL 仓库,因为 Redis 存在于 EPEL 仓库中:
yum install epel-release
安装 Redis 数据库:
yum install redis
2. 修改 Redis 配置文件
Redis 的配置文件位于 /etc/redis.conf,你需要根据实际需求进行修改。
启动配置:
-
设置密码:
Redis 需要通过密码进行保护,防止未经授权的访问。找到requirepass配置项,或者直接添加设置密码:requirepass your_password_here -
允许远程连接:
默认情况下,Redis 只允许本地连接(bind 127.0.0.1)。为了支持远程连接,需要修改配置:-
注释掉
bind 127.0.0.1,让 Redis 接受所有 IP 地址的连接:#bind 127.0.0.1 -
如果你只想允许特定 IP 访问 Redis,可以像这样设置:
bind 0.0.0.0 # 或者指定特定的 IP 地址,如: # bind 192.168.1.100
-
-
后台运行 Redis:
Redis 默认是前台运行的,建议在生产环境中将其配置为后台运行。将daemonize设置为yes:daemonize yes -
优化内存配置:
Redis 是一个内存数据库,因此合理的内存管理配置至关重要。你可以根据系统的内存容量调整 Redis 的内存使用策略。例如:-
设置最大内存使用量:
maxmemory 2gb -
设置内存溢出策略(例如,当达到最大内存时,Redis 会删除最不常用的键):
maxmemory-policy allkeys-lru
-
-
配置持久化:
Redis 提供了两种持久化机制:RDB 和 AOF。根据你的需求选择:- RDB 持久化:适用于需要定期保存数据的场景。
- AOF 持久化:适用于需要频繁保存数据的场景。
在配置文件中,确保启用了 RDB 或 AOF 持久化:
save 900 1 # 如果900秒内有至少1个键被修改,保存数据 appendonly yes # 启用 AOF 持久化
配置完成后,保存并退出编辑器(在 vim 中按 Esc,然后输入 :wq 保存并退出)。
3. 启动 Redis 服务
Redis 配置修改完成后,需要启动 Redis 服务:
redis-server /etc/redis.conf &
启动/停止 Redis:
-
启动 Redis:
service redis start -
停止 Redis:
service redis stop -
查看 Redis 服务状态:
service redis status
查看 Redis 进程:
ps -ef | grep redis
4. 防火墙和安全设置
配置防火墙:
确保 Redis 端口(默认是 6379)可以通过防火墙访问。
- CentOS/RHEL 防火墙配置:
firewall-cmd --zone=public --add-port=6379/tcp --permanent firewall-cmd --reload
安全性加强:
- 使用密码保护:如前所述,设置
requirepass可以防止未经授权的访问。 - 限制访问源 IP:通过配置
bind来限制允许连接的 IP 地址。你可以将bind设置为特定的 IP 地址或使用防火墙进行 IP 限制。 - 关闭
protected-mode:如果启用了protected-mode,Redis 会保护你不被暴露在公网环境下。在生产环境中,通常会将其禁用:protected-mode no
使用 Redis 配置的安全最佳实践:
- 不要将 Redis 直接暴露在互联网上,最好通过 VPN 或使用内网通信。
- 为每个 Redis 实例配置复杂的密码,尤其是在生产环境中。
- 定期检查 Redis 配置文件,确保没有配置项被不小心泄露。
5. Redis 客户端(Windows)
对于 Windows 用户,可以选择以下客户端工具:
Redis Desktop Manager(RDM)
- 下载链接:Redis Desktop Manager
- 这是一个图形化管理工具,可以帮助你更方便地与 Redis 进行交互。
Another Redis Desktop Manager(ARDM)
- 下载链接:Another Redis Desktop Manager
- 另一个流行的 Redis 客户端,适用于多平台,简单易用。
6. 常见问题与优化
远程连接问题:
- 确认 Redis 配置:确保 Redis 配置文件中的
bind设置正确,并且防火墙已开放 6379 端口。 - 检查密码:如果启用了密码保护,连接时需要使用正确的密码:
redis-cli -h <IP_ADDRESS> -p 6379 -a <password>
性能优化:
- 调整最大内存使用量:Redis 是一个内存数据库,可以通过调整
maxmemory配置来限制 Redis 占用的最大内存,以避免占满系统内存。 - 内存溢出策略:配置
maxmemory-policy来决定 Redis 在达到最大内存限制时如何处理数据。常用的策略有allkeys-lru(最少使用的键会被删除)和volatile-lru(仅删除设置了过期时间的键)。 - 开启 AOF 持久化:可以启用 AOF(Append-Only File)持久化机制来提高数据安全性。通过配置
appendonly yes和appendfsync everysec可以确保每秒将写操作同步到磁盘。
总结
这些优化步骤和配置可以帮助你更加安全、稳定地使用 Redis,同时确保 Redis 可以高效地运行在你的环境中。记得根据你的实际需求调整配置,尤其是在生产环境中,应当特别关注安全性和性能。
相关文章:
CentOS 安装Redis
1. 安装 Redis 安装 EPEL 仓库(对于 CentOS/RHEL 系统): 首先安装 EPEL 仓库,因为 Redis 存在于 EPEL 仓库中: yum install epel-release安装 Redis 数据库: yum install redis2. 修改 Redis 配置文件 …...
Linux网络 TCP socket
TCP简介 TCP(Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议。它位于OSI模型的第四层,主要为应用层提供数据传输服务。TCP通过三次握手建立连接,确保数据在发送和接收过程中的准确性和顺序…...
(一)相机标定——四大坐标系的介绍、对应转换、畸变原理以及OpenCV完整代码实战(C++版)
一、四大坐标系介绍 1,世界坐标系 从这个世界(world)的视角来看物体 世界坐标系是3D空间坐标,每个点的位置用 ( X w , Y w , Z w ) (X_w,Y_w,Z_w) (Xw,Yw,Zw)表示 2,相机坐标系 相机本身具有一个坐标系&…...
【Linux网络编程】高效I/O--I/O的五种类型
目录 I/O的概念 网络通信的本质 I/O的本质 高效I/O 五种I/O模型 阻塞I/O 非阻塞I/O 信号驱动I/O 多路转接/多路复用I/O 异步I/O 非阻塞I/O的实现 I/O的概念 网络通信的本质 网络通信的本质其实就是I/O I:表示input(输入)O:表示ou…...
企业级NoSQL数据库Redis
1.浏览器缓存过期机制 1.1 最后修改时间 last-modified 浏览器缓存机制是优化网页加载速度和减少服务器负载的重要手段。以下是关于浏览器缓存过期机制、Last-Modified 和 ETag 的详细讲解: 一、Last-Modified 头部 定义:Last-Modified 表示服务器上资源…...
Vscode:问题解决办法 及 Tips 总结
Visual Studio Code(简称VSCode)是一个功能强大的开源代码编辑器,广泛用于各种编程语言和开发场景,本博客主要记录在使用 VSCode 进行verilog开发时遇到的问题及解决办法,使用过程中的技巧 文章目录 扩展安装失败调试配…...
二十三种设计模式-装饰器模式
一、定义与核心思想 装饰器模式是一种结构型设计模式,其核心思想是动态地给一个对象添加一些额外的职责。通过这种方式,可以在不改变原有对象结构的基础上,灵活地增加新的功能,使得对象的行为可以得到扩展,同时又保持…...
架构思考与实践:从通用到场景的转变
在当今复杂多变的商业环境中,企业架构的设计与优化成为了一个关键议题。本文通过一系列随笔,探讨了业务架构的价值、从通用架构到场景架构的转变、恰如其分的架构设计以及如何避免盲目低效等问题。通过对多个实际案例的分析,笔者揭示了架构设…...
Spring MVC(一)
RestController RestController 是由 Controller 和 ResponseBody 两个注解构成的。 Spring 启动的时候会扫描所有包含 Controller 或者 RestController 注解的类,创建出对外的接口,这样外界就可以从这里与服务器实现交互,如果没有这个注解…...
vue3使用tsx渲染复杂逻辑的表单
前置 目前的应用场景是:检查项目是树结构,有的项目还需要动态显示对应的子集 项目用的是uniappvue3tsvite生成的app tsx模版 统一渲染入口 <script lang"ts">import uniForms from dcloudio/uni-ui/lib/uni-forms/uni-forms.vueimport…...
python助力WRF自动化运行
对大部分人而言,特别是新用户,WRF模式的安装繁琐且不必要,可以作为后续进阶掌握的技能,本学习跳过繁琐的安装步骤,直接聚焦模式的运行部分,通过短平快的教学,快速掌握模式运行。进一步将python语…...
Windows 下 Postgres 安装 TimescaleDB 插件
Windows 下 Postgres 安装 TimescaleDB 插件 一、准备工作 安装 PostgreSQL:首先确保你已经在 Windows 系统中成功安装了 PostgreSQL 数据库。可以从 PostgreSQL 官方网站下载适合你系统的安装包,并按照安装向导进行安装。安装过程中,记住设…...
【Vim Masterclass 笔记21】S09L39:Vim 设置与 vimrc 文件的用法示例(二)
文章目录 S09L39 Vim Settings and the Vimrc File - Part 21 Vim 的配色方案与 color 命令2 map 命令3 示例:用 map 命令快速生成 HTML 代码片段4 Vim 中的 Leader 键5 用 mkvimrc 命令自动生成配置文件 写在前面 本篇为 Vim 自定义配置的第二部分。当中的每个知识…...
【Docker】Supervisor 实现单容器运行多服务进程
本文内容均来自个人笔记并重新梳理,如有错误欢迎指正! 如果对您有帮助,烦请点赞、关注、转发、订阅专栏! 专栏订阅入口 | 精选文章 | Kubernetes | Docker | Linux | 羊毛资源 | 工具推荐 | 往期精彩文章 【Docker】(全…...
【网络协议】【http】【https】ECDHE-TLS1.2
【网络协议】【http】【https】ECDHE-TLS1.2 ECDHE算法 1.客户端和服务器端事先确定好使用哪种椭圆曲线,和曲线上的基点G,这两个参数都是公开的, 双方各自随机生成一个随机数作为私钥d,并与基点 G相乘得到公钥Q(QdG),…...
(十五)WebGL中gl.texImage2D函数使用详解
在 WebGL 中,gl.texImage2D 是一个非常关键的函数,用于将图像数据上传到 WebGL 上下文中并作为纹理对象的一部分。它允许你将图像、视频、画布等作为纹理源。理解如何使用 gl.texImage2D 是在 WebGL 中处理纹理的核心之一。 文章目录 gl.texImage2D 的基…...
CSS 颜色
所有浏览器都支持的颜色名 所有现代浏览器均支持以下 140 种颜色名称(单击颜色名称或十六进制值,可查看将以该颜色为背景颜色以及不同的文本颜色): 颜色名十六进制颜色值颜色AliceBlue#F0F8FFAntiqueWhite#FAEBD7Aqua#00FFFFAqu…...
C#,入门教程(03)——Visual Studio 2022编写彩色Hello World与动画效果
C#,入门教程(01)—— Visual Studio 2022 免费安装的详细图文与动画教程https://blog.csdn.net/beijinghorn/article/details/123350910 C#,入门教程(02)—— Visual Studio 2022开发环境搭建图文教程https://blog.csdn.net/beijinghorn/article/detail…...
杀死安装 CentOS-7-x86_64-DVD-1908
使用 VMware 安装 CentOS-7-x86_64-DVD-1908 CentOS是 reahat 的 免费版本,有了ubutun ,为什么还要使用 CentOS呢? 在linux 服务器实际开发中,大家都用的CentOS,因为两个原因,一个是免费,第二是…...
55.【5】BUUCTF WEB NCTF2019 sqli
进入靶场 输入admin 123 过滤的这么严格??? 过滤很严格,此时要么爆破,要么扫描 直接扫描,得到robots.txt 访问后又得到hint.txt 继续访问 图片内容如下 $black_list "/limit|by|substr|mid|,|admi…...
Chapter03-Authentication vulnerabilities
文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...
谷歌浏览器插件
项目中有时候会用到插件 sync-cookie-extension1.0.0:开发环境同步测试 cookie 至 localhost,便于本地请求服务携带 cookie 参考地址:https://juejin.cn/post/7139354571712757767 里面有源码下载下来,加在到扩展即可使用FeHelp…...
stm32G473的flash模式是单bank还是双bank?
今天突然有人stm32G473的flash模式是单bank还是双bank?由于时间太久,我真忘记了。搜搜发现,还真有人和我一样。见下面的链接:https://shequ.stmicroelectronics.cn/forum.php?modviewthread&tid644563 根据STM32G4系列参考手…...
3-11单元格区域边界定位(End属性)学习笔记
返回一个Range 对象,只读。该对象代表包含源区域的区域上端下端左端右端的最后一个单元格。等同于按键 End 向上键(End(xlUp))、End向下键(End(xlDown))、End向左键(End(xlToLeft)End向右键(End(xlToRight)) 注意:它移动的位置必须是相连的有内容的单元格…...
均衡后的SNRSINR
本文主要摘自参考文献中的前两篇,相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程,其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt 根发送天线, n r n_r nr 根接收天线的 MIMO 系…...
力扣-35.搜索插入位置
题目描述 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 class Solution {public int searchInsert(int[] nums, …...
Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习)
Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习) 一、Aspose.PDF 简介二、说明(⚠️仅供学习与研究使用)三、技术流程总览四、准备工作1. 下载 Jar 包2. Maven 项目依赖配置 五、字节码修改实现代码&#…...
R语言速释制剂QBD解决方案之三
本文是《Quality by Design for ANDAs: An Example for Immediate-Release Dosage Forms》第一个处方的R语言解决方案。 第一个处方研究评估原料药粒径分布、MCC/Lactose比例、崩解剂用量对制剂CQAs的影响。 第二处方研究用于理解颗粒外加硬脂酸镁和滑石粉对片剂质量和可生产…...
C++:多态机制详解
目录 一. 多态的概念 1.静态多态(编译时多态) 二.动态多态的定义及实现 1.多态的构成条件 2.虚函数 3.虚函数的重写/覆盖 4.虚函数重写的一些其他问题 1).协变 2).析构函数的重写 5.override 和 final关键字 1&#…...
【Linux】Linux 系统默认的目录及作用说明
博主介绍:✌全网粉丝23W,CSDN博客专家、Java领域优质创作者,掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围:SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物…...
