Redis重发机制是一种技术,用于实现网络连接中发生故障时,解决数据无法发送成功的问题。它采用补偿机制,在出现网络中断时,系统重新发送数据,以确保数据的最终送达。本文介绍了一种采用Redis来实现重发机制的新思路,包括数据结构设计和发送流程的实现等。
1、数据结构设计
为了实现Redis重发机制,我们需要采用两个表来存储消息:一个“消息表”用于存储发送的消息,另一个“重发表”用于存储未正确发送的消息,以便系统在出现网络中断时再次发送数据。
消息表名为message, 包含以下字段:Message_ID(消息ID)、Message(消息体)、Content-Type(附件类型)、Timestamp(存储时间)。
重发表名为send_agn,包含以下字段:Message_ID(消息ID)、Content-Type(附件类型)、Send_Time(发送时间)、RetryTimes(重试次数)、RetryInterval(重试间隔)、Send_Status(发送状态)。
2、发送流程的实现
根据上述数据结构的设计,实现发送流程的大致流程如下:
(1)在用户点击发送按钮时,将消息存入消息表message中,将消息ID、附件类型和发送时间同时存入重发表send_agn中,消息发送置为进行中,重试次数置为0;
(2)若发送失败,将发送状态置为失败,并将重试次数+1;
(3)如果重试次数超过指定最大重试次数,将发送状态置为失败,不再进行重发;
(4)将重发消息的消息体从消息表message中的消息ID取出,并按照步骤(2)重新发送消息;
(5)若重发成功,则将发送状态置为成功,否则将发送状态置为失败,并将重试次数更新。
以上便是采用Redis来实现重发机制的大致思路。通过在消息发送中添加补偿机制,实现了消息在出现网络中断时,仍可保证最终送达的效果。
实现Redis重发机制代码示例:
// 将消息数据存入消息表message
$messageID = generateMessageID();

$messageTable = ‘message’;
$messageData = [
‘Message_ID’ => $messageID,
‘Message’ => ‘Hello World!’,
‘Content-Type’ => ‘text/pln’,
‘Timestamp’ => time()
$this -> redis -> hmSet($messageTable, $messageData);
// 将要发送的消息数据存入重发表send_agn
$sendAgnTable = ‘send_agn’;
$sendAgnData = [
‘Message_ID’ => $messageID,
‘Content-Type’ => ‘text/pln’,
‘Send_Time’ => time(),
‘RetryTimes’ => 0,
‘RetryInterval’ => 600,
‘Send_Status’ => ‘sending’
$this -> redis -> hmset($sendAgnTable, $sendAgnData);
// 发送消息
if (sendMessage($messageData)) {
// 发送成功,将发送状态置为成功
$this -> redis -> hset($sendAgnTable, ‘Send_Status’, ‘success’);
// 发送失败,将重试次数+1
$this -> redis -> hincrby($sendAgnTable, ‘RetryTimes’, 1);
香港服务器首选树叶云,2H2G首月10元开通。树叶云(www.IDC.Net)提供简单好用,价格厚道的香港/美国云 服务器 和独立服务器。IDC+ISP+ICP资质。ARIN和APNIC会员。成熟技术团队15年行业经验。
关于医学常识
如何预防夏季感冒? 中医将感冒分为风寒感冒、风热感冒和暑湿感冒三种,前两种好发于冬春二季,后一种则是夏季的特殊类型。 中医认为是湿性重浊粘腻,困遏人体卫阳之气,病邪不易驱除,因此表现为病程较长,患者会感到头胀如裹,身重倦怠,关节疼痛,所以有的人感觉夏天感冒比其他季节感冒还要难受。 专家认为,板蓝根为传统的抗病毒中药。 传统医药和现代药理研究表明,板蓝根的抗病毒活性肯定,对流感病毒的防治效果更佳。 《本草纲目》记载:板蓝根主治“时口疮,热病发斑,热毒下痢,喉痹、丹毒……”现代药理实验表明,板蓝根对甲型流感病毒、乙型流感病毒等均有明显得防治作用。 因此,夏季多服用板蓝根,有利于增强免疫,抵抗流感病毒,增强抵抗力,避免传染。 广州白云山和记黄埔中药有限公司的板蓝根颗粒可以说是集众多科技成果为一身,首家采用中药GAP基地药材生产,原材料质量有保证;首家采用指纹图谱技术控制整个生产过程中的每个环节中的产品质量;首家采用“一步制粒”技术生产,起效更迅速,质量更稳定。 白云山板蓝根目前销量过亿,已占有60%以上的市场份额,成为众多消费者的第一选择。 白云山和黄中药还全球首创“家庭过期药品回收机制”,从而免除了广大消费者的后顾之忧。 专家还提醒大家,在夏季为了更好地预防感冒,除了服用板蓝根颗粒等预防流感药物,还应注意休息,防止过度的紧张和疲劳,使自己保持较好的精神和身体状态。 中医将感冒分为风寒感冒、风热感冒和暑湿感冒三种,前两种好发于冬春二季,后一种则是夏季的特殊类型。 中医认为是湿性重浊粘腻,困遏人体卫阳之气,病邪不易驱除,因此表现为病程较长,患者会感到头胀如裹,身重倦怠,关节疼痛,所以有的人感觉夏天感冒比其他季节感冒还要难受。 专家认为,板蓝根为传统的抗病毒中药。 传统医药和现代药理研究表明,板蓝根的抗病毒活性肯定,对流感病毒的防治效果更佳。 《本草纲目》记载:板蓝根主治“时口疮,热病发斑,热毒下痢,喉痹、丹毒……”现代药理实验表明,板蓝根对甲型流感病毒、乙型流感病毒等均有明显得防治作用。 因此,夏季多服用板蓝根,有利于增强免疫,抵抗流感病毒,增强抵抗力,避免传染。 广州白云山和记黄埔中药有限公司的板蓝根颗粒可以说是集众多科技成果为一身,首家采用中药GAP基地药材生产,原材料质量有保证;首家采用指纹图谱技术控制整个生产过程中的每个环节中的产品质量;首家采用“一步制粒”技术生产,起效更迅速,质量更稳定。 白云山板蓝根目前销量过亿,已占有60%以上的市场份额,成为众多消费者的第一选择。 白云山和黄中药还全球首创“家庭过期药品回收机制”,从而免除了广大消费者的后顾之忧。 专家还提醒大家,在夏季为了更好地预防感冒,除了服用板蓝根颗粒等预防流感药物,还应注意休息,防止过度的紧张和疲劳,使自己保持较好的精神和身体状态。 普通外伤:你可以到药店买一种叫湿润烧伤膏的药膏,它对止痛和皮肤的愈合都很有好处. 皮肤擦伤在日常生活中经常遇到,治疗多采用暴露干燥疗法和包扎疗法,所以创面愈合慢,易发生感染和疤痕形成,尤其关节处皮肤受损时,疤痕收缩发生关节活动受限,就是手术整形也很难恢复到正常水平,用MEBO治疗皮肤擦伤,经临床观察的确有很好疗效。 1. 止痛作用:擦伤是开放性损伤,局部疼痛较重,涂约十几分钟后疼痛减轻或消失,由于药膏覆盖了创面并保持了创面的湿润,裸露在外的神经末梢得到了保护,阻断了空气对创面的直接损伤,起到了止痛作用,因不必天天换药,免去了换药引起的疼痛。 2. 创面愈合快和抗感染:该药具有活血化瘀的作用,改善周围组织的微循环,增强了局部组织的新陈代谢,促进肉芽增生,周围上皮覆盖创面,加快了创面的愈合。 湿润烧伤膏有抗菌作用,用药后创面处于一种无菌状态,使创面正常愈合。 3. 无疤痕和功能障碍:组织的正常新陈代谢,需要湿润的环境,MEBO始终保持了创面的湿润,使受损组织正常修复愈合,从而不易形成疤痕。 MEBO还具有抑制胶原纤维过度增生的作用〔1〕,协调胶原纤维与上皮细胞增生的比率,减少疤痕的形成。 祝你健康快乐.
湖南造的铜币有多少种?
大致分当十和当二十文还有当银等
TCP IP原理是什么?
就是TCP IP
发表评论