[log]Redis 学习

银河麒麟V10ARM架构服务器离线安装docker\nacos【附安装包】 本文分享了在银河麒麟ARM64操作系统上安装Docker和Nacos的完整过程。首先提供了Docker的自动化安装脚本,包含服务配置、存储路径设置等关键步骤,并给出了常用维护命令。接着详细介绍了通过Docker-compose部署Nacos的方法,包括镜像导入、配置文件修改、鉴权设置等注意事项,特别强调了密钥长度必须超过32个字符的要求。文章还提供了Nacos初次登录的注意事项,并预告了后续可能推出的Redis、Nginx等安装教程。所有配置文件和脚本均可直接下载使用,适合内网环境下国产操作系统的部署 阅读详情

http://redisbook.com/

简介

是一个c语言编写的数据缓存工具,以key-value形式进行数据存储

daemonize  yes # redis-server 以守护进程的方式后台运行

进入redis-cli
在这里插入图片描述
查看redis实例信息

  • server 服务器信息
  • clients 客户端连接的状态和指标
  • memory 大致的内存消耗指标
  • persistence 数据持久化相关的状态和指标
  • state 总体统计数据
  • replication 主从复制相关的状态和指标
  • cpu cpu使用情况
  • cluster cluster的状态
  • keyspace 相关的统计数据

详细的参数信息

https://blog.youkuaiyun.com/mysqldba23/article/details/68066322

redis 最大程度的利用了单线程、非阻塞的I/O模型来快速的处理请求,提高性能。

redis包含一个简单但功能强大的异步事件库ae,封装了不同操作系统的polling机制,

polling机制
例如餐厅吃饭排号,领完号之后等待通知, 收到通知之后,自己取餐。
polling过程总没有线程或子线程的创建和交互,因此是一个轻量级的上下文切换的IO模型
在这里插入图片描述

客户端等待服务器的通知,收到服务器的通知后,自己取回结果

polling 过程中没有线程或子进程的创建和交互,
是一个轻量级上下文切换的IO模型

可以通过tcp协议与redis进行通讯,
术语协议,代表网络通信中服务器和客户端之间使用的语言,
redis中这种协议叫做RESP redis序列化协议,Redis serialization protocol

keys 命令会使redis服务器阻塞,知道所有的键都返回,

scan 可以在不阻塞服务器的情况下在redis服务器上遍历

数据类型

字符串

set
get
appent
exist
setnx  # 原子性,仅在键不存在时设置键的值

列表

存储一组对象,可以用做栈或者队列,
更像是数据结构中的双向链表

lpush
rpush
linsert # 插入
lindex
lpop # 左端删除
rpop 	

阻塞BLPOP、BRPOP,当列表为空时,客户端会阻塞,可以指定一个超时时间

内部使用了quicklist储存列表对象

位图

使用bit组成的数组,实际底层数据类型是字符串,本质上是二进制大对象
可以使用redis bitmap 用来统计用户活跃数量,可以节省大量的内存空间

https://www.jianshu.com/p/62cf39db5c2f

有序集合

集合中的每个元素拥有一个可用于排序的权重,可以按顺序从集合中获取元素

可以用来实现 排行榜、等排名的功能

https://blog.youkuaiyun.com/loophome/article/details/50373202

有序集合的实现

https://www.cnblogs.com/WJ5888/p/4516782.html

使用了跳表的数据结构,是一种随机化的数据结构,

选取一些特定的元素做索引,当元素达到一定数量,继续做二级索引等,
当查找元素时,可以先与索引做比较,缩小查找范围,然后在进行进一步查找
以空间换时间

跳表具有如下性质:

(1) 由很多层结构组成

(2) 每一层都是一个有序的链表

(3) 最底层(Level 1)的链表包含所有元素

(4) 如果一个元素出现在 Level i 的链表中,则它在 Level i 之下的链表也都会出现。

(5) 每个节点包含两个指针,一个指向同一链表中的下一个元素,一个指向下面一层的元素。

跳表的基本原理

https://www.cnblogs.com/a8457013/p/8251967.html

redis管道

就是将多个命令打包一次性发送,来减少往返的延时

hyperloglog

原理,有点复杂

https://www.jianshu.com/p/55defda6dcd2

应用场景

https://blog.youkuaiyun.com/maoyuanming0806/article/details/81814610

事务

https://redisbook.readthedocs.io/en/latest/feature/transaction.html

发布订阅

subscribe 会自动创建频道,
该频道没有订阅者,发布到该频道的消息就会丢弃
不支持持久化,

复制机制

  • 部分重新同步
  • 完全重新同步

进行完全同步时,为了将所有的数据复制到从实例中,
主实例需要将数据转存储到一个RDB文件中,然后将文件发送给从实例,
从实例接受到RDB文件后,会先将内存中的所有数据清除,再将RDB文件中的数据导入,
主实例上的复制过程是完全异步的。

部分同步不需要从主实例中传输完整的数据存储文件。
将数据转存储到RDB文件中会创建一个后台进程
在这里插入图片描述

主实例接受来自从实例的完全重新同步请求会,创建一个后台进程将数据转存储到磁盘上,将转存储的数据发送给实例。

重启后,会将进行部分重新同步,redis 能够从RDB文件中重新加载master_replid和offset,从而使部分重新同步

从实例被提升为主实例时,新主实例会记录旧主实例的master_replid和offset

repl-backlog-size

redis主实例失去与从实例的网络连接期间,主实例上的一段内存(实际是一个环形缓冲区)会跟踪最近所有写入命令,这个缓冲区实际上是一个固定长度的列表。

这个缓冲区称为replication backlog,
用来决定是完全重新同步还是部分重新同步。

发出SLACEOF命令后,
从实例使用最后一个offset和最后一个主实例的ID(master_replid) 向主实例发送一个部分重新同步请求,
请求建立之后,会检查master_replid是否一致,
主实例检查请求中offset能否中backlog缓冲区中获取,在不在backlog的范围内,

backlog缓冲区的大小是1mb,只能容纳少量的写命令,
当断开连接时生成的数据大于缓冲区,就会执行完全重新同步.
在这里插入图片描述

主实例断开连接后,重新连接从实例,主从复制可以继续复制,断点续传,

当从实例断开后,重新连接之后,会重现连接主实例

主从复制建立之后,主实例首先以RDB文件形式将内存中的数据发送给从实例,
在这期间执行的写命令会会被缓存在一个slave client buffer 的缓冲区,
rdb加载之后,主实例会将这个缓冲区的内容发送给从实例

redis的键过期机制是由主实例驱动的,过期时,会向所有的从实例发送一个del命令,

redis服务器的命令处理引擎是单线程的,阻塞会导致复制超时.
repl-ping-slave-period的值必须小于repl-timeout的值

持久化

RDB:某一时间点上的快照,适合于备份和灾难恢复
AOF:写入操作的日志,在服务器启动时被重放

AOF的数据一致性比RDB更高

AOF功能被启用时,
redis将会在数据目录中创建AOF文件,
默认文件名是appendonly.aof,
当接收到一个会实际修改内存数据的写入命令时,
就会追加到AOF文件中.

操作系统实际上维护了一个缓冲区,redis的命令首先会被写入这个缓冲区中.
缓冲区中的数据必须被刷新到磁盘中才能被永久保存.
这个过程时通过linux系统调用fsync完成的,是一个阻塞调用,
只有磁盘设备报告缓冲区中的数据写入完成后才会返回
通过appendfsync来调整调用fsync的频率

  • always 每个命令都调用fsync
  • everysec 每秒调用一次
  • no 永远不调用

AOF重写 来压缩AOF文件
redis中的某些键可能已经被删除或过期了,
可以在AOF文件中将其清楚

混合持久化模式

redis保证RDB转储和AOF重写不会同时进行。

redis 启动时,RDB和AOF持久化同时启用且AOF、RDB文件都存在,redis总是会先加载aof文件,因为aof文件能够提供可靠的一致性。

当启用了混合持久化,那么redis首先检查aof的前五个字符,如果是redis,那么该aof文件就是混合模式,
redis服务器会加载rdb部分,再加载aof部分。

redis 集群部署

哨兵模式 一主两从

https://www.jianshu.com/p/06ab9daf921d

cluster-enabled yes # 来启用集群功能

三主三从

https://blog.youkuaiyun.com/youngflycode/article/details/81274092

分布式原理

https://blog.youkuaiyun.com/andy86869/article/details/81668317

– raw # 显示中文

memory usage key # 估算一个键的内存使用情况

常见问题

在这里插入图片描述

slowlog-log-slower-than 指定阀值,超过这个阀值的操作都会被记录下来,
通过 slowlog get 获取所有的慢日志
在这里插入图片描述
通过 redis-cli 的 – latency-history 和 -i 选项来监控redis服务器的ping 延迟实现

在这里插入图片描述

分布式锁

redisson

https://www.jianshu.com/p/6f7d6a1c3bc2

OpenRadar Matlab版:毫米波雷达信号处理全流程开源库详解 毫米波雷达数据解析与信号处理是感知领域的基础能力。本文介绍毫米波雷达从ADC原始采样到距离-多普勒(Range-Doppler)热图、CFAR检测、DOA估计直至点云与生命体征参数提取的完整处理链路,并深入讲解OpenRadar(Matlab版)开源库的内核设计、核心API与实测经验。从原理上看,距离FFT与多普勒FFT构成RD谱,CFAR自适应阈值实现目标检测,相位解缠与滤波用于呼吸心跳提取。技术价值在于将繁琐的雷达数据读取、矩阵变换和算法流程标准化,免去重复造轮子。可应用于人员存在感知、生命体征监护、4 阅读详情

相关推荐

别再拍脑袋估工时了!手把手教你用FPA功能点分析法,给软件项目算笔明白账

本文详细介绍了FPA功能点分析法在软件开发工作量评估中的应用,帮助团队告别拍脑袋估算。通过量化系统功能组件,FPA提供客观的工时和成本预估,特别适合需求不明确的项目初期。文章以财务系统为例,拆解FPA计算流程,并分享实用估算模板,助力技术管理者提升项目规划能力。

weixin_42614269的博客 386

Redis基础篇-14-Redis的其他用法---延时队列

使用过 Rabbitmq 的同学知道它使用起来有多复杂,发消息之前要创建 Exchange,再创建 Queue,还要将 Queue 和 Exchange 通过某种规则绑定起来,发消息的时候要指定 routing-key,还要控制头部信息。Redis 的消息队列不是专业的消息队列,它没有非常多的高级特性,没有 ack 保证,如果对消息的可靠性有着极致的追求,那么它就不适合使用。可是如果队列空了,客户端就会陷入 pop 的死循环,不停地 pop,没有数据,接着再 pop,又没有数据,这就是浪费生命的。

Alan0517 231

Tessent --- PDL

当关联的ICL模块是当前ICL顶部模块时,即当它与当前设计匹配时,只能iCall一个iTopProc。但是,可以在iTopProc内调用iCall iProc或iTopProc。为指定后续iProc命令引用的ICL模块,发出这个命令之后,随后定义的iProc都会对应的ICL模块进行定义。为后续iCall调用,当使用iCall命令调用该过程时,参数列表中的变量将被替换为iCall命令中指定的值。在调用iProc时,运行iProc内的命令。PDL是面向工程师的,工程师利用PDL语言,对ICL中的单元进行控制。

qiantianyiqian的博客 2780

Redis学习笔记 - Slow Log 慢查询日志

什么是 SLOW LOG 1. Slow log 是 Redis 用来记录查询执行时间的日志系统。 2. 查询执行时间指的是不包括像客户端响应(talking)、发送回复等 IO 操作,而单单是执行一个查询命令所耗费的时间。 3. slow log 保存在内存里面,读写速度非常快,因此你可以放心地使用它,不必担心因为开启 slow log 而损害 Redis 的速度。 SLOW LOG 慢...

lm324114的专栏 558

DFRobot MGC3130电容式手势传感器库深度解析

电容式近场感应(Electric Near Field Sensing)是一种非接触、抗干扰的三维空间感知技术,其原理基于人体介电特性对高频电场的扰动响应,具备低功耗、高鲁棒性与零物理接触等核心优势。该技术广泛应用于医疗人机交互、工业HMI、智能家电等对可靠性与环境适应性要求严苛的嵌入式场景。DFRobot_MGC3130库正是面向Microchip MGC3130芯片的工程化实现,封装了I²C驱动、ASU硬件加速调度及多层抽象API,支持手势识别、触控检测与接近唤醒等功能动态切换。结合电容式近场感应与嵌入

weixin_34620658的博客 547

第八篇 永磁同步电机控制-MTPA、MTPV

MTPA 的全称是 Maximum Torque Per Ampere,即 最大转矩电流比控制。核心思想:在输出特定转矩时,通过控制定子电流的幅值和相位(即d轴和q轴电流的分量),使得所需要的定子电流幅值最小。通俗理解:就是用“最省电”的方式产生所需要的力矩。就像开车时,找到一个最合适的油门和档位配合,使得在输出相同动力时,油耗最低。

深耕汽车电子:AUTOSAR、电机控制,助力数字汽车 1867

mysql get slow log_Redis学习笔记 - Slow Log 慢查询日志

什么是 SLOW LOG1. Slow log 是 Redis 用来记录查询执行时间的日志系统。2. 查询执行时间指的是不包括像客户端响应(talking)、发送回复等 IO 操作,而单单是执行一个查询命令所耗费的时间。3. slow log 保存在内存里面,读写速度非常快,因此你可以放心地使用它,不必担心因为开启 slow log 而损害 Redis 的速度。SLOW LOG 慢查询配置项1. ...

weixin_39907939的博客 290

立创开源4G+GPS定位系统:基于微信小程序的低成本低功耗追踪方案

本文介绍了一个基于立创开源平台的超小型4G+GPS定位系统方案。该方案采用28mm*28mm主板,集成4G Cat.1通信与GPS定位,通过微信小程序“点灯专家”实现远程追踪管理,具备低成本、低功耗、易于部署的特点,适用于电动车、宠物、资产追踪等多种场景。

weixin_28895791的博客 393

Redis(三十九)

总体来说,如果你想转行从事程序员的工作,Java开发一定可以作为你的第一选择。但是不管你选择什么编程语言,提升自己的硬件实力才是拿高薪的唯一手段。如果你以这份学习路线来学习,你会有一个比较系统化的知识网络,也不至于把知识学习得很零散。我个人是完全不建议刚开始就看《Java编程思想》、《Java核心技术》这些书籍,看完你肯定会放弃学习。建议可以看一些视频来学习,当自己能上手再买这些书看又是非常有收获的事了。《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

Z70czd的博客 591

044、手持视频抖动严重?OpenCV 光流 + IMU 融合的电子防抖工程方案

本文探讨了基于OpenCV光流和IMU融合的手持视频电子防抖方案。作者从实际工程经验出发,分析了纯光流和纯IMU方案的局限性,指出时间戳对齐和坐标系标定是关键挑战。文章详细介绍了融合滤波器的实现方法,推荐互补滤波替代卡尔曼滤波,并提出了动态调整融合系数的策略。在光流算法优化方面,建议采用网格化FAST特征点和前后向误差检测。最后分享了运动补偿裁剪策略和多线程流水线设计,强调在嵌入式设备上使用NEON指令优化性能。该方案通过精确的时间同步和传感器融合,有效解决了手持拍摄中的高频抖动问题。

ai技术增长的博客 250

AIGC游戏本地化:用AI实现多语言自动翻译

游戏本地化是游戏全球化战略的关键环节,传统人工翻译方式成本高、周期长。本文旨在探讨如何利用AIGC技术实现高效、准确、低成本的游戏多语言自动翻译解决方案。我们将覆盖从文本翻译到语音合成的完整本地化流程,重点关注AI技术在游戏特定语境下的应用优化。文章首先介绍游戏本地化的核心挑战和AI解决方案,然后深入讲解关键技术原理,接着通过实战项目演示具体实现,最后讨论应用场景和未来趋势。AIGC:人工智能生成内容,指利用AI技术自动生成文本、图像、音频等内容本地化(Localization)

AI 领航者的博客 1336

【spring】学习

-Spring Cache注解+Redis---------------shiro---------------------------------------------------------《跟我学Shiro》PDF完结版下载  

ncutlh的专栏 120

RK3576 调试ov2735 mipi-csi摄像头

摘要:本文记录了基于RK3576平台调试OV2735 MIPI摄像头的全过程。开发环境采用Linux 6.1内核和Buildroot文件系统。调试步骤包括:1)硬件检查(电源、晶振和引脚连接);2)驱动配置(设备树节点、ISP通道设置);3)驱动验证(通过ID检测和I2C工具测试);4)推流测试(使用v4l2和gstreamer工具)。重点解决了复位引脚配置、时钟命名匹配等关键问题,并通过寄存器检查确保初始化正常。最终实现了摄像头数据流的成功输出,为嵌入式视觉应用开发提供了完整参考方案。

qq_45147279的博客 1060

Redis Pro高级技巧:如何利用Slow Log功能优化Redis性能

Redis作为高性能的内存数据库,在处理大量并发请求时可能会遇到性能瓶颈。**Redis Pro**作为专业的Redis桌面管理工具,提供了强大的Slow Log功能,可以帮助开发者快速定位和解决Redis性能问题。本文将详细介绍如何使用Redis Pro的Slow Log功能,轻松识别慢查询并优化Redis性能。 ## 什么是Redis Slow Log? Redis Slow Log是Re

gitblog_00642的博客 795

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

docker启动redis指定配置文件的log路径

我整理的一些关于【Docker】的项目学习资料(附讲解~~)和大家一起分享、学习一下:https://d.51cto.com/xltfovDocker启动Redis并指定配置文件的Log路径 随着微服务架构的普及,容器化技术越来越受到开发者的青睐。在众多的容器化工具中,Docker以其简洁和易用的特性成为了行业的标准。当...

weixin_33554506的博客 398

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

被面试官问:MySQL 有 Redo Log,为什么 Redis 还要搞个 AOF?我直接语塞了。

摘要:本文对比了MySQL和Redis的日志系统设计差异

Tjy2186987211的博客 519

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Redis应用-Log汇总

最近项目中使用Redis比较多,非常喜欢这个小巧而强大的家伙。 准备写一个简单的系列,讲述使用Redis可以做什么,我们将充分挖掘Redis的潜能。 这是第一篇,准备用Redis作为Log汇总。   Redis介绍 Reids是一个比较高级的开源key-value存储系统,采用ANSI C实现。其与memcached类似,但是支持持久化数据存储,同时value支持多种类型:字符串 (同...

Erlang Display - Erlang问答社区:www.erlangqa.com 287

使用Redis加速深度学习模型(Spring/Python/Redis)

在深度学习项目中使用redis 使用Redis的List数据类型做为缓存队列,并利用Redis的高速度,对大量的识别请求进行缓存,然后获取缓存的信息并投放到深度学习模型。利用内存数据库缓存机制将巨大的流量挡在了模型之前,有效减少了高峰期对模型服务器的负荷。

银湖冰河 3973

Redis学习

第二种定时器:基于时间轮实现,把时间划分为多个小块,按照某个方向进行旋转,每个时间块挂着一个链表,每个链表代表一串任务,类似C指针,当有任务添加,就按照当前时间指针指向的位置结合该任务的过期时间,放置在对应的时间块链表里,当时间指针轮转到某个时间块后就进行删除该链表里过期的任务,该链表里可能会存在时间非常长,但是按照时间轮的时间划分,转了很多圈后被设置到这个时间块链表下,所以时间指针指向这块链表时,需要对链表里的数据再判断一次,不是直接删除整个链表。但主节点和从节点之间的数据同步,是存在延时的!

2301_82332753的博客 1364

Redis学习笔记之Redis的安装和配置

官网下载Redis gz压缩包放在linux目录/opt下 进入/opt目录,解压Redis cd /opt tar -zxvf redis-5.0.8.tar.gz 进入redis安装包目录内执行make命令安装redis cd redis-5.0.8 make 如果提示gcc : 命令未找到 yum install gcc-c++ 安装gcc编译工具 借鉴博客: https://blog.csdn.net/LYJwonderful/article/details/79673992 不过现

一名码农的博客 222

如何通过日志先行原则保障数据持久化:Redis AOF 和 MySQL redo log 的对比

日志先行原则(WAL)是分布式系统和数据库确保数据一致性与恢复能力的关键机制。本文探讨了Redis AOF和MySQL redo log如何应用WAL原则,解决内核Page Cache带来的可靠性问题。Redis通过AOF重写机制合并冗余命令保持日志精简,而MySQL采用循环写入方式避免redo log无限增大。两者都通过先写日志再操作数据的方式,在保证高性能的同时确保数据持久化,有效平衡了系统可靠性与存储效率。这些机制共同解决了日志文件膨胀问题,为数据安全提供了双重保障。

weixin_54574094的博客 924

一文吃透 Redis 跳表层数:为什么是 log₄(N),以及 Level 4 / 5 何时出现

Redis ZSet 使用跳表作为有序结构,其层数由随机晋升决定(概率p=1/4),高度期望为log₄(N)。跳表是概率性结构,各层出现与否取决于元素规模(如Level 4在256元素时概率约63%)。Redis选择1/4概率而非1/2,以较少索引节点换取内存节省,保持O(log N)查询和O(N)空间复杂度。理解跳表需明确三点:随机性、期望高度和概率性层级分布。

Knight 768

docker run redis容器log错误

目录结构 docker --redis --Dockerfile --redis.conf Dockerfile文件内容 #base images FROM centos7:v1 #MAINTAINER MAINTAINER 305400706@qq.com # set time ENV TIME_ZOME Asia/Shanghai #cd /o...

u010683991的博客 2804

xmapp下安装log4php,phpunit,redis扩展

xmapp下安装log4php,phpunit,redis扩展(1)安装log4php启动xamp点shell执行命令:pear upgrade-allpear update-channelsTo install from the Apache log4php PEAR channel:pear channel-discover pear.apache.org/log4phppear install

拼搏的小船长 953

redis slow log采集

价值意义 1.便于统计分析,以往只能一个节点一个节点看,采集到一起方便分析 2.慢日志持久化,类比MySQL,mysql是有日志文件的,而redis是内存队列FIFO 3.redis是单线程的slowlog的监控分析很有意义,严重会导致系统雪崩 设计概要 实现原理 slowlog get [len]和slowlog reset。 slowlog get [len]命令获取指定长度的慢查询列表。 redis 127.0.0.1:6379> slowlog get 2...

阿拉斯加大闸蟹的博客 3594
上一篇: brew
下一篇: [log]brew install mongodb
go_sparrow
博客等级 码龄11年 25粉丝 257原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值