通过Flink实现Cassandra数据同步到redis缓存实战之四:幂等性!幂等性!幂等性!Redis缓存数据幂等性设计

摘要

将数据保存到Redis的过程中,可能会发生各种异常,包括redis集群挂掉、redis连接错误、redis写入错误等。面向失败设计思想的一个重要的最佳实践,就是保证数据幂等性。允许失败的时候进行重试。所以在设计redis key的时候,需要重点考虑这个问题。从cassandra中提取到的同一条数据,在写入到redis的时候,必须拥有一个唯一的键,保证无论这个数据被重复写入多少次,redis中永远只有一个记录。本文将介绍几种幂等键的设计思路。

幂等性的实现

实际实现的方法很多,例如:

1、最简单的办法,直接把幂等j键作为redis key 直接执行set操作就可以了。

2、如果希望把多条数据聚集在一个key下,方便消费者一次性提取多条数据,有以下两种方式:

  • 如果数据本身可以作为幂等j键,那么可以直接用set来存储
  • 如果数据本身不可以作为幂等j键,那么可以用hash类数据,把幂等j键作为field,这样也能保证幂等性。

关于幂等键的设置,可以有以下方法:

  • 记录id:比较简单和安全的方法就是直接用数据记录的id。
  • 数据摘要:更推荐的方法是从数据中选择几个有意义的字段拼起来。这样做的好处是,这些幂等键一般包含关键信息,有一些场景可以不用获取值而直接用key来获取数据,而且具有可读性,易于维护。
  • 整个数据:对于一些简单数据可以直接用整个数据作为幂等键。并不推荐这样做。原因是,
    • 首先,如果数据实体发生变化,这些键也会发生变化;
    • 其次,数据量大,占用空间,解析时间长,网络传输时间长,对于数据量大的场景,这个区别还是很大的。
    • 再次,有些数据不适合作为幂等键,比如数据中包含更新时间、或者状态字段。这些字段就不是和被包含到幂等键中,否则这些字段的变化就会导致幂等键发生变化。

通过Flink实现Cassandra数据同步到redis缓存实战系列文章电梯:
一:数据同步任务的实现
二:Flink任务的定时提交
三:异常处理
四:幂等性!幂等性!幂等性!Redis缓存数据幂等性设计

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值