前言日常开发中,秒杀下单、抢红包等等业务场景,都需要用到分布式锁。而Redis非常适合作为分布式锁使用。本文将分七个方案展开,跟大家探讨Redis分布式锁的正确使用方式。如果有不正确的地方,欢迎大家指出哈,一起学习一起进步。什么是分布式锁方案一:SETNX + EXPIRE方案二:SETNX + value值是(系统时间+过期时间)方案三:使用Lua脚本(包含SETNX + EXPIRE两条指令)
转载
2024-09-30 12:51:35
9阅读
1. 绪言 在现实应用环境中,出于数据容量、容灾、性能等因素的考虑,往往不会只使用一台服务器,而是使用集群的方式。Redis 中也有类似的维持一主多从的方式提高 Redis 集群的高可用性的方案,而其中不可避免的则是如何保证主从实例间的数据一致性,复制(Replication)是其解决办法。本篇介绍redis的主从复制及哨兵机制。2. redis主从复制2.1 主从拓扑 Redis 支持简单且
转载
2023-12-14 14:39:38
23阅读
1. 绪言 在现实应用环境中,出于数据容量、容灾、性能等因素的考虑,往往不会只使用一台服务器,而是使用集群的方式。Redis 中也有类似的维持一主多从的方式提高 Redis 集群的高可用性的方案,而其中不可避免的则是如何保证主从实例间的数据一致性,复制(Replication)是其解决办法。本篇介绍redis的主从复制及哨兵机制。2. redis主从复制2.1 主从拓扑 Redis 支持简单且
转载
2023-12-14 14:40:11
35阅读
对于redis来说,什么是最重要的?毋庸置疑,是内存。一、Reids 内存分析redis内存使用情况:info memory 示例: 可以看到,当前节点内存碎片率为226893824/209522728≈1.08,使用的内存分配器是jemalloc。used_memory_rss 通常情况下是大于 used_memory 的,因为内存碎片的存在。但是当操作系统把redis内
转载
2024-06-24 19:46:26
133阅读
数据库状态Redis是一个键值对数据库服务器,服务器中通常包含着任意个非空数据库,而每个非空数据库中又可以包含任意个键值对,为了方便起见,我们将服务器中的非空数据库以及它们的键值对统称为数据库状态一、RDB持久化介绍因为Redis是内存数据库,它将自己的数据库状态储存在内存里面,所以如果不想办法将储存在内存中的数据库状态保存到磁盘里面,那么一旦服务器进程退出,服务器中的数据库状态也会消失...
原创
2022-04-09 10:01:39
430阅读
数据库状态Redis是一个键值对数据库服务器,服务器中通常包含着任意个非空数据库,而每个非空数据库中又可以包含任意个键值对,为了方便起见,我们将服务器中的非空数据库以及它们的键值对统称为数据库状态一、RDB持久化介绍因为Redis是内存数据库,它将自己的数据库状态储存在内存里面,所以如果不想办法将储存在内存中的数据库状态保存到磁盘里面,那么一旦服务器进程退出,服务器中的数据库状态也会消失...
原创
2021-12-06 14:28:05
226阅读
SAVE 和 BGSAVE 两个命令都会调用 rdbSave 函数,但它们调用的方式各有不同: SAVE 直接调用 rdbSave ,阻塞 Redis 主进程,直到保存完成为止。在主进程阻塞期间,服务器不能处理客户端的任何请求。 BGSAVE 则 fork 出一个子进程,子进程负责调用 rdbSave ,并在保存完成之后向主进程发送信号,通知保存已完成。 Redis 服务器在BGSAVE
原创
2016-01-06 13:57:35
3062阅读
点赞
SAVE 和 BGSAVE 两个命令都会调用 rdbSave 函数,但它们调用的方式各有不同: SAVE 直接调用 rdbSave ,阻塞 Redis 主进程,直到保存完成为止。在主进程阻塞期间,服务器不能处理客户端的任何请求。 BGSAVE 则 fork 出一个子进程,子进程负责调用 rdbSav
转载
2019-07-11 15:39:00
110阅读
2评论
1.Master写内存快照,save命令调度rdbSave函数,会阻塞主线程的工作,当快照比较
原创
2022-09-12 00:04:47
113阅读
save: 优点:节约系统资源 缺点:直接调用 rdbSave ,阻塞 Redis 主进程,直到保存完成为止。在主进程阻塞期间,服务器不能处理客户端的任何请求。bgsave: 优点:fork 出一个子进程,子进程负责调用 rdbSave ,并在保存完成之后向主进程发送信号,通知保存已完成。 Redis
转载
2023-06-28 17:04:42
135阅读
目录RDB文件结构AOF持久化AOF持久化流程AOF存在的问题AOF 持久化的效率和安全性AOF重写无论是哪种方式,底层都是调用同一个函数rdb.c/rdbSave()来完成,下面是二者实现的伪代码:def save():
rdbSave()def BGSAVE():
# 创建子进程
pid = fork()
if pid == 0:
# 子进程
转载
2024-09-18 11:51:22
23阅读
一、redis 持久化说明1) 手工持久化 SAVE(同步回写)和 BGSAVE(异步回写) 两个命令都会调用 rdbSave 函数,它们都实现RDB持久化,但它们调用的方式各有不同: SAVE 直接调用 rdbSave ,阻塞 Redis 主进程,直到保存完成为止。在主进程阻塞期间,服务器不能处理客户端的任何请求。 BGSAVE 则 fork
原创
2017-01-18 16:37:15
3471阅读
1、SAVE和BGSAVE的区别
SAVE 直接调用 rdbSave ,阻塞 Redis 主进程,直到保存完成为止。在主进程阻塞期间,服务器不能处理客户端的任何请求。
BGSAVE 则 fork 出一个子进程,子进程负责调用 rdbSave ,并在保存完成之后向主进程发送信号,通知保存已完成。 Redis 服务器在BGSAVE 执行期间仍然可以继续处理客户端的请求。
2、redi
转载
2024-03-03 14:17:45
21阅读
一、redis 持久化说明1) 手工持久化 SAVE(同步回写)和 BGSAVE(异步回写) 两个命令都会调用 rdbSave 函数,它们都实现RDB持久化,但它们调用的方式各有不同: SAVE 直接调用 rdbSave ,阻塞 Redis 主进程,直到保存完成为止。在主进程阻塞期间,服务器不能处理客户端的任何请求。 BGSAVE 则 fork 出一
转载
2024-10-21 20:25:00
47阅读
持久化就是把内存的数据写到磁盘中去,防止服务宕机了内存数据丢失。Redis 提供了两种持久化方式:RDB(默认) 和AOF RDB:rdb是Redis DataBase缩写RDB功能核心函数rdbSave(生成RDB文件)和rdbLoad(从文件加载内存)两个函数 rdbSave函数: 将内存中的数据库数据以 RDB 格式保存到磁盘(文件)中,文件存在,那么
转载
2023-07-11 17:08:00
226阅读
81.Master写内存快照save命令调度rdbSave函数,会阻塞主线程的工作,当快照比较大时对性能影响是非常大的,会间断性暂停服务,所以Master最好
转载
2022-08-18 15:57:35
123阅读
SAVE:根据条件,调用 fsync 或 fdatasync 函数,将 AOF 文件保存到磁盘中。功能核心函数rdbSave(生成RDB文件)和rdbLoad(从令文本存储。1、aof文件比rdb更新频率高,优先使用aof还原数据。
原创
2024-04-25 11:17:05
19阅读
1、同时关闭RDB+AOF
2、禁用rdbsave ""
禁用rdb持久化模式,我们仍然可以使用save、bgsave生成rdb文件3、禁用aofappendonly no
禁用aof持久化模式下,我们仍然可以使用命令bgrewriteaof生成aof文件
原创
2023-11-19 15:39:40
145阅读
Redis持久化 文章目录Redis持久化RDB RDB(快照)和AOF(记录数据命令过程,日志)RDBsave命令 输入save命令,会在data目录下生成一个dump.rdb文件修改配置文件6379的。 vim /conf/redis-6379.confdbfilename dump-6379.rdb 存储文件名称
rdbcompression yes 开启压缩
rdbchecksum
转载
2024-02-21 15:03:22
40阅读
Master 写内存快照 save命令 会调rdbsave 函数 会阻塞主线程的工作 会间断性暂停服务 所以 Master 最好不要写内存快照Master aof 持久化 如果 不重写 aof 文件 这个持久化 方式 对性能的影响 是 最小的
转载
2023-11-19 18:13:13
15阅读