美文网首页Linux
Redis - 两种持久化appendonly和rdb的写丢失测

Redis - 两种持久化appendonly和rdb的写丢失测

作者: 红薯爱帅 | 来源:发表于2021-07-18 18:40 被阅读0次

1. 概述

测试目标

测试redis-server挂掉时候,client的写丢失有多少

  • 写丢失: 对于client的set操作,redis返回成功,但是redis并没持久化到磁盘

测试条件

  • redis服务器,配置是4c8g
  • 测试资源,1台8c16g,2台4c8g,3台机器,一共9个locust worker

2. 测试步骤

  • 开启多个user,每个user完成不间歇地set操作
  • 关闭redis server,等待所有user记录当前写入状态State1
  • 启动redis server
  • 对比state1与当前redis状态state2,确认写丢失情况

3. 测试结论

从10users到2000users,用3台机器压测一台机器,并未发现写丢失
当关闭appendonly、只开启rdb持久化的情况下,很容易发现大量的写丢失,原因很简单,rdb持久化只有在特定条件下才发生

  • 关闭appendonly情况
$ python redis_write_lost_test.py                                              
key count: 100
top10 results sorted by diff:
key: key1-d4uqN6xO, diff: 20962, base_value:    21946, master_value:      984
key: key1-unoy9Qal, diff: 20958, base_value:    22211, master_value:     1253
key: key1-jEAikBwo, diff: 20951, base_value:    24018, master_value:     3067
key: key1-WTXg9ROp, diff: 20946, base_value:    24903, master_value:     3957
key: key1-5bTdpAYq, diff: 20938, base_value:    22511, master_value:     1573
key: key1-4gFKfqnk, diff: 20934, base_value:    22887, master_value:     1953
key: key1-bQGS6mFV, diff: 20929, base_value:    21699, master_value:      770
key: key1-2oOKmbB9, diff: 20929, base_value:    26019, master_value:     5090
key: key1-3cwpG5u8, diff: 20928, base_value:    21317, master_value:      389
key: key1-9euUiFGr, diff: 20915, base_value:    21489, master_value:      574
  • 开启appendonly情况
$ python redis_write_lost_test.py

key count: 10
top10 results sorted by diff:
key: key1-ZfTyszVL, diff:  1, base_value:      294, master_value:      293
key: key1-G0J4yjzb, diff:  1, base_value:      275, master_value:      274
key: key1-ire3QgYh, diff:  1, base_value:      290, master_value:      289
key: key1-kogzA3rP, diff:  1, base_value:      277, master_value:      276
key: key1-FMCBaVWl, diff:  1, base_value:      297, master_value:      296
key: key1-czbnKQUs, diff:  1, base_value:      278, master_value:      277
key: key1-4Zx6PHqd, diff:  1, base_value:      272, master_value:      271
key: key1-6DcUqWRI, diff:  1, base_value:      282, master_value:      281
key: key1-3hnoug2Y, diff:  1, base_value:      290, master_value:      289
key: key1-SERcxmVH, diff:  1, base_value:      285, master_value:      284

key count: 50
top10 results sorted by diff:
key: key1-R4O2fVF5, diff:  1, base_value:      602, master_value:      601
key: key1-YQM4f2hH, diff:  1, base_value:      572, master_value:      571
key: key1-NdhQvaoF, diff:  1, base_value:      561, master_value:      560
key: key1-STZCWdQ9, diff:  1, base_value:      548, master_value:      547
key: key1-4kXIC6UN, diff:  1, base_value:      561, master_value:      560
key: key1-I1eTSul0, diff:  1, base_value:      547, master_value:      546
key: key1-y3zYS7Gg, diff:  1, base_value:      565, master_value:      564
key: key1-UNPt7Wqr, diff:  1, base_value:      592, master_value:      591
key: key1-qFupNG9v, diff:  1, base_value:      529, master_value:      528
key: key1-au83sFQ6, diff:  1, base_value:      536, master_value:      535
key: key1-H4JPqcjn, diff:  1, base_value:      548, master_value:      547

key count: 100
top10 results sorted by diff:
key: key1-TYEuMKkm, diff:  1, base_value:      326, master_value:      325
key: key1-jzEQi3LR, diff:  1, base_value:      323, master_value:      322
key: key1-KXUZb4Qz, diff:  1, base_value:      354, master_value:      353
key: key1-QjiebZsH, diff:  1, base_value:      340, master_value:      339
key: key1-1gYrfkcU, diff:  1, base_value:      371, master_value:      370
key: key1-nA1ReJ6o, diff:  1, base_value:      405, master_value:      404
key: key1-Wap7JQY4, diff:  1, base_value:      383, master_value:      382
key: key1-k4zU2EBF, diff:  1, base_value:      361, master_value:      360
key: key1-F4tnBmi1, diff:  1, base_value:      382, master_value:      381
key: key1-vL5O03p8, diff:  1, base_value:      357, master_value:      356

key count: 300
top10 results sorted by diff:
key: key1-7gtX6qTO, diff:  1, base_value:      198, master_value:      197
key: key1-beGOLEzx, diff:  1, base_value:      205, master_value:      204
key: key1-vlyex1pL, diff:  1, base_value:      251, master_value:      250
key: key1-zfDuxbsZ, diff:  1, base_value:      207, master_value:      206
key: key1-nK9ICjoE, diff:  1, base_value:      208, master_value:      207
key: key1-o1Is9uYe, diff:  1, base_value:      220, master_value:      219
key: key1-0spmeTr3, diff:  1, base_value:      209, master_value:      208
key: key1-d2j5bw4c, diff:  1, base_value:      259, master_value:      258
key: key1-QFyBUcgs, diff:  1, base_value:      258, master_value:      257
key: key1-gHv0RQEF, diff:  1, base_value:      264, master_value:      263

key count: 500
top10 results sorted by diff:
key: key1-T1Rbv8yj, diff:  1, base_value:     1442, master_value:     1441
key: key1-e9pIyL1s, diff:  1, base_value:     2674, master_value:     2673
key: key1-j4zHXOBK, diff:  1, base_value:     1520, master_value:     1519
key: key1-ayozPWDS, diff:  1, base_value:     1457, master_value:     1456
key: key1-S2WBcEJ6, diff:  1, base_value:     2130, master_value:     2129
key: key1-r37jUKct, diff:  1, base_value:     1493, master_value:     1492
key: key1-acrVQBfo, diff:  1, base_value:     3140, master_value:     3139
key: key1-rPU8sc0C, diff:  1, base_value:     2322, master_value:     2321
key: key1-nULXblzo, diff:  1, base_value:     2386, master_value:     2385
key: key1-yW5avnMc, diff:  1, base_value:     2239, master_value:     2238

key count: 1000
top10 results sorted by diff:
key: key1-mEucUPCT, diff:  1, base_value:     1960, master_value:     1959
key: key1-QWMjeJAG, diff:  1, base_value:     1843, master_value:     1842
key: key1-mTs6uKCH, diff:  1, base_value:     2366, master_value:     2365
key: key1-ekA683dB, diff:  1, base_value:     1885, master_value:     1884
key: key1-yD2XSJsa, diff:  1, base_value:     1265, master_value:     1264
key: key1-olVvd2qR, diff:  1, base_value:     1360, master_value:     1359
key: key1-eqYOitE8, diff:  1, base_value:     2132, master_value:     2131
key: key1-NFexDpiV, diff:  1, base_value:     1482, master_value:     1481
key: key1-cZMVEoXh, diff:  1, base_value:     2285, master_value:     2284
key: key1-CQ7Ug2wI, diff:  1, base_value:     1425, master_value:     1424

key count: 2000
top10 results sorted by diff:
key: key1-qyQNiX8u, diff:  1, base_value:      553, master_value:      552
key: key1-deU10ANs, diff:  1, base_value:      470, master_value:      469
key: key1-jQvYrzGE, diff:  1, base_value:      348, master_value:      347
key: key1-NYgUb8wZ, diff:  1, base_value:      545, master_value:      544
key: key1-1hyTRYuI, diff:  1, base_value:      402, master_value:      401
key: key1-2faRi9cd, diff:  1, base_value:     1197, master_value:     1196
key: key1-Sfor8bcj, diff:  1, base_value:      659, master_value:      658
key: key1-yzIkFxpm, diff:  1, base_value:      342, master_value:      341
key: key1-MVYJCFcn, diff:  1, base_value:      634, master_value:      633
key: key1-xbVv51rU, diff:  1, base_value:      478, master_value:      477

4. Next

直观感觉,redis是异步持久化,所以不论时间窗口再小,应该能测试到写丢失的情况。
接下来,可能需要深入理解下redis持久化机制,然后有针对性的测试。

5. 参考文档

相关文章

  • Redis - 两种持久化appendonly和rdb的写丢失测

    1. 概述 测试目标 测试redis-server挂掉时候,client的写丢失有多少 写丢失: 对于client...

  • 第5章 持久化

    Redis支持RDB和AOF两种持久化机制,有效避免因进程退出造成的数据丢失问题。 1. RDB RDB持久化是把...

  • Redis持久化

    Redis持久化方式有两种:RDB和AOF。 1 RDB持久化 RDB(Redis Database)持久化是把当...

  • redis-2

    redis-2 redis的持久化 Redis 提供了 RDB 和 AOF 两种持久化方式。 RDB RDB 是把...

  • Redis 持久化

    Redis 持久化 Redis 支持RDB和AOF两种持久化机制,持久化功能有效地避免因进程退出造成的数据丢失问题...

  • Redis 的设计原理

    Redis 持久化之RDB和AOFRedis 有两种持久化方案,RDB (Redis DataBase)和 AOF...

  • 二 Redis的两种持久化方式---RDB和AOF

    Redis是内存数据库,但是为了防止数据丢失,提供了持久化到硬盘的机制。有RDB和AOF两种持久化方式。 RDB ...

  • Redis持久化(三)

    Redis持久化方式 Redis有两种持久化的方式:快照(RDB文件)和追加式文件(AOF文件): RDB持久化方...

  • Redis持久化

    Redis的持久化 Redis的持久化方式有两种:快照(RDB)文件和追加文件(AOF文件) 两种方式。 RDB ...

  • Redis的持久化方案

    首先redis有两种持久化方案:RDB和AOF: 一、RDB RDB持久化配置 Redis会将数据集的快照dump...

网友评论

    本文标题:Redis - 两种持久化appendonly和rdb的写丢失测

    本文链接:https://www.haomeiwen.com/subject/fixwpltx.html