让订单更快速落到redis中(订单放入redis)
订单的快速放入redis中对于电商系统来讲,是获取收益的重要一步。不管是抢购还是定向投放,把订单数据快速落入redis数据库,是实现交易的关键操作。本文就聊一聊,如何把订单更快的落到redis中。
要想让订单更快的落入redis,获取订单信息就不能再使用传统的JDBC方式。可以考虑使用MQ——消息中间件,实现生产者将信息快速发消息给消费者,实现订单信息立即发布放入redis。
如利用RabbitMQ,并在前端将订单以json格式发送到后台,在后台就可以用代码实现发送订单信息到RabbitMQ中,以下为示例代码:
private void processOrderMessage(OrderMessage orderMessage) { Connection connection = RabbitMqUtils.getConnection();
Channel channel = connection.createChannel(); try {
channel.basicPublish("", RabbitMqUtils.ORDER_QUEUE_NAME, null, JacksonUtils.beanToBytes(orderMessage)); } catch (IOException e) {
throw new RuntimeException("发送订单消息到RabbitMQ失败,orderMessage=" + orderMessage); } finally {
RabbitMqUtils.closeChannel(channel, connection); }
}
在消费方,可以利用RabbitMQ的消息监听,监听到消息回调后直接将消息保存到redis中,以下为示例代码:
private void listenOrderMessages() {
Connection connection = RabbitMqUtils.getConnection(); Channel channel = connection.createChannel();
try { channel.basicConsume(RabbitMqUtils.ORDER_QUEUE_NAME, true, RabbitMqUtils.createConsumer(channel, orderMessage -> {
... orderRedisService.saveOrderToRedis(orderMessage);
})); } catch (IOException e) {
throw new RuntimeException("订单redis监听消息失败", e); }
}
通过上述操作,实现用消息中间件的发送、接收,就可以大大加快高并发的订单放入redis的速度。能够大大提高获客转化率,从而谋取更多的收入。
相关文章