当前位置: 首页 > article >正文

Redis(概念、IO模型、多路选择算法、安装和启停)

一、概念

关系型数据库是典型的行存储数据库,存在的问题是,按行存储的数据在物理层面占用的是连续存储空间,不适合海量数据存储。
Redis在生产中使用的最多的是用作数据缓存。
在这里插入图片描述
服务器先在缓存中查询数据,查到则返回,查不到则到DB中查找。

2.1 缓存数据的分类

(1)实时同步数据:要求缓存中的数据必须与DB中的数据保持一致。即只要DB中的数据发生了变更,缓存中的数据立即消失。
(2)阶段性同步数据:没有必要与DB的数据时刻保持一致,只要大差不差就行。实现方法是为缓存数据添加了生存时长属性。

2.2 特点

(1)Redis的所有操作是在内存中进行的;
(2)Redis的数据可以支持持久化(包括RDB和AOF两种方式);
(3)Redis提供了高可用的主从集群功能,可以确保系统的安全性;
(4)丰富的数据类型:String、List、Set、Zset和Hash,还有BitMap、HyperLoglog、Geospatial。
BitMap:一般用于大数据量的二值性统计;
HyperLoglog:用于对数据量超级庞大的日志做去重统计;
Geospatial:主要用于地理位置相关的计算。
(5)数据过期功能、发布/订阅功能、简单事务功能、脚本扩展功能。
(6)ACL(Access Control List)权限功能,可以为不同的用户定制不同的用户权限。
(7)支持多线程IO模型。

二、Redis的IO模型

多线程IO模型(不是一个纯粹的多线程模型,主任务还是单线程)中的“多线程”仅用于接受、解析客户端的请求,然后将解析出的请求写入到任务队列中,而对具体任务(命令)的处理,仍是由主线程(单线程)处理,这样做使得用户无需考虑线程安全的问题,无需考虑事务控制,无需考虑像LPUSH/LPOP等命令的执行顺序问题。

三、多路选择算法

在这里插入图片描述
每个客户端若要向Redis提交请求,都需要与Redis建立一个socket连接,并向事件分发器注册一个事件,一旦该事件发生就表明连接已经就绪,而一旦连接就绪,事件分发器就会感知到,然后获取客户端通过该连接发送的请求,并将由该事件分发器所绑定的这个唯一的线程来处理。事件分发器会根据不同的就绪事件将任务交由不同的事件处理器去处理。
Redis的单线程模型采用了多路复用技术(从多个socket连接请求中选择一个放到人物队列给线程处理)。对于多路复用器的多路选择算法常见的有三种:select模型、poll模型、epoll模型。
select模型和poll模型的选择算法:两个本质上事一样的,只是select使用的是数组,poll使用的是链表。采用的是轮询算法,该模型对客户端的就绪处理是有延迟的。
epoll模型的选择算法:采用的是回调方式,监听到就绪就处理(也是使用队列的)。根据就绪事件发生后的处理方式不同又分为LT模型和ET模型。

四、redis的安装与启停

4.1 安装

下载

 wget http://download.redis.io/releases/redis-6.2.1.tar.gz

在这里插入图片描述

解压

tar -zxvf redis-6.2.1.tar.gz -C /opt/apps

在这里插入图片描述

编译

进入安装目录
在这里插入图片描述
使用make指令编译:
在这里插入图片描述

安装

make install

在这里插入图片描述

4.2 启动

在这里插入图片描述

补充:后台启动方式

nohup redis-server &

补充:配置式后台启动方式

修改配置文件:
在这里插入图片描述
搜索:
在这里插入图片描述
改为yes(配置为守护进程):
在这里插入图片描述
在这里插入图片描述

停止

redis-cli shutdown

在这里插入图片描述

4.3 连接前的配置

在这里插入图片描述
使其可以监听所有接口:
在这里插入图片描述
关闭保护模式:
在这里插入图片描述
在这里插入图片描述
requirepass行改成下面:
在这里插入图片描述
在这里插入图片描述

五、redis的各类客户端

5.1 图形界面客户端

在这里插入图片描述

5.2 图形界面客户端Redis Desktop Manager


http://www.kler.cn/a/413470.html

相关文章:

  • 基本功能实现
  • Java全栈开发:宠物医院管理系统项目实战
  • Python 中的装饰器是什么?
  • 15分钟做完一个小程序,腾讯这个工具有点东西
  • 基于Springboot的心灵治愈交流平台系统的设计与实现
  • burp功能介绍
  • 2024年wordpress、d-link等相关的多个cve漏洞poc
  • 【MySQL】表的操作(增删查改)
  • Oracle 中的表 ID(OBJECT_ID)段 ID(DATA_OBJECT_ID)
  • SAAS美容美发系统架构解析
  • 爬虫案例-亚马逊验证码突破
  • idea初始化设置
  • 《进程隔离机制:C++多进程编程安全的坚固堡垒》
  • 【含开题报告+文档+PPT+源码】基于SSM的电影数据挖掘与分析可视化系统设计与实现
  • 水库大坝安全监测之量水堰计应用
  • Android 13 Aosp Settings Android Studio版本
  • 树莓派搭建NextCloud:给数据一个安全的家
  • 如何为 XFS 文件系统的 /dev/centos/root 增加 800G 空间
  • vue实现滚动条滑动到底部分页调取后端接口加载数据
  • JS小模块练习
  • 【Python】 深入理解Python的单元测试:用unittest和pytest进行测试驱动开发
  • Oracle RMAN异机迁移数据库从文件系统至ASM
  • ffmpeg命令详解
  • 《黑神话:悟空》获TGA 2024四项提名,动作捕捉与人脸建模技术如何续写中国游戏新神话?
  • 什么是Web Worker?如何使用Web Worker?
  • Linux系統中修改IP地址詳細教程