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
相关文章:
Redis(概念、IO模型、多路选择算法、安装和启停)
一、概念 关系型数据库是典型的行存储数据库,存在的问题是,按行存储的数据在物理层面占用的是连续存储空间,不适合海量数据存储。 Redis在生产中使用的最多的是用作数据缓存。 服务器先在缓存中查询数据,查到则返回,…...
计算机网络 第4章 网络层
计算机网络 (第八版)谢希仁 第 4 章 网络层4.2.2 IP地址**无分类编址CIDR**IP地址的特点 4.2.3 IP地址与MAC地址4.2.4 ARP 地址解析协议4.2.5 IP数据报的格式题目2:IP数据报分片与重组题目:计算IP数据报的首部校验和(不正确未改) …...
Java学习笔记--继承方法的重写介绍,重写方法的注意事项,方法重写的使用场景,super和this
目录 一,方法的重写 二,重写方法的注意事项 三,方法重写的使用场景 四,super和this 1.继承中构造方法的特点 2.super和this的具体使用 super的具体使用 this的具体使用 一,方法的重写 1.概述:子类中有一个和父类…...
高级java每日一道面试题-2024年11月27日-JVM篇-JVM的永久代中会发生垃圾回收么?
如果有遗漏,评论区告诉我进行补充 面试官: JVM的永久代中会发生垃圾回收么? 我回答: 在Java虚拟机(JVM)的历史版本中,确实存在一个称为“永久代”(Permanent Generation, 或者简称PermGen)的内存区域。永久代主要用…...
Spring Boot教程之十: 使用 Spring Boot 实现从数据库动态下拉列表
使用 Spring Boot 实现从数据库动态下拉列表 动态下拉列表(或依赖下拉列表)的概念令人兴奋,但编写起来却颇具挑战性。动态下拉列表意味着一个下拉列表中的值依赖于前一个下拉列表中选择的值。一个简单的例子是三个下拉框,分别显示…...
基于混合ABC和A*算法复现
基于混合ABC和A*算法复现 一、背景介绍二、算法原理(一)A*算法原理(二)人工蜂群算法原理(三)混合ABC和A*算法策略 三、代码实现(一)数据准备(二)关键函数实现…...
狂野飙车8+(Asphalt 8+) for Mac 赛车竞速游戏 安装教程
Mac分享吧 文章目录 狂野飙车8(Asphalt 8) for Mac 赛车竞速游戏软件 效果图展示一、狂野飙车8(Asphalt 8) 赛车竞速游戏 Mac电脑版——v2.1.11️⃣:下载软件2️⃣:安装软件2.1 左侧安装包拖入右侧文件夹中,等待安装完成,运行软件…...
网络技术-VRRP(虚拟路由冗余协议)部署介绍
一、VRRP的含义 VRRP(Virtual Router Redundancy Protocol,虚拟路由冗余协议)是一种高度可靠的路由器备用协议,用于在局域网内部提供路由器冗余。 其部署方式主要是通过多个路由器组成一个虚拟路由器组,通过协议选…...
C语言解决空瓶换水问题:高效算法与实现
标题:C语言解决空瓶换水问题:高效算法与实现 一、问题描述 在一个饮料促销活动中,你可以通过空瓶换水的方式免费获得更多的水:3个空瓶可以换1瓶水。喝完这瓶水后,空瓶会再次变为空瓶。假设你最初拥有一定数量的空瓶&a…...
day2全局注册
全局注册代码: //文件核心作用:导入App.vue,基于App.vue创建结构渲染index.htmlimport Vue from vue import App from ./App.vue //编写导入的代码,往代码的顶部编写(规范) import HmButton from ./components/Hm-But…...
鸿蒙多线程应用-taskPool
并发模型 并发模型是用来实现不同应用场景中并发任务的编程模型,常见的并发模型分为基于内存共享的并发模型和基于消息通信的并发模型。 Actor并发模型作为基于消息通信并发模型的典型代表,不需要开发者去面对锁带来的一系列复杂偶发的问题,同…...
【失败经验】将算法模型封装为安卓应用
背景:不懂安卓开发,希望能使用大模型编码完成安卓应用生成,调用算法模型进行预测。 模型准备: pip方案安装pcnn; 然后需要将pytorch训练完成的算法模型保存为torchscript模型,然后使用pcnn转换为ncnn的模…...
ABAP OOALV模板
自用模板,可能存在问题 一、主程序 *&---------------------------------------------------------------------* *& Report ZVIA_OO_ALV *&---------------------------------------------------------------------* REPORT ZVIA_OO_ALV.INCLUDE ZVI…...
YOLOv8-ultralytics-8.2.103部分代码阅读笔记-autobatch.py
autobatch.py ultralytics\utils\autobatch.py 目录 autobatch.py 1.所需的库和模块 2.def check_train_batch_size(model, imgsz640, ampTrue, batch-1): 3.def autobatch(model, imgsz640, fraction0.60, batch_sizeDEFAULT_CFG.batch): 1.所需的库和模块 # Ultraly…...
SycoTec 4060 ER-S德国高精密主轴电机如何支持模具的自动化加工?
SycoTec 4060 ER-S高速电主轴在模具自动化加工中的支持体现在以下几个关键方面: 1.高精度与稳定性:SycoTec 4060 ER-S锥面跳动小于1微米,确保了加工过程中的极高精度,这对于模具的复杂几何形状和严格公差要求至关重要。高精度加工…...
部署 DeepSpeed以推理 defog/sqlcoder-70b-alpha 模型
部署 DeepSpeed 以推理 defog/sqlcoder-70b-alpha 这样的 70B 模型是一个复杂的过程,涉及多个关键步骤。下面是详细的步骤,涵盖了从模型加载、内存优化到加速推理的全过程。 1. 准备环境 确保你的环境配置正确,以便能够顺利部署 defog/sqlc…...
Python网络爬虫基础
Python网络爬虫是一种自动化工具,用于从互联网上抓取信息。它通过模拟人类浏览网页的行为,自动地访问网站并提取所需的数据。网络爬虫在数据挖掘、搜索引擎优化、市场研究等多个领域都有广泛的应用。以下是Python网络爬虫的一些基本概念: 1.…...
每天五分钟机器学习:支持向量机数学基础之超平面分离定理
本文重点 超平面分离定理(Separating Hyperplane Theorem)是数学和机器学习领域中的一个重要概念,特别是在凸集理论和最优化理论中有着广泛的应用。该定理表明,在特定的条件下,两个不相交的凸集总可以用一个超平面进行分离。 定义与表述 超平面分离定理(Separating Hy…...
TCP/IP网络协议栈
TCP/IP网络协议栈是一个分层的网络模型,用于在互联网和其他网络中传输数据。它由几个关键的协议层组成,每一层负责特定的功能。以下是对TCP/IP协议栈的简要介绍: TCP/IP协议模型的分层 1. 应用层(Application Layer)…...
利用编程思维做题之最小堆选出最大的前10个整数
1. 理解问题 我们需要设计一个程序,读取 80,000 个无序的整数,并将它们存储在顺序表(数组)中。然后从这些整数中选出最大的前 10 个整数,并打印它们。要求我们使用时间复杂度最低的算法。 由于数据量很大,直…...
详解MVC架构与三层架构以及DO、VO、DTO、BO、PO | SpringBoot基础概念
🙋大家好!我是毛毛张! 🌈个人首页: 神马都会亿点点的毛毛张 今天毛毛张分享的是SpeingBoot框架学习中的一些基础概念性的东西:MVC结构、三层架构、POJO、Entity、PO、VO、DO、BO、DTO、DAO 文章目录 1.架构1.1 基本…...
Unity C# 影响性能的坑点
c用的时间长了怕unity的坑忘了,记录一下。 GetComponent最好使用GetComponent<T>()的形式, 继承自Monobehaviour的函数要避免空的Awake()、Start()、Update()、FixedUpdate().这些空回调会造成性能浪费 GetComponent方法最好避免在Update当中使用…...
工作学习:切换git账号
概括 最近工作用的git账号下发下来了,需要切换一下使用的账号。因为是第一次弄,不熟悉,现在记录一下。 打开设置 路径–git—git remotes,我这里选择项是Manage Remotes,点进去就可以了。 之后会出现一个输入框&am…...
量化交易系统开发-实时行情自动化交易-8.量化交易服务平台(一)
19年创业做过一年的量化交易但没有成功,作为交易系统的开发人员积累了一些经验,最近想重新研究交易系统,一边整理一边写出来一些思考供大家参考,也希望跟做量化的朋友有更多的交流和合作。 接下来会对于收集整理的33个量化交易服…...
Scala习题
姓名,语文,数学,英语 张伟,87,92,88 李娜,90,85,95 王强,78,90,82 赵敏,92,88,91 孙涛,…...
结构方程模型(SEM)入门到精通:lavaan VS piecewiseSEM、全局估计/局域估计;潜变量分析、复合变量分析、贝叶斯SEM在生态学领域应用
目录 第一章 夯实基础 R/Rstudio简介及入门 第二章 结构方程模型(SEM)介绍 第三章 R语言SEM分析入门:lavaan VS piecewiseSEM 第四章 SEM全局估计(lavaan)在生态学领域高阶应用 第五章 SEM潜变量分析在生态学领域…...
OpenCV图像基础处理:通道分离与灰度转换
在计算机视觉处理中,理解图像的颜色通道和灰度表示是非常重要的基础知识。今天我们通过Python和OpenCV来探索图像的基本组成。 ## 1. 图像的基本组成 在数字图像处理中,彩色图像通常由三个基本颜色通道组成: - 蓝色(Blue&#x…...
C++ 类和对象(类型转换、static成员)
目录 一、前言 二、正文 1.隐式类型转换 1.1隐式类型转换的使用 2.static成员 2.1 static 成员的使用 2.1.1static修辞成员变量 2.1.2 static修辞成员函数 三、结语 一、前言 大家好,我们又见面了。昨天我们已经分享了初始化列表:https://blog.c…...
【网络安全设备系列】12、态势感知
0x00 定义: 态势感知(Situation Awareness,SA)能够检测出超过20大类的云上安全风险,包括DDoS攻击、暴力破解、Web攻击、后门木马、僵尸主机、异常行为、漏洞攻击、命令与控制等。利用大数据分析技术,态势感…...
Linux介绍与安装指南:从入门到精通
1. Linux简介 1.1 什么是Linux? Linux是一种基于Unix的操作系统,由Linus Torvalds于1991年首次发布。Linux的核心(Kernel)是开源的,允许任何人自由使用、修改和分发。Linux操作系统通常包括Linux内核、GNU工具集、图…...
深圳网站建设企业/防恶意点击软件
由于不懂程序。 所以选择了先做一个静态的网站。在考虑是用table,还是用 divcss 最后选择了table,因为是个仿站,做出来美观效果要尽量一样才可以。 现在网站已经上线一个月,想给自己点时间,第一,把整个页面…...
网站策划书内容/小说推广平台有哪些
https://blog.csdn.net/goodlook0123/article/details/79757722 我已经搭建成功...
建设银行扬中网站/上海网站建设哪家好
String是Java.lang包下的final类,其值是不可以改变的。String类实现了java.io.Serializable,Comparable<String>,CharSequence 这三个接口。 java.io.Serializable 接口是 序列化接口,实现此接口的类,可以序列化和反序列化此类对象。 C…...
做购物网站怎么赚钱/seo和sem的区别与联系
NOIP2018 复盘 前言 在这里立一个可能无法实现的flag: 把NOIP从古至今(luogu上有)的每一年都写一篇复盘!!! 伏拉格综合征开始了 在复盘就不讲那些伤心的话了。 D1T1 铺设道路 考试时居然不知道这道题是原题…...
该网站在工信部的icp ip地址/百度正版下载恢复百度
监听器-View Restults Tree(查看结果树) 查看结果树显示所有请求响应的树,允许您查看任何请求的响应。除了显示响应之外,您还可以查看获得此响应所需的时间,以及一些响应代码。请注意,请求面板仅显示 JMet…...
重庆网站建设与网络推广/怎样制作一个网站
Java几种常见的四舍五入的方法 题目要CSS布局HTML小编今天和大家分享编写一个四舍五入的函数,要CSS布局HTML小编今天和大家分享可以保留到小数点后面的任意一位。 java四舍五入的函数:Math.round 语法: Math.round(x); 参数: x 为一数值。 解释: 方法。返回对参数x四舍五入…...