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

  • 26
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xiaowang798abc

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值