【Redis】Redis的概念 | 特性 | 应用场景 | 安装 | 客户端

ops/2024/9/23 5:17:33/

文章目录

  • Redis
    • 一、认识Redis
    • 二、Redis的特性
    • 三、Redis的应用场景
    • 四、安装Redis
    • 五、Redis的客户端

Redis

一、认识Redis

  • Redis是一个开源的,在内存中存储数据。在分布式系统中更有优势。如果是单机环境下,直接通过变量存储数据比用Redis更有优势。在分布式系统中,要想多个服务器共享同一份数据,同时又想让数据在内存中,就可以选择Redis.

  • 进程是具有隔离性的,分布式系统会设计到多个进程。多个进程在不同的主机上,要想直接访问其他进程内存当中的变量,突破进行的隔离性,就极为困难。Redis就相当于对这样是需求,进行了封装。通过进程之间的通信(网络 )

  • 因此,Redis就是基于网络,将自己内存中的变量,提供给本机别的进程、别的主机的进程来使用。

  • Redis可以作为数据库来使用,要MySQL快很多(MySQL最大的缺点,就是访问速度慢)。但是相对的,Redis的存储空间是有限的。要同时解决存储量和访问速度的问题,可以将Redis和MySQL结合使用。也就是说,用Redis来作为MySQL的Cache。将一些热点数据用Redis来存储,将全量数据用MySQL来存储。

    二八原则:20%的热点数据可以满足80%的访问需求

    虽然利用了Redis速度快和MySQL存储多的特点,但是提高了系统的复杂度。同时,如果发生数据的修改,要考虑Redis和MySQL的数据同步问题。世上亦无两全法,没有银弹!要根据场景来进行选择。

  • Redis的初心是用来作为 消息中间件(消息队列),是分布式系统下的生产者-消费者模型。

二、Redis的特性

  • 是非关系型数据库:在内存中通过“键值对”来存储数据。(key都是String ,value是hash/list等数据结构)

  • 可编程操作:简单的交互命令进行操作、Lua脚本,来批量执行

  • 可扩展性:Redis提供了一组API,可以在原有的基础上进行扩展(C/C++/Rust 语言编写Redis扩展 。本质上是一个动态链接库)

  • 持久化:Redis是把数据存储在内存上。而内存上的数据是“易失”的。Redis会把数据存储一份在硬盘上。以内存为主,硬盘为辅。硬盘相当于对数据进行了备份,如果Redis重启,就会加载硬盘中备份的数据,使内存恢复到重启前的状态。

  • 支持集群:水平扩展,类似于分库分表。一个Redis存储的空间有限,引入多个主机,部署多个Redis节点,每个Redis存储数据的一部分。

  • 高可用:冗余/备份 。Redis自身支持“主从”结构。从节点相当于主节点的备份

  • 速度快:

    1.数据存在硬盘中,比访问硬盘快。

    2.Redis的核心功能都是比较简单的逻辑。

    3.Redis使用了IO多路复用的方式(epoll)用一个线程来管理很多个Socket

    4.Redis使用的是单线程模型(高版本引入了多线程)。单线程模型,减少了不必要线程之间的竞争开销

三、Redis的应用场景

1.Redis可以作为数据库,存的是全量数据。

2.Redis作为缓存,存的是部分数据,全量数据以MySQL为主。

3.会话存储。1.负载均衡器把同一个用户的请求分配到同一个机器上。2.把会话数据独立出来,放在独立的机器上存储(Redis)。后续每个应用服务器在读取会话时,先访问Redis.不管请求到哪个应用服务器上,都是从Redis拿到的会话。如果应用服务器重启,会话数据就不会丢失。(也不是不能丢,叫用户再登录一下)

4.作为消息队列(服务器)实现网络版本的生产者-消费者模型。

1,解耦合

2.削峰填谷

四、安装Redis

版本:Redis5 Linux版本:Ubuntu

1.切换root用户 su

2.apt命令来搜索Redis : apt search redis

3.安装 :apt install redis

4.验证:netstat -anp | grep redis Redis的默认端口是6379

在这里插入图片描述

5.发现当前是环回IP,需要手动修改配置文件,将IP进行修改。绑定环回IP,意味着只能由当前主机来访问,跨主机就访问不了了。

cd /etc/redis/redis.conf
//找到配置文件
bind 后面的127.0.0.1 ::1  改为 0.0.0.0 ::1protected-mode yes 改为 no

6.重启服务器

service redis-server restart

7.使用Redis自带的客户端来连接服务器

redis-cli     ping ->pong 表示正常工作    ctrl+d 退出redis客户端

五、Redis的客户端

  • Redis也是一个客户端-服务器结构

客户端:

1.自带的命令行客户端 redis-cli 命令

redis-cli -h 127.0.0.1 -p 6379

2.图形化界面客户端(桌面程序、Web程序)

3.基于redis的api自行开发客户端

点击移步博客主页,欢迎光临~

偷cyk的图


http://www.ppmy.cn/ops/85829.html

相关文章

常见的文心一言的指令

文心一言,作为百度研发的预训练语言模型“ERNIE 3.0”的一项功能,能够与人对话互动,回答问题,协助创作,高效便捷地帮助人们获取信息、知识和灵感。以下是一些常见的文心一言指令类型及其具体示例: 1. 查询…

政安晨【零基础玩转各类开源AI项目】基于Ubuntu系统部署LivePortrait :通过缝合和重定向控制实现高效的肖像动画制作

目录 项目论文介绍 论文中实际开展的工作 非扩散性的肖像动画 基于扩散的肖像动画 方法论 基于Ubuntu的部署实践开始 1. 克隆代码并准备环境 2. 下载预训练权重 3. 推理 快速上手 驱动视频自动裁剪 运动模板制作 4. Gradio 界面 5. 推理速度评估 社区资源 政安…

扩展-通过idea 中的Frames 来查看当前栈帧

扩展-通过idea 中的Frames 来查看当前栈帧: 假如有如下一个类,我们在idea 中可以通过后续的操作查看出栈入栈的情况 public class Test {public static void main(String[]args) {A();}public static void A() {System.out.println("A执行了..&qu…

2024-07-24 buildroot c语言应用获取 kernel kobject_uevent_env 发送的消息,侦测USB口变化。

一、kobject_uevent_env 是 Linux 内核中的一个函数,用于发送内核事件到用户空间。它主要用于生成和发送与内核对象(kobject)相关的事件通知,这些事件通常用于通知用户空间程序(如 udev)有关硬件的变化或其…

【物联网IoT基础】IoT的基本概念和架构

物联网IoT基础:IoT的基本概念和架构 目录 引言物联网的基本概念 什么是物联网物联网的发展历程 物联网的架构 感知层网络层平台层应用层 物联网的关键技术 传感技术通信技术数据处理与分析安全与隐私 物联网的应用场景 智能家居智慧城市工业物联网医疗健康农业物联…

【区块链+绿色低碳】雄韬智慧锂电储能管理系统 | FISCO BCOS应用案例

雄韬智慧锂电储能管理系统(Energy Management System,以下简称 EMS)是雄韬集团响应国家实现新型电力 系统建设,助力“碳达峰、碳中和”目标而自主开发的创新智慧锂电储能系统。 系统采用了 FISCO BCOS 联盟链,融合了物…

greenplum pg_stat_activity说明

视图pg_stat_activity每行详细显示服务器每个进程,其中包含有关相关用户会话和查询的详细信息。除非关闭了参数stats_command_string,否则报告当前查询数据的列是可用的。此外,只有当检查视图的用户是超级用户或与拥有所报告进程的用户相同时…

greenplum gpmetrics.gpcc_queries_history表各列的含义

在gp数据库中,经常会用到 gpmetrics.gpcc_queries_history 查询历史会话信息做审计用。 在该表中各个列的解释: ctime:行创建时间 tmid:time identifier,时间戳,所有与查询相关联的记录都将具有相同的tmid值 ssid:session id,所有与查询相关联的所有记…