Redis --- 安装教程
Redis--- 特性,使用场景,安装
- 安装教程
- 在Ubuntu下安装
- 在Centos7.6下安装Redis5
- 特性
- 在内存中存储数据
- 可编程的
- 扩展能力
- 持久化
- 集群
- 高可用
- 快速
- 应用场景
- 实时数据存储
- 作为缓存或者Session存储
- 消息队列
安装教程
🚀安装之前切换到root用户。
在Ubuntu下安装
1.安装
apt install redis //Ubuntu下下载后默认启动了redis
2.修改配置文件
vim /etc/redis/redis.conf
bind 0.0.0.0 ::1 //修改bind后的内容
protected-mode no //保护模式改为no
3.重启服务器
service redis-server restart
在Centos7.6下安装Redis5
1.安装scl源
yum install centos-release-scl-rh
2.安装Redis5
yum install rh-redis5-redis
3.对可执行程序做软连接
cd /usr/bin
ln -s /opt/rh/rh-redis5/root/usr/bin/redis-server ./redis-server
ln -s /opt/rh/rh-redis5/root/usr/bin/redis-sentinel ./redis-sentinel
ln -s /opt/rh/rh-redis5/root/usr/bin/redis-cli ./redis-cli
4.对配置文件做软连接
cd /etc/
ln -s /etc/opt/rh/rh-redis5/ ./redis
5.修改配置文件
bind 0.0.0.0 #修改ip
protected-mode no #关闭保护模式
daemonize yes #启动守护进程
🚀设置工作目录
mkdir -p /var/lib/redis //创建一个新的目录
dir /var/lib/redis //修改配置文件中dir 后面的内容
🚀设置日志目录
mkdir -p /var/log/redis/ #创建新的日志目录
logfile /var/log/redis/redis-server.log #修改日志文件的路径
6.启动redis
redis-server /etc/redis/redis.conf
7.终止Redis
kill redis的pid
特性
在内存中存储数据
🚀redis是将数据存储在内存中的数据结构中的,像MySQL这样的主要通过"表"的方式来存储组织数据的关系型数据库。Redis主要是通过"键值对"的方式来存储组织数据的非关系型数据库。
可编程的
🚀针对Redis的操作,可以通过使用简单的交互式命令进行操作。也可以通过一些脚本的方式,批量执行一些操作(可以带有一些逻辑)。
扩展能力
🚀在Redis原有的基础上进行扩展,Redis提供了一组API,可通过C/C++,Rust编写Redis扩展(本质上是一个动态链接库)。
持久化
🚀Redis是把数据存储在内存上的,为了是更快速的访问。Redis也会把数据存储在硬盘上,内存为主,磁盘为辅。(相当于对内存数据的备份,如果Redis重启了,就会在重启时加载硬盘中的备份数据,使Redis的内存恢复到重启前的状态)
集群
🚀Redis作为分布式系统中的一个中间件,能够支持集群是很关键的。一个Redis能存储的数据是有限的,那么就可以引入多个主机,部署多个Redis结点,每个Redis存储数据的一部分。
高可用
🚀Redis自身也是支持主从这种结构的,从结点就相当于主节点的备份。
快速
🚀Redis数据存储在内存中,就比访问硬盘的数据库要快。
🚀Redis的核心功能都是比较简单的逻辑。核心功能都是操作内存中的数据结构。
🚀从网络角度上,Redis使用了IO多路转接的方式(epoll)。
🚀Redis使用的是单线程模型,这样的单线程模型,就减少了不必要的线程之间的竞争开销。(多线程能提高效率的前提:CPU密集型任务,使用多个线程可以充分的利用CPU多核资源,但是Redis的核心人物,主要就是操作内存中的数据结构,不会消耗太多CPU)。
应用场景
实时数据存储
🚀将Redis当作数据库使用,对于实时性比较高的场景,延迟比较低适合使用Redis。
作为缓存或者Session存储
🚀将热点数据拿出来存储在Redis中(20%的数据满足80%的请求–二八原则)。从Redis中拿数据比从MySQL这样的数据库中拿数据要快很多的。
🚀通常来说Session是存储在应用服务器的内存中的,但是在分布式系统尤其是使用了负载均衡的架构下,可能同一个用户的多次请求被分发到了不同的应用服务器上,就会导致用户重新认证。可以将会话数据单拎出来放在一个Redis服务器上,所有的应用服务器都将Session存储在这个Redis中。(应用程序重启,会话不会丢失)
消息队列
🚀此处的消息队列指的不是Linux进程间通信的那个消息队列。这里指的是一个消息队列服务器,基于这个可以实现一个网络版本的生产者消费者模型。
相关文章:

Redis --- 安装教程
Redis--- 特性,使用场景,安装 安装教程在Ubuntu下安装在Centos7.6下安装Redis5 特性在内存中存储数据可编程的扩展能力持久化集群高可用快速 应用场景实时数据存储作为缓存或者Session存储消息队列 安装教程 🚀安装之前切换到root用户。 在…...
代码阅读:LanGCN
toc 1训练 1.1 进度条 import tqdm as tqdm for i, data in tqdm(enumerate(train_loader),disablehvd.rank()):1.2 多进程通信 多线程通信依靠共享内存实现,但是多进程通信就麻烦很多,因此可以采用mpi库,如果是在python中使用࿰…...

基于Java的校园餐厅订餐管理系统设计与实现(源码+lw+部署文档+讲解等)
文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序(小蔡coding) 代码参考数据库参考源码获取 前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者&am…...

使用C#和Flurl.Http库的下载器程序
根据您的要求,我为您编写了一个使用C#和Flurl.Http库的下载器程序,用于下载凤凰网的图片。以下是一个简单的示例代码: using System; using Flurl.Http;namespace DownloadImage {class Program{static void Main(string[] args){string url…...
面试经典150题——Day19
文章目录 一、题目二、题解 一、题目 58. Length of Last Word Given a string s consisting of words and spaces, return the length of the last word in the string. A word is a maximal substring consisting of non-space characters only. Example 1: Input: s “…...
TP6首页加载报错 Call to a member function run() on null
最近新接入一个二开的项目,tp6的项目内置的composer.json文件里引入的topthink框架包文件却是"topthink/framework": "5.0.*",导致了以下错误: 错误: Fatal error: Uncaught Error: Call to a member function run() o…...

洗车小程序源码:10个必备功能,提升洗车体验
作为洗车行业的专家,我们深知在如今数字化时代,拥有一款功能强大的洗车小程序是提升用户体验和业务发展的关键。本文将向您介绍洗车小程序源码中的10个必备功能,让您的洗车业务达到新的高度。 在线预约系统 通过洗车小程序源码,…...

macOS telnet替代方式
前言 经过使用Linux,常常用Linux的telnet查看端口畅通,是否有防火墙,但是在mac上已经没有这个命令了,那么怎么使用这个命令或者有没有其他替代呢,win和linux是否可以使用相同的替代。macOS可以原生用nc命令替代&#…...
【leetcode】独特的电子邮件地址
题目描述 每个 有效电子邮件地址 都由一个 本地名 和一个 域名 组成,以 ‘’ 符号分隔。除小写字母之外,电子邮件地址还可以含有一个或多个 ‘.’ 或 ‘’ 。 例如,在 aliceleetcode.com中, alice 是 本地名 ,而 lee…...

解密Java中神奇的Synchronized关键字
文章目录 🎉 定义🎉 JDK6以前🎉 偏向锁和轻量级锁📝 偏向锁📝 轻量级锁📝 自旋锁📝 重量级锁🔥 1. 加锁🔥 2. 等待🔥 3. 撤销 🎉 锁优化…...

微信删除的好友还能找回来吗?盘点5种超实用的方法!
当我们在认识新的朋友时,都喜欢通过添加对方微信来保持日后的联系。但是有时候可能会由于没有及时备注而不小心误删了对方。想要将对方加回来,又找不到有效的方法。微信删除的好友还能找回来吗?当然可以了!但我们要根据实际情况选…...
Nmap 常用命令汇总
Nmap 命令格式 namp 【扫描类型】 选项 {目标ip 或 目标网络段} 根据扫描类型,可分成两类,一种是主机扫描类型,另一种是端口扫描类型 一、常用主机扫描: 扫描类型: -PR 对目标ip所在局域网进行扫描 (使…...
谷歌浏览器最新版和浏览器驱动下载地址
谷歌最新版和驱动下载地址...
[游戏开发][Unity]Unity运行时加载不在BuildSetting里的场景
从Assets开始路径要写全,需要.unity扩展名 如果路径写错了会报错 LoadSceneAsyncInPlayMode expects a valid full path. The provided path was Assets/Works/Resource/Scenes.unity string sceneFullPath "Assets/Works/Resource/Scenes/TestScene.unity…...

flutter开发实战-hero动画简单实现
flutter开发实战-hero动画简单实现 使用Flutter的Hero widget创建hero动画。 将hero从一个路由飞到另一个路由。 将hero 的形状从圆形转换为矩形,同时将其从一个路由飞到另一个路由的过程中进行动画处理。 Flutter Hero动画 Hero 指的是可以在路由(页面)之间“飞行”的 widge…...

Spring Boot + EasyUI 创建第一个项目(一)
创建一个Spring Boot和EasyUI相结合的项目。 一、构建一个Spring Boot项目 Spring Boot之创建一个Spring Boot项目(一)-CSDN博客 二、配置Thymeleaf Spring Boot Thymeleaf(十一)_thymeleaf 设置字体_人……杰的博客-CSDN博客…...

短视频矩阵系统源码/技术应用搭建
短视频矩阵系统开发围绕的开发核心维度: 1. 多账号原理开发维度 适用于多平台多账号管理,支持不同类型账号矩阵通过工具实现统一便捷式管理。(企业号,员工号,个人号) 2. 账号矩阵内容开发维护 利用账号矩…...

硬核子牙:我准备写一本《带你手写64位多核操作系统》的书!
哈喽,我是子牙,一个很卷的硬核男人 深入研究计算机底层、Windows内核、Linux内核、Hotspot源码……聚焦做那些大家想学没地方学的课程。为了保证课程质量及教学效果,一年磨一剑,三年先后做了三个课程:手写JVM、手写OS…...
c++访问修饰符与继承关系
前言 C提供了三个修饰符来限定类成员的被访问权限,分别是public、protected、private。通过限定访问权限,可以达到程序编写者想要解决的安全问题和权限问题。这种权限的设置对于安全是非常必要的。 不同修饰下的类成员被访问权限 类成员默认访问权限为…...

【RTOS学习】事件组 | 任务通知
🐱作者:一只大喵咪1201 🐱专栏:《RTOS学习》 🔥格言:你只管努力,剩下的交给时间! 事件组 | 任务通知 🚁事件组🛴大概原理🛴使用事件组的函数同步…...

MPNet:旋转机械轻量化故障诊断模型详解python代码复现
目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...

手游刚开服就被攻击怎么办?如何防御DDoS?
开服初期是手游最脆弱的阶段,极易成为DDoS攻击的目标。一旦遭遇攻击,可能导致服务器瘫痪、玩家流失,甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案,帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...
uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖
在前面的练习中,每个页面需要使用ref,onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入,需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...

visual studio 2022更改主题为深色
visual studio 2022更改主题为深色 点击visual studio 上方的 工具-> 选项 在选项窗口中,选择 环境 -> 常规 ,将其中的颜色主题改成深色 点击确定,更改完成...
2024年赣州旅游投资集团社会招聘笔试真
2024年赣州旅游投资集团社会招聘笔试真 题 ( 满 分 1 0 0 分 时 间 1 2 0 分 钟 ) 一、单选题(每题只有一个正确答案,答错、不答或多答均不得分) 1.纪要的特点不包括()。 A.概括重点 B.指导传达 C. 客观纪实 D.有言必录 【答案】: D 2.1864年,()预言了电磁波的存在,并指出…...
第25节 Node.js 断言测试
Node.js的assert模块主要用于编写程序的单元测试时使用,通过断言可以提早发现和排查出错误。 稳定性: 5 - 锁定 这个模块可用于应用的单元测试,通过 require(assert) 可以使用这个模块。 assert.fail(actual, expected, message, operator) 使用参数…...
spring:实例工厂方法获取bean
spring处理使用静态工厂方法获取bean实例,也可以通过实例工厂方法获取bean实例。 实例工厂方法步骤如下: 定义实例工厂类(Java代码),定义实例工厂(xml),定义调用实例工厂ÿ…...

第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明
AI 领域的快速发展正在催生一个新时代,智能代理(agents)不再是孤立的个体,而是能够像一个数字团队一样协作。然而,当前 AI 生态系统的碎片化阻碍了这一愿景的实现,导致了“AI 巴别塔问题”——不同代理之间…...

零基础设计模式——行为型模式 - 责任链模式
第四部分:行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习!行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想:使多个对象都有机会处…...

网络编程(UDP编程)
思维导图 UDP基础编程(单播) 1.流程图 服务器:短信的接收方 创建套接字 (socket)-----------------------------------------》有手机指定网络信息-----------------------------------------------》有号码绑定套接字 (bind)--------------…...