Redis:介绍和认识,通用命令,数据类型和内部编码,单线程模型
介绍和认识
Redis是一个基于内存的,高性能的,支持许多数据类型的NoSQL数据库,可以持久化,也支持分布式。
在许多的互联网产品中,对于数据库的访问速度要求很高,例如Mysql数据库无法满足其要求,这时候Redis可以作为数据库来进行访问,因为Redis是通过内存进行存储,比Mysql在硬盘中存储的访问速度快了很多。
Redis就是基于网络进行通信,可以把自己内存中的变量给别的线程,甚至别的主机进行使用(Redis是一个运行在某台主机上的服务进程,将数据保存在自己的内存中,然后通过网络提供服务,其他的线程,进程,主机都可以通过网络连接访问这些内存数据,像是调用远程变量一样)。
有些服务将Mysql和Redis结合起来一起使用(二八原则),百分之二十的热点数据,能满足百分之八十的需求。
Redis是内存中存储数据的中间键,通过内存进行存储,用于作为数据的缓存。
Redis是通过键值对来组织存储的非关系型数据库
Mysql是通过表的方法来组织存储的关系型数据库。
Redis的持久化,Redis是将数据存储到内存中的,为了防止关机,重启使数据丢失,Redis会将数据备份到硬盘中,内存为主,硬盘为辅
Redis快的原因:
- 通过内存进行存储,比访问硬盘的数据库快了很多。
- Redis的核心功能都是简单的逻辑关系
- 在网络的角度上,Redis使用的是IO多路复用的方式(epoll),使用一个线程,管理多个socket
- Redis使用的是单线程模式,避免了线程之间不必要的竞争开销
Redis的安装
我是在Ubuntu下进行的安装
使用apt进行安装
apt install redis -y
启动Redis
service redis-server start
记得修改.conf配置文件中的
将其修改为
注:之前的是只允许访问本机,不能跨机器进行访问
使用redis自带的客户端来连接服务器
redis-cli
Redis的通用命令
set
通过键值对的形式(key和value)进行存储
将a1的值设置为v1
set a1 v1
get
根据key来取value
get a1
如果得到一个不存在的key将会得到nil,表示为空
Redis的全局命令
全局命令就是能够搭配任意的数据结构来使用的命令
Redis支持很多种数据类型,简单的来说,Redis就是键值对的结构,key就是字符串,value对应的就是各种的数据类型(hash,String,set,list等)
keys
用来查找满足匹配类型的key(满足样式的key)
?匹配任意单个字符
* 匹配0个或者多个任意字符
[a c b] 匹配满足[]内的字符
[^a] 排除a字符,其他都满足
[a-c]a-c之间的字符满足
exists
判断某个key是否存在
redis自身的键值对,是通过哈希表进行组织的
del
删除指定的key
expire
为指定的key设置过期时间,单位是秒
key存活超过这个指定的存活时间,就会被自动的删除
ttl
查看指定key的存活时间
redis的key的过期策略是如何是实现的
- 1.定时删除,设置key的过期时间,到过期时间,自动删除key
- 2.惰性删除,通过命令访问key,Redis会检查可以是否过期,如果过期,会直接进行删除,并返回null
- 3.定期删除,Redis每隔一段时间会挑选一批设置了过期时间的key,检查是否过期,如果超过一定比例的key过期,则会加速删除的频率,直到比例下降
type
返回key的数据类型
数据类型和内部编码
查看内部编码
Redis的单线程模式
Redis只使用一个线程,处理所有的命令请求,不是说Redis服务器进程内部真的只有一个线程,其实也有多个线程,多个线程是在处理网络IO。
如果多个客户端同时对Redis发送了请求,Redis对多个请求采用串行执行,一个接着一个执行
注:Redis特别需要注意,如果一个操作占用太长的时间,就会堵塞其他的请求。
Redis是单线程模型,为什么访问那么快
1.Redis访问内存,数据库直接访问硬盘
2.Redis的核心功能,比Mysql的核心功能更加的简单,不像数据库中有各种约束,会使其做额外的工作
3.Redis是单线程模式,避免了多线程之间不必要的竞争开销
4.处理网络IO,使用expoll这样的IO多路复用机制,一个线程可以管理多个socket
希望能对大家有所帮助!!!!!!
相关文章:

Redis:介绍和认识,通用命令,数据类型和内部编码,单线程模型
介绍和认识 Redis是一个基于内存的,高性能的,支持许多数据类型的NoSQL数据库,可以持久化,也支持分布式。 在许多的互联网产品中,对于数据库的访问速度要求很高,例如Mysql数据库无法满足其要求,…...
N2语法 強調、限定
1,~限りでは 接続:认知类动词 意味:据…所… 例文: 私の知る限りでは、彼は悪い人ではありません。(据我所知,他不是坏人) 私の調べた限りでは、彼は悪人では…...
OpenAI 即将推出 GPT-5:开启多模态、持续记忆对话新时代
2025年5月起,关于 OpenAI 新一代旗舰模型 GPT-5 的传闻不断升温。根据多方可信消息,OpenAI 正在积极准备 GPT-5 的正式发布,预计将在 2025 年夏末上线。这一代模型不仅是在规模上的升级,更是在能力与交互模式上的一次突破。 本文…...
《前端面试题:CSS预处理器(Sass、Less等)》
CSS预处理器深度解析:Sass与Less的全面指南 掌握CSS预处理器是现代前端开发的必备技能,也是提升开发效率的关键工具 一、为什么需要CSS预处理器? 在现代前端开发中,原生CSS的局限性日益明显: 缺乏编程特性࿰…...

嵌入式开发之STM32学习笔记day20
STM32F103C8T6 PWR电源控制 1 PWR简介 PWR(Power Control)电源控制单元是STM32微控制器中一个重要的组成部分,它负责管理系统的电源管理功能,以优化功耗并提高效率。PWR负责管理STM32内部的电源供电部分,可以实现可编…...
vue-19(Vuex异步操作和变更)
异步操作和变更 异步操作和变异对于 Vuex 中的状态管理至关重要,尤其是在处理数据获取、API 调用或任何需要时间完成的操作时。正确处理异步操作可以确保应用程序的状态保持一致和可预测。本章将深入探讨异步操作的复杂性、它们与变异的关系以及有效管理它们的最佳…...
人工智能-Chain of Thought Prompting(思维链提示,简称CoT)
Chain of Thought Prompting(思维链提示,简称CoT) 是一种通过引导大模型生成中间推理步骤来增强其复杂问题解决能力的技术。它让模型在回答问题时,不仅输出最终答案,还展示出逐步分解问题、逻辑推理的过程。以下是大模…...
[GESP202412 五级] 奇妙数字 题解
解题思路引用 FJ_EYoungOneC的解法 数字 x 是奇妙数字当且仅当 xpa 其中 p 为任意质数且 a 为正整数。 那么我们可以对 n 进行质因子分解,并统计每个质数因子的个数。 假设数字 n 含有 9 个因子 2,那么可以凑出 21,22,23,共三个数。 那么…...
《操盘实战》速读笔记
文章目录 书籍信息概览第一部分 趋势困惑第二部分 入仓困惑第三部分 止损困惑第四部分 止盈困惑第五部分 资管困惑第六部分 交易系统困惑第七部分 心态困惑 书籍信息 书名:《操盘实战:如何走出股票、期货的交易困境》 作者:张胜波 概览 第…...
元素 “cas:serviceResponse“ 的前缀 “cas“ 未绑定
错误信息“元素 ‘cas:serviceResponse’ 的前缀 ‘cas’ 未绑定”表明 XML 文档包含带有命名空间前缀 cas 的元素,但未定义或正确绑定该前缀。以下是解决此问题的步骤: 1. 理解问题 XML 命名空间:XML 元素可以通过前缀(如 cas&…...
CppCon 2014 学习:CHEAP, SIMPLE, AND SAFE LOGGING USING C++ EXPRESSION TEMPLATES
这段代码定义了一个简单的日志宏 LOG,用来在代码里方便地打印调试信息。 代码细节解析: #define LOG(msg) \if (s_bLoggingEnabled) \std::cout << __FILE__ << "(" << __LINE__ << "): " << msg &…...

专业级PDF转CAD解决方案
PDF 文件因其出色的便携性和稳定性,已成为许多用户的首选格式。但在涉及图像编辑或精细调整时,CAD 文件显然更具优势。 这款 CAD 图纸转换工具,界面清爽、操作直观,是处理图纸文件的理想助手。 它不仅支持不同版本 CAD 文件之间…...
如何屏蔽端口
通过Windows防火墙屏蔽端口 1. 按下“Windows”键“R”键,输入“control”并回车,打开控制面板。 2. 在控制面板中找到“系统和安全”,点击进入。 3. 选择“Windows Defender 防火墙”,然后在左侧点击“高级设置”。 4.…...
nvidia系列教程-agx-orin安装ros
目录 前言 一、安装前的准备工作 二、ROS安装 三、ROS验证 总结 前言 在机器人开发、自动驾驶等领域,NVIDIA Jetson AGX Orin 凭借其强大的算力成为开发者的得力工具。而 ROS(Robot Operating System)作为机器人领域广泛使用的开源框架,为开发者提供了丰富的功能和工具。…...

STM32 智能小车项目 两路红外循迹模块原理与实战应用详解
在嵌入式系统、机器人、智能设备等场景中,红外反射型光电传感器 被广泛应用于黑白识别、障碍检测、物体计数、位置判断等任务。其中,RPR220 是一款性能稳定、体积小巧的红外光电收发管,本文将详细介绍其工作原理、引脚参数、接线说明以及典型…...
[论文阅读] 软件工程 | 量子计算如何赋能软件工程(Quantum-Based Software Engineering)
arXiv:2505.23674 [pdf, html, other] Quantum-Based Software Engineering Jianjun Zhao Subjects: Software Engineering (cs.SE); Quantum Physics (quant-ph) 量子计算如何赋能软件工程 我们在开发软件时,常常会遇到一些棘手的问题。比如,为了确保软…...

SSL安全证书怎么安装?
SSI并非一个标准的、广为人知的安全证书类型,通常网站安装的是SSL/TLS证书,用于加密网站和用户浏览器之间的通信,保障数据传输安全。以下以安装SSL/TLS证书为例,介绍网站安装证书的步骤: 一、证书申请与获取 选择证书…...
Python爬虫实战:研究RoboBrowser库相关技术
1. 引言 1.1 研究背景与意义 随着电子商务的快速发展,商品信息呈现爆炸式增长。据 Statista 数据显示,2025 年全球电子商务销售额预计将达到 7.4 万亿美元,海量的商品数据蕴含着巨大的商业价值。对于电商企业而言,及时获取竞争对手的产品信息、价格动态和用户评价,能够帮…...

电子电器架构 --- OTA测试用例分析(上)
我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 钝感力的“钝”,不是木讷、迟钝,而是直面困境的韧劲和耐力,是面对外界噪音的通透淡然。 生活中有两种人,一种人格外在意别人的眼光;另一种人无论…...
最小硬件系统概念及其组成
在嵌入式系统开发中,“最小硬件系统(Minimum Hardware System)”或“最小系统(Minimal System)”指的是微控制器(MCU)能够运行其内部程序(通常是存储在内部Flash中的代码)…...

抑郁症患者数据分析
导入数据 import pandas as pd from pyecharts.charts import * from pyecharts import options as optsdfpd.read_csv(YiYuZheng.csv) df.head(1)Patient_nameLabelDateTitleCommunicationsDoctorHospitalFaculty0患者:女 43岁压抑05.28压抑 个人情况:…...
ros2--图像/image
原始图像 接口类型: 压缩图像 接口类型: sensor_msgs/msg/CompressedImage ros2 interface show sensor_msgs/msg/CompressedImage # This message contains a compressed image.std_msgs/Header header # Header timestamp should be acquisition ti…...

Rust 学习笔记:关于智能指针的练习题
Rust 学习笔记:关于智能指针的练习题 Rust 学习笔记:关于智能指针的练习题问题一问题二问题三问题四问题五问题六问题七问题八问题九问题十 Rust 学习笔记:关于智能指针的练习题 参考视频: https://www.bilibili.com/video/BV1S…...

6.RV1126-OPENCV 形态学基础膨胀及腐蚀
一.膨胀 1.膨胀原理 膨胀的本质就是通过微积分的转换,将图像A和图形B进行卷积操作合并成一个AB图像。核就是指任意的形状或者大小的图形B。例如下图,将核(也就是图形B)通过微积分卷积,和图像A合并成一个图像AB。 2.特点 图像就会更加明亮 …...

筑牢企业网管域安全防线,守护数字核心——联软网管域安全建设解决方案
在当今数字化浪潮中,企业网管域作为数据中心的核心,其安全防护至关重要。一旦网管域遭受攻击,整个网络系统可能陷入瘫痪,给企业带来巨大损失。联软科技凭借其创新的网管域安全建设解决方案,为企业提供了全方位的安全保…...

【目标检测】backbone究竟有何关键作用?
backbone的核心在于能为检测提供若干种感受野大小和中心步长的组合,以满足对不同尺度和类别的目标检测。...

一个小小的 flask app, 几个小工具,拼凑一下
1. 起因, 目的: 自己的工具,为自己服务。给大家做参考。项目地址: https://github.com/buxuele/flask_utils 2. 先看效果 3. 过程: 一个有趣的 Flask 工具集:从无到有的开发历程 缘起:为什么要做这个项目ÿ…...

对抗性提示:大型语言模型的安全性测试
随着大语言模型(LLM)在虚拟助手、企业平台等现实场景中的深度应用,其智能化与响应速度不断提升。然而能力增长的同时,风险也在加剧。对抗性提示已成为AI安全领域的核心挑战,它揭示了即使最先进的模型也可能被操纵生成有…...

好得睐:以品质守味、以科技筑基,传递便捷与品质
据相关数据显示,超市半成品菜是冻品区增长最快品类,再加上商超渠道作为消费者日常高频接触场景,是促进半成品菜成为冻品生鲜消费领域的关键一环。好得睐作为半成品菜领军品牌,其商超渠道布局是连接消费者与品质生活的重要桥梁。商…...

docker-部署Nginx以及Tomcat
一、docker 部署Nginx 1、搜索镜像(nginx) [rootlocalhost /]# docker search nginx Error response from daemon: Get "https://index.docker.io/v1/search?qnginx&n25": dial tcp 192.133.77.133:443: connect: connection refused 简…...