redis其他类型和配置文件

很多博客只讲了五大基本类型,确实,是最常用的,而且百分之九十的程序员对于Redis只限于了解String这种最常用的。但是我个人认为,既然Redis官方提供了其他的数据类型,肯定是有相应的考量的,在某些特殊的业务场景中,这些特殊的类型还是能够给我们多一种解决思路!
Geospatial: 地理位置
georadius(查询附近位置)操作
再Redis中,可能会有一定的误差性。 官方给出的误差率是0.81%。
如果在实际业务中,允许一定的误差值,我们可以使用基数统计来计算~效率非常高

Hyperloglog: 基数

Bitmap: 位存储

127.0.0.1:6379> setbit login 1 1   #添加周一已登陆 为1
(integer) 0
127.0.0.1:6379> setbit login 2 1
(integer) 0
127.0.0.1:6379> setbit login 3 1
(integer) 0
127.0.0.1:6379> setbit login 4 0  #添加周四已登陆 为0
(integer) 0
127.0.0.1:6379> setbit login 5 0
(integer) 0
127.0.0.1:6379> setbit login 6 1
(integer) 0
127.0.0.1:6379> setbit login 7 0
(integer) 0
127.0.0.1:6379> getbit login 1  #获取周一是否登录
(integer) 1
127.0.0.1:6379> getbit login 4  #获取周四是否登陆
(integer) 0
127.0.0.1:6379> bitcount login  #统计这周登陆的天数
(integer) 4

总结:实际需求中,可能需要我们统计用户的登陆信息,员工的打卡信息等等。只要是事务的只有两个状态的,我们都可以用Bitmap来进行操作!!!

您提供的是一个Redis服务器的配置文件内容。以下是对每项配置的中文解释:

- **bind 0.0.0.0**:Redis监听所有可用的网络接口(包括本地回环和所有外部网络接口)。

- **protected-mode no**:关闭保护模式,这允许从任何主机连接到Redis,除非进一步配置了访问控制(如密码)。

- **port 6379**:设置Redis监听的端口号。

- **tcp-backlog 511**:设置TCP连接的backlog队列大小。这通常设置为高于一般系统默认值以处理大量连接。

- **timeout 0**:客户端空闲时间(秒),0表示关闭这个功能,不会断开空闲连接。

- **tcp-keepalive 300**:TCP连接保持活跃的时间间隔(秒),用于检测对方是否还保持连接状态。

- **daemonize yes**:Redis以守护进程的方式运行,即在后台运行。

- **pidfile /var/run/redis_6379.pid**:当Redis以守护进程方式运行时,PID文件的路径。

- **loglevel notice**:日志级别设置为notice,适度详细的日志级别,通常用于生产环境。

- **logfile "./redis.log"**:日志文件的路径。相对路径表示在当前工作目录下。

- **databases 16**:设置数据库的数量。Redis默认有16个数据库(编号0-15)。

- **always-show-logo no**:启动时是否显示Redis的ASCII艺术LOGO。

- **set-proc-title yes**:是否设置进程标题,这有助于监控和识别Redis实例。

- **proc-title-template "{title} {listen-addr} {server-mode}"**:设置进程标题的格式。

- **stop-writes-on-bgsave-error yes**:如果后台保存(BGSAVE)出错,停止写入操作。

- **rdbcompression yes**:对RDB文件进行压缩。

- **rdbchecksum yes**:在写入RDB文件时,加入CRC64校验和,以增加数据完整性检查。

- **dbfilename dump.rdb**:RDB文件的名称。

- **rdb-del-sync-files no**:在完成RDB文件保存后,是否删除旧的RDB文件。

- **dir ./**:工作目录,RDB文件和AOF文件将保存在此目录。

- **masterauth abc123**:如果Redis作为从节点,当连接到主节点时使用的密码。

- **replica-serve-stale-data yes**:如果从节点与主节点失去连接,是否继续提供可能过期的数据。

- **replica-read-only yes**:从节点是否为只读。

- **repl-diskless-sync no**:是否启用无盘复制(直接从主节点复制到从节点内存,不经过磁盘)。

- **repl-diskless-sync-delay 5**:无盘复制的延迟时间(秒)。

- **repl-disable-tcp-nodelay no**:是否在复制连接上禁用TCP_NODELAY选项。

- **replica-priority 100**:从节点的优先级,用于Sentinel(哨兵)系统选择新的主节点- **acllog-max-len 128**:ACL日志的最大长度。

- **requirepass abc123**:设置连接Redis所需的密码。

- **lazyfree-lazy-* no**:一系列关于是否异步释放数据的配置,全部设置为否意味着数据释放是同步的。

- **oom-score-adj no** 和 **oom-score-adj-values 0 200 800**:调整Redis在OOM(Out of Memory) killer下的优先级。设置为no表示不调整。

- **disable-thp yes**:禁用透明大页(Transparent Huge Pages),这通常可以减少内存碎片。

- **appendonly no**:是否启用AOF(Append Only File)持久化模式。

- **appendfilename "appendonly.aof"**:AOF文件名。

- **appendfsync everysec**:AOF文件的fsync策略,每秒同步一次。

- **no-appendfsync-on-rewrite no**:在AOF重写期间,是否在每次写入后调用fsync。

- **auto-aof-rewrite-percentage 100** 和 **auto-aof-rewrite-min-size 64mb**:自动AOF重写的条件,基于文件大小增长百分比和最小文件大小。

- **aof-load-truncated yes**:如果AOF文件结尾损坏,启动时是否加载这个文件。

- **aof-use-rdb-preamble yes**:AOF文件是否以RDB格式开始,这使得AOF文件可以兼容RDB的加载方式。

- **lua-time-limit 5000**:Lua脚本的最大执行时间(毫秒)。

- **slowlog-log-slower-than 10000**:定义什么是慢查询(微秒),超过此时间的查询将被记录。

- **slowlog-max-len 128**:慢查询日志的最大长度。

- **latency-monitor-threshold 0**:延迟监控阈值(毫秒),0表示用。

- **notify-keyspace-events ""**:键空间通知的事件类型,空字符串表示不通知。

- **hash-max-ziplist-entries 512** 和 **hash-max-ziplist-value 64**:哈希数据结构使用ziplist的阈值。

- **list-max-plist-size -2** 和 **list-compress-depth 0**:列表数据结构的配置,影响列表的存储和压缩方式。

- **set-max-intset-entries 512**:集合数据结构使用intset的阈值。

- **zset-maxziplist-entries 128** 和 **zset-max-ziplist-value 64**:有序集合使用ziplist的阈值。

- **hll-sp-max-bytes 3000**:HyperLogLog稀疏表示的最大字节数。

- **stream-node-max-bytes 4096** 和 **stream-node-max-entries 100**:流数据结构的节点大小限制。

- **activerehashing yes**:是否启用主动rehashing。

- **client-output-buffer-limit**:不同类型客户端(普通、副本、发布订阅)的输出缓冲区限制。

- **hz 10**:Redis调用内部函数检查空闲连接和执行其他周期性操作的频率。

- **dynamic-hz yes**:是否动态调整hz值,根据客户端连接的活跃度。

- **aof-rewrite-incremental-fsync yes**:在AOF重写时,是否增量调用fsync。

- **rdb-save-incremental-fsync yes**:在RDB保存时,是否增量调用fsync。

- **jemalloc-bg-thread yes**:是否使用jemalloc后台线程来管理内存,这有助于减少内存碎片和提高性能。

Jedis是Redis官方推荐的Java连接开发工具!
虽然现在的SpringBoot2.×版本已经将Jedis换成了Lettuce
行家有木有!出手就知道啊!
Redis配置对大小写不敏感!

主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(master/leader),后者称为从节点(slave/follower);数据的复制是单向的,只能由主节点到从节点。Master以写为主,Slave 以读为主。
在Redis集群中我们讲到了,主机断开后,我们得手动设置另一个从机变成主机!这是不智能的!在实际工作中,我们都是用哨兵模式来自动切换主机。通俗点讲,就是自己去选择‘大哥’!
哨兵集群,基于主从复制模式 ,所有的主从配置优点,它全有
户需要查询一个数据,但是redis中没有(比如说mysql中id=-1的数),直接去请求MySQL

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/45663.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++相关概念和易错语法(22)(final、纯虚函数、继承多态难点)

1.final final在继承和多态中都可以使用,在继承中是指不想将自己被继承,在多态中是指不想该函数被重写,比较简单,下面是一些使用例子。 2.纯虚函数 当我们需要抽象一个类的时候,我们就需要用到纯虚函数。所谓抽象的类…

如何设计统计量及相关假设检验

一、如何设置H0和H1假设 谁做H0,谁做H1,在统计学的假设检验里是有约定俗成的规定的。即:status quo(默认/现状)是H0,而新观点或试图challenge现状的是H1。H1也叫research hypothesis,所以我们做…

【多个Python版本存在,使用pip+不同版本安装库时,windows弹出打开方式窗口的解决方法】

问题描述 电脑上存在python3.9,3.10,3.11,安装顺序也是先安装3.9,然后3.10,最后3.11,那么直接使用pip安装,会装在3.11的位置,经过搜索可以通过pip版本,比如pip3.9 insta…

如何在勒索软件攻击中幸存下来:最佳备份实践、勒索拦截方案

无论身处什么业务或行业,数据都是您业务的关键资产。没有针对数据进行安全可靠的备份保护,您将会受到许多“可能性”的威胁,无论数据丢失是由于在键盘上洒了饮料还是遭受到了勒索软件的攻击。 为了确保业务不被中断,企业数据不会…

Python: 初识Python

文章目录 1. Python的背景知识1.1 Python是咋来的?1.2 Python的特点1.3 Python能干啥?1.4 Python的缺点 2. 搭建Python环境2.1 安装Python2.2 安装PyCharm2.3 用pycharm编写python程序 1. Python的背景知识 1.1 Python是咋来的? 由Guido van Rossum于1989年圣诞节为打发无…

一个用于管理多个 Node.js 版本的安装和切换开源工具

大家好,今天给大家分享一个用于管理多个Node.js版本的工具 NVM(Node Version Manager),它允许开发者在同一台机器上安装和使用不同版本的Node.js,解决了版本兼容性问题,为开发者提供了极大的便利。 在开发环…

路网双线合并单线——ArcGISpro 解决方法

路网双线合并成单线是一个在地图制作、交通规划以及GIS分析中常见的需求。双线路网定义:具有不同流向、不同平面结构的道路。此外,车道数较多的道路(例如,双黄实线车道数大于4的道路)也可以视为双线路网,本…

iPhone 如何修改锁屏密码?修改密码的具体步骤总结

修改 iPhone 锁屏密码 当你还记得当前设置的锁屏密码时,想要修改密码就非常的简单了,只需要简单的点几下就可以重新设置新密码,下面是具体的操作步骤: 首先我们进入设置应用程序,然后找到“面容 ID 与密码”。 然后需…

(01)Unity使用在线AI大模型(使用百度千帆服务)

目录 一、概要 二、环境说明 三、申请百度千帆Key 四、使用千帆大模型 四、给大模型套壳 一、概要 在Unity中使用在线大模型分为两篇发布,此篇文档为在Python中使用千帆大模型,整体实现逻辑是:在Python中接入大模型—>发布为可传参的…

护眼台灯的功能作用有哪些?深挖台灯护眼是真的吗

随着现代生活方式的改变,孩子们面临着越来越多的视力挑战。在近视学生中,近10%为高度近视,且占比随年级升高而增长。幼儿园6岁儿童中有1.5%为高度近视,而高中阶段则达到了17.6%。为了守护孩子们的视力健康,在科技飞速发…

无符号数和有符号数的转换

1、有符号数转换成无符号数 1.1 例一 首先,我们需要清楚 C语言中负数是以补码的形式进行存储的。 示例:负数-1, (此处,假设是8位二进制表示) 对应正数的原码:0000 0001;取反&…

通俗易懂多图透彻讲解二叉树的遍历--前序, 中序和后序

二叉树的遍历是一个数据结构中经常会遇到的知识点, 具体又分为前序, 中序和后序三种. 什么是树? 先来理解一下什么是树, 从一个我们相对熟悉的家谱树(Family Tree)说起吧. 家族的根是爷爷, 然后生了两个娃, 大伯和你爸爸. 继续往下, 有堂哥堂姐, 还有你以及你妹, 等等. 一个…

简化流程,强化协作——揭秘可道云TeamOS文档审批的实用魅力

在团队协作的过程中,文档审批是确保信息安全和流程规范的重要环节。然而,传统的文档审批流程往往繁琐且僵化,难以满足团队快速响应和灵活协作的需求。 可道云teamOS的文档审批功能,以其独特的灵活性和便捷性,为团队带…

java——Junit单元测试

测试分类 黑盒测试:不输入代码,给输入值,看程序能够给出期望的值。 白盒测试:写代码,关注程序具体执行流程。 JUnit单元测试 一个测试框架,供java开发人员编写单元测试。 是程序员测试,即白…

PBT激光穿透率测量仪

在现代材料科学与工业制造领域,激光技术以其高精度、高效率和非接触性等特点,成为了不可或缺的测量与加工手段。其中,PBT(聚对苯二甲酸丁二醇酯)作为一种重要的热塑性工程塑料,因其优异的机械性能、耐热性和…

嵌入式全栈设计思路:STM32G4+ChibiOS+FreeRTOS+PID控制+PFC算法构建高效智能电源管理系统(附代码示例)

智能电源管理系统是一个基于STM32G4微控制器的高性能数字电源控制解决方案。本项目旨在设计一个功能全面、高效稳定的电源管理系统,可广泛应用于工业控制、新能源、通信设备等领域。 1.1 系统主要特点 高精度数字电源控制:利用STM32G4的高性能ADC和定时器,实现精确…

HTML5+CSS3小实例:纯CSS实现奥运五环

实例:纯CSS实现奥运五环 技术栈:HTML+CSS 效果: 源码: 【HTML】 <!DOCTYPE html> <html lang="zh-CN"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-sca…

网页数据抓取:融合BeautifulSoup和Scrapy的高级爬虫技术

网页数据抓取&#xff1a;融合BeautifulSoup和Scrapy的高级爬虫技术 在当今的大数据时代&#xff0c;网络爬虫技术已经成为获取信息的重要手段之一。Python凭借其强大的库支持&#xff0c;成为了进行网页数据抓取的首选语言。在众多的爬虫库中&#xff0c;BeautifulSoup和Scrap…

在Android Jetpack Compose中实现夜间模式

在Android Jetpack Compose中实现夜间模式 随着用户对夜间模式需求的增加,Android开发者需要掌握如何在应用中实现这一功能。Jetpack Compose作为现代Android UI工具包,提供了简便且灵活的方式来实现夜间模式。本文将详细介绍如何在Jetpack Compose中实现夜间模式,包括配置…