Resid总结

article/2025/8/15 8:02:29

Redis是什么?

Redis:REmote DIctionary Server(远程字典服务器)

是完全开源免费的,用C语言编写的,遵守BSD协议,是一个高性能的(key/value)分布式内存数据库,基于内存运行并支持持久化的NoSQL数据库,是当前最热门的NoSql数据库之一,也被人们称为数据结构服务器。

Redis与其他key-value缓存产品的有以下三个特点:

Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用

Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储

Redis支持数据的备份,即master-slave模式的数据备份

Redis启动后杂项基础知识讲解

1、单进程:单进程模型来处理客户端的请求。对读写等事件的响应是通过对epoll函数的包装来做到的。Redis的实际处理速度完全依靠主进程的执行效率。Epoll是Linux内核为处理大批量文件描述符而作了改进的epoll,是Linux下多路复用IO接口select/poll的增强版本,它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率。

2、默认16个数据库,类似数组下表从零开始,初始默认使用零号库

3、Select命令切换数据库

4、Dbsize查看当前数据库的key的数量

5、Flushdb:清空当前库     Flusall:通杀全部库

6、统一密码管理,16个库都是同样密码,要么都OK要么一个也连接不上

7、redis索引都是从零开始

Redis的五大数据类型

String(字符串)、Hash(哈希,类似java里的Map)、List(l列表)、Set(集合)、Zset(sorted set :有序集合)

Redis的配置文件解析

1、Units单位

配置大小单位,开头定义了一些基本的度量单位,只支持bytes,不支持bit, 对大小写不敏感

2、INClUDES包含

  和我们的Struts2配置文件类似,可以通过includes包含,redis.conf可以作为总闸,包含其他

3、GENERAl通用

Daemonize:

  • 1、daemonize介绍

    • A、redis.conf配置文件中daemonize守护线程,默认是NO。
    • B、daemonize是用来指定redis是否要用守护线程的方式启动。
  • 2、daemonize 设置yes或者no区别

    • daemonize:yes:redis采用的是单进程多线程的模式。当redis.conf中选项daemonize设置成yes时,代表开启守护进程模式。在该模式下,redis会在后台运行,并将进程pid号写入至redis.conf选项pidfile设置的文件中,此时redis将一直运行,除非手动kill该进程。
    • daemonize:no: 当daemonize选项设置成no时,当前界面将进入redis的命令行界面,exit强制退出或者关闭连接工具(putty,xshell等)都会导致redis进程退出。

Pidfile 

Port  

Tcp-backlog:设置tcp的backlog,backlog其实是一个连接队列,backlog队列总和=未完成三次握手队列 + 已经完成三次握手队列。在高并发环境下你需要一个高backlog值来避免慢客户端连接问题。注意Linux内核会将这个值减小到/proc/sys/net/core/somaxconn的值,所以需要确认增大somaxconn和tcp_max_syn_backlog两个值来达到想要的效果)、  

Timeout

Bind   

Tcp-keepalive:单位为秒,如果设置为0,则不会进行Keepalive检测,建议设置成60)

Loglevel、Logfile

Syslog-enabled:是否把日志输出到syslog中

Syslog-ident:指定syslog里的日志标志

Syslog-facility:指定syslog设备,值可以是USER或LOCAL0-LOCAL7

Databases

4、SNAPSHOTTING快照

1、save

RDB是整个内存的压缩过的Snapshot,RDB的数据结构,可以配置复合的快照触发条件,
默认
是1分钟内改了1万次,
或5分钟内改了10次,
或15分钟内改了1次。

save " "    如果想禁用RDB持久化的策略,只要不设置任何save指令,或者给save传入一个空字符串参数也可以

2、Stop-writes-on-bgsave-error

如果配置成no,表示你不在乎数据不一致或者有其他的手段发现和控制

3、rdbcompression

rdbcompression:对于存储到磁盘中的快照,可以设置是否进行压缩存储。如果是的话,redis会采用
LZF算法进行压缩。如果你不想消耗CPU来进行压缩的话,可以设置为关闭此功能

4、rdbchecksum

rdbchecksum:在存储快照后,还可以让redis使用CRC64算法来进行数据校验,但是这样做会增加大约
10%的性能消耗,如果希望获取到最大的性能提升,可以关闭此功能 

5、SECURITY安全:访问密码的查看、设置和取消

6、LIMITS限制

Maxclients:设置redis同时可以与多少个客户端进行连接。默认情况下为10000个客户端。当你
无法设置进程文件句柄限制时,redis会设置为当前的文件句柄限制值减去32,因为redis会为自
身内部处理逻辑留一些句柄出来。如果达到了此限制,redis则会拒绝新的连接请求,并且向这
些连接请求方发出“max number of clients reached”以作回应。

Maxmemory:设置redis可以使用的内存量。一旦到达内存使用上限,redis将会试图移除内部数据,移除规则可以通过maxmemory-policy来指定。如果redis无法根据移除规则来移除内存中的数据,或者设置了“不允许移除”,那么redis则会针对那些需要申请内存的指令返回错误信息,比如SET、LPUSH等。但是对于无内存申请的指令,仍然会正常响应,比如GET等。如果你的redis是主redis(说明你的redis有从redis),那么在设置内存使用上限时,需要在系统中留出一些内存空间给同步队列缓存,只有在你设置的是“不移除”的情况下,才不用考虑这个因素

Maxmemory-policy:

(1)volatile-lru:使用LRU算法移除key,只对设置了过期时间的键
(2)allkeys-lru:使用LRU算法移除key
(3)volatile-random:在过期集合中移除随机的key,只对设置了过期时间的键
(4)allkeys-random:移除随机的key
(5)volatile-ttl:移除那些TTL值最小的key,即那些最近要过期的key
(6)noeviction:不进行移除。针对写操作,只是返回错误信息

Maxmemory-samples:设置样本数量,LRU算法和最小TTL算法都并非是精确的算法,而是估算值,所以你可以设置样本的大小,redis默认会检查这么多个key并选择其中LRU的那个

7、APPEND ONLY MODE追加

appendonly、appendfilename

Appendfsync:

Always:同步持久化 每次发生数据变更会被立即记录到磁盘  性能较差但数据完整性比较好

Everysec:出厂默认推荐,异步操作,每秒记录   如果一秒内宕机,有数据丢失

No

No-appendfsync-on-rewrite:重写时是否可以运用Appendfsync,用默认no即可,保证数据安全性。

Auto-aof-rewrite-min-size:设置重写的基准值

Auto-aof-rewrite-percentage:设置重写的基准值


http://chatgpt.dhexx.cn/article/2En7iBeG.shtml

相关文章

Redis系列(一):各大厂都在用的Resid到底是什么?

一、redis是什么? 1.Redis的定义 先上一段官方定义:Redis 是开源免费(遵守BSD协议)、高性能的key-value数据库。 是不是觉得上面的一句话既熟悉又陌生,作者怎么想的为啥开源免费?BSD协议又是什么&#x…

opencv 实现图像高斯金字塔

函数: dst cv.pyrDown( src[, dst[, dstsize[, borderType]]] ) # 高斯金字塔下采样 参数: src 源图像. dst 输出图像;它有着指定的大小,和源图像有着相同的类型. dstsize 输出图像的大小. borderType 像素外延方法. 默认情况下&…

图像增强中的高斯金字塔/拉普拉斯金字塔 融合

1.高斯金字塔 注意区分:高斯金字塔层级越高,分辨率越低。但下层(第i层)得到上层(第i1层)的过程叫做下采样,有些地方用reduce描述这个过程。 图像的金字塔化过程实际上是先平滑、再下采样的过程…

python --opencv图像处理金字塔(高斯金字塔、拉普拉斯金字塔)

引言 前面的文章中,我们有用过图像方法或者缩小的函数 resize() ,这个函数既可以放大图像,也可以缩小图像,其中: 缩小图像:一版使用 CV_INETR_AREA (区域插值)来插值。放大图像&am…

高斯金字塔及拉普拉斯金字塔的Matlab实现

1、高斯金字塔计算步骤 (1)对第 i i i 层图像进行高斯内核卷积; (2)将所有偶数行和列去除(下采样),得到第 i 1 i1 i1 层图像; (3)对原始图像不…

【C++】高斯金字塔和拉普拉斯金字塔原理和实现

【C】高斯金字塔和拉普拉斯金字塔原理和实现 图像中各个像素与其相邻像素之间的有很强的相关性,包含的信息也十分丰富,目标的尺寸有大有小,对比度有强有弱,此时就需要一个“显微镜”或者“望远镜”-----多尺度图像技术。它可以在…

python 高斯金字塔_12、高斯金字塔、拉普拉斯金字塔与图片尺寸缩放(示例代码)...

一、引言 我们经常会将某种尺寸的图像转换为其他尺寸的图像,如果放大或者缩小图片的尺寸,笼统来说的话,可以使用OpenCV为我们提供的如下两种方式: (1)resize函数。这是最直接的方式, (2)pyrUp( )、pyrDown( )函数。即图…

高斯金字塔的构建步骤

转自:https://www.cnblogs.com/starfire86/p/5735061.html SIFT(Scale-Invariant Feature Transform,尺度不变特征转换)在目标识别、图像配准领域具有广泛的应用,下面按照SIFT特征的算法流程对其进行简要介绍对SIFT特征做简要介绍。 高斯金字…

图像处理(九)高斯金字塔及拉普拉斯金字塔

高斯滤波的核就是一个求平均值的卷积核 高斯金字塔也是一个高斯核,只是步长为2,卷积后图片缩小二倍。高斯金字塔的目的是在图像不同大小时可以获得不同的信息,比如说图像较小时可以获得轮廓,图像较大时可以获得细节 使用函数cv2.p…

OpenCV SIFT源码讲解——构建高斯金字塔

目录 一、构建方法 二、函数重要点注释 一、构建方法 高斯金字塔每层图像的尺度为:。理论上金字塔每层图像可以从原图做的高斯滤波得到。但是实际操作中,每组的第一张影像(除第一组)是上一组倒数第三张影像降采样得到&#xff0c…

OpenCV中的图像金字塔(高斯金字塔、拉普拉斯金字塔)

最近在看关于数字图像的知识点,目前在图像金字塔部分,实在是懒得用手作笔记了,就以其中比较出名的“高斯金字塔”和“拉普拉斯金字塔”为例,基于OpenCV的源代码作解析存个档;毕竟属于基础部分,以后有需要就…

python 高斯金字塔_Python OpenCV 之图像金字塔,高斯金字塔与拉普拉斯金字塔

Python OpenCV 365 天学习计划,与橡皮擦一起进入图像领域吧。 基础知识铺垫 学习图像金字塔,发现网上的资料比较多,检索起来比较轻松。 图像金字塔是一张图像多尺度的表达,或者可以理解成一张图像不同分辨率展示。 金字塔越底层的…

图像金字塔和高斯金字塔

一:图像金字塔 图像金字塔是图像中多尺度表达的一种,最主要用于图像的分割,是一种以多分辨率来解释图像的有效但概念简单的结构。图像金字塔实际上是一张图片在不同尺度下的集合,即原图的上采样和下采样集合。金字塔的底部是高分辨…

opencv学习-高斯金字塔和拉普拉斯金字塔

图像金字塔 一个图像金字塔是由一系列的图像组成,最底下一张是图像尺寸最大,最上方的图像尺寸最小,从空间上从上向下看就像一个古代的金字塔。金字塔的底部是待处理图像的高分辨率表示,而顶部是低分辨率的近似。我们将一层一层的…

高斯金字塔与拉普拉斯金字塔的原理与python构建

转载自:https://zhuanlan.zhihu.com/p/94014493 高斯金字塔和拉普拉斯金字塔【1】在图像相关领域应用广泛,尤其是图像融合和图像分割方面。本文从理论和opencv实现两个方面对两种金字塔进行了介绍,并给出了二者的视觉效果。 1、高斯金字塔 在计算机视觉…

图像金字塔、高斯金字塔、拉普拉斯金字塔是怎么回事?附利用拉普拉斯金字塔和高斯金字塔重构原图的Python-OpenCV代码

图像金字塔是对图像进行多分辨率表示的一种有效且简单的结构。 一个图像金字塔是一系列以金字塔形状排列的分辨率逐步降低的图像。图像金字塔的底部是待处理图像的高分辨率表示,而顶部是低分辨率表示。 图像金字塔有什么作用? 图像金字塔常用于图像缩放…

高斯金字塔

1、为什么要构建高斯金字塔 高斯金字塔模仿的是图像的不同的尺度,尺度应该怎样理解?对于一副图像,你近距离观察图像,与你在一米之外观察,看到的图像效果是不同的,前者比较清晰,后者比较模糊&am…

系统集成项目管理工程师知识点

信息化知识 在这个学时里,将学习有关信息化的许多知识点,这些知识点的试题大多出现在上午试 题中。这引起知识点主要是: (1)信息与信息化的定义。 (2)国家信息化发展战略(2006-2020&…

快速了解Scala技术栈

http://www.infoq.com/cn/articles/scala-technology/ 我无可救药地成为了Scala的超级粉丝。在我使用Scala开发项目以及编写框架后,它就仿佛凝聚成为一个巨大的黑洞,吸引力使我不得不飞向它,以至于开始背离Java。固然Java 8为Java阵营增添了一…

一篇博客带你掌握pytorch基础,学以致用(包括张量创建,索引,切片,计算,Variable对象的创建,和梯度求解,再到激活函数的使用,神经网络的搭建、训练、优化、测试)

一篇博客带你掌握pytorch基础,学以致用 1.将numpy的 ndarray对象转换为pytorch的张量 在 Pytroch 中,Tensor 是一种包含单一数据类型元素的多维矩阵,译作张量。熟悉 numpy 的同学对这个定义应该感到很熟悉,就像ndarray一样&…