ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

对账

2021-09-25 21:00:48  阅读:203  来源: 互联网

标签:redisDataKeyB redisDataKeyA 对账 var 数据 RedisHelper


 

 

 

通常我们做过支付交易等软件开发时,通常为了防止财务上面的差错,会对账来发现是否存在账务问题,通常是把我们平台的数据与第三方(如支付宝的交易流水)进行对比找出差异的地方。

 

对账的演化:

阶段一:

人工对账,效率慢,可能还容易出错

 

阶段二:

软件系统对账,遍历自己平台的数据和第三方平台的数据进行对比,效率还是不高,不易扩展。

 

方法三:

用Redis的Set类型的差集功能得出差异数据,适用分布式系统中,C#代码的demo如下:

        [HttpGet]

        [Route("ReconciliationRedis")]

        public bool ReconciliationRedis()

        {

            var redisDataKeyA = $"Reconciliation:A";

            var redisDataKeyB = $"Reconciliation:B";

 

            var csredis = new CSRedisClient("localhost");//链接Redis地址,这里默认本地地址

            RedisHelper.Initialization(csredis);

 

            if (RedisHelper.Exists(redisDataKeyA))

                RedisHelper.Del(redisDataKeyA);

            if (RedisHelper.Exists(redisDataKeyB))

                RedisHelper.Del(redisDataKeyB);

 

            //造数据集合A

            for(int i = 0; i < 5; i++)

            {

                RedisHelper.SAdd(redisDataKeyA, i);

            }

            

            //造数据集合B

            for (int i = 2; i < 7; i++)

            {

                RedisHelper.SAdd(redisDataKeyB, i);

            }

 

            //找出存在于数据集A,却不存在数据集合B的数据

            var diffListA = RedisHelper.SDiff(redisDataKeyA, redisDataKeyB);

 

 

            //找出存在于数据集B,却不存在数据集合A的数据

            var diffListB = RedisHelper.SDiff(redisDataKeyB, redisDataKeyA);

 

            return true;

        }

 

阶段四:

可以引入MQ进行异步对账,起到解耦、异步的作用

 

更多分享请关注我的公众号

标签:redisDataKeyB,redisDataKeyA,对账,var,数据,RedisHelper
来源: https://www.cnblogs.com/wangoublog/p/15335543.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有