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://xiahunao.cn/news/3245497.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

51单片机嵌入式开发:11、 STC89C52RC 实现一个滑动的led点阵程序

STC89C52RC 实现一个滑动的led点阵程序 1 概述2 LED点阵介绍2.1 LED概述2.2 LED点阵注意事项 3 LED点阵原理3.1 Led点阵内部电路3.2 原理图电路 4 软件实现点阵图案的滑动4.1 软件工程代码4.2 Protues仿真 5 扩展74HC595(后续专题开展)6 总结 第十一节 1…

MySQL—— if/cast/case.... end/md5 函数

目录 1. if 使用 2. if 嵌套 ​3. case ... end 4. 类型转换 cast() 5. 加密函数 md5() 1. if 使用 将姓名为smith的员工工资上调10%; 2. if 嵌套 如果岗位是manager,工资上调10%,如果岗位是s…

camtasia怎么剪掉不用的部分 屏幕录制的视频怎么裁剪上下不要的部分 camtasia studio怎么裁剪视频时长 camtasia怎么剪辑视频教程

有时我们录制的屏幕内容,并不一定全部需要。那么,屏幕录制的视频怎么裁剪上下不要的部分?可以使用视频剪辑软件,或者微课制作工具来进行裁剪。屏幕录制的视频怎么旋转?录制视频的旋转也是一样的,均在编辑步…

10.1 标注、注记图层和注记整体说明

文章目录 前言标注、注记图层和注记QGis中的标注QGis中的注释(Annotation)图层QGis中的注记 总结 前言 介绍标注、注记图层和注记说明:文章中的示例代码均来自开源项目qgis_cpp_api_apps 标注、注记图层和注记 有时地图需要使用一些文字信息说明其中的地理要素或其…

Redis系列命令更新--Redis列表命令

Redis列表 1、Redis Blpop命令: (1)说明:Redis Blpop命令移出并获取列表的第一个元素;如果列表没有元素会阻塞列表直到等到超时或发现可弹出元素为止 (2)语法:redis 127.0.0.1:63…

IDEA快速生成项目树形结构图

下图用的IDEA工具,但我觉得WebStorm 应该也可以 文章目录 进入项目根目录下,进入cmd输入如下指令: 只有文件夹 tree . > list.txt 包括文件夹和文件 tree /f . > list.txt 还可以为相关包路径加上注释

程控电阻器

程控电阻器 由于要测试电阻型温度传感器,一个电阻箱又很贵,就想做一款 程控电阻器 来满足。 设计满足300Ω到400kΩ可调电阻。 设计思路 选择数字电位器去控制电阻输出,最好是精度高,范围大的数字电位器。经过寻找后,发…

CentOS 7 Web面板的文件管理器说明

在使用CentOS 7 Web Panel(CWP7)时,偶尔要求在服务器曲面上修改,创建,编辑或删除文件。 最简单,最直接的方式是通过利用CWP7的内置文件管理器。 本文将详细介绍如何启动它,使用它,以…

【D3.js in Action 3 精译】2.3 用 D3 选中页面元素

当前内容所在位置 第一部分 D3.js 基础知识 第一章 D3.js 简介(已完结) 1.1 何为 D3.js?1.2 D3 生态系统——入门须知1.3 数据可视化最佳实践(上)1.3 数据可视化最佳实践(下)1.4 本章小结 第二章…

C语言基础and数据结构

C语言程序和程序设计概述 程序:可以连续执行的一条条指令的集合 开发过程:C源程序(.c文件) --> 目标程序(.obj二进制文件,目标文件) --> 可执行文件(.exe文件) -->结果 在任何机器上可以运行C源程序生成的 .exe 文件 没有安装C语言集成开发环境,不能编译C语言程…

【数据结构】二叉树全攻略,从实现到应用详解

​ 💎所属专栏:数据结构与算法学习 💎 欢迎大家互三:2的n次方_ ​ 🍁1. 树形结构的介绍 树是一种非线性的数据结构,它是由n(n>0)个有限结点组成一个具有层次关系的集合。把它叫做…

Java18的主要新特性总结

目录 概述 变动说明 重要变更和信息 下载地址 Java18新特性总结 1、JEP 420: Switch 的模式匹配(第二次预览) 功能进化 Switch 模式匹配 类型标签 null标签 守卫标签 2、JEP 400:默认UTF-8编码 3、JEP 408:简易Web服务…

Java 虚拟线程:案例研究

一. 关键要点 虚拟线程是 Java 并发编程的一个重要进步,但在运行典型的云原生 Java 工作负载方面,它们并不比 Open Liberty 现有的自主线程池具有明显的优势。对于 CPU 密集型工作负载,由于目前尚不清楚的原因,虚拟线程的吞吐量低…

Idea如何快速高效的修改项目的包名

文章目录 前言一、全局替换的快捷键二、弹出如下的界面 前言 当我们有时候在做项目迁移的时候,需要快速的修改项目的包名!那么如何快速高效的修改项目的报名呢? 经过尝试了很多方法!最简单的方法就是利用全局替换来直接替换报名&…

QT实现带动态弹出动画的自定义通知提示框

Qt中经常会用到提示框,用于交互操作!QMessageBox是被大多数人用到的,用起来是很方便,但是控件类型、大小、布局、样式、往往不是开发者想要的。本实例实现的Notification控件,是一种悬浮在角落的通知提醒框。 一、简述…

Day07-ES集群加密,kibana的RBAC实战,zookeeper集群搭建,zookeeper基本管理及kafka单点部署实战

Day07-ES集群加密,kibana的RBAC实战,zookeeper集群搭建,zookeeper基本管理及kafka单点部署实战 0、昨日内容回顾:1、基于nginx的反向代理控制访问kibana2、配置ES集群TSL认证:3、配置kibana连接ES集群4、配置filebeat连接ES集群5、配置logsta…

Mysql-错误处理: Found option without preceding group in config file

1、问题描述 安装MYSQL时,在cmd中“初始化”数据库时,输入命令: mysqld --initialize --consolecmd报错: D:\mysql-5.7.36-winx64\bin>mysql --initialize --console mysql: [ERROR] Found option without preceding group …

打印室预约小程序的设计

管理员账户功能包括:系统首页,个人中心,用户管理,附近打印店管理,文件打印管理,当前预约管理,预约历史管理,打印记录管理 开发系统:Windows 架构模式:SSM JD…

linux服务器如何创建Raid10阵列,删除raid10

文章目录 1,首先查看一下机器上有几块盘2,构建raid10阵列3,把制作好的 RAID 磁盘阵列格式化为 ext4 格式4,创建挂载点然后把硬盘设备进行挂载操作5,查看/dev/md0 磁盘阵列的详细信息6,删除raid10 1&#xf…

理解深度学习中的过拟合和Dropout

新书速览|PyTorch深度学习与企业级项目实战-CSDN博客 随着迭代次数的增加,我们可以发现测试数据的loss值和训练数据的loss值存在着巨大的差距, 如图4-8所示,随着迭代次数的增加,training loss越来越好,但test loss却越…