日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費收錄網(wǎng)站服務,提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

 

redis也可以作為消息隊列使用,優(yōu)缺點如下:

優(yōu)點:

  1. 高性能:Redis是一種內存數(shù)據(jù)庫,讀寫速度非常快。使用Redis實現(xiàn)消息隊列可以獲得很高的性能。
  2. 可靠性高:Redis提供了持久化機制,可以將數(shù)據(jù)寫入磁盤中保存,即使在服務器崩潰或斷電時也不會丟失數(shù)據(jù)。
  3. 靈活性強:Redis的數(shù)據(jù)結構非常靈活,可以使用List、Set、Hash等多種數(shù)據(jù)結構實現(xiàn)消息隊列,并且可以根據(jù)業(yè)務需求進行調整。
  4. 可擴展性好:Redis支持主從復制和分片機制,可以通過添加節(jié)點來提高系統(tǒng)的處理能力。

缺點:

  1. 數(shù)據(jù)不能太大:由于Redis是內存數(shù)據(jù)庫,所以數(shù)據(jù)量不能太大。如果消息隊列中的數(shù)據(jù)過多,會導致Redis的內存占用過高,從而影響系統(tǒng)的性能。
  2. 消息順序問題:Redis并不保證嚴格的消息順序,因此在某些情況下可能需要開發(fā)者自己實現(xiàn)消息排序。
  3. 無法保證消息不被重復消費:當消息被消費后,如果消費者沒有及時刪除消息,可能會導致消息被重復消費。

實現(xiàn)消息隊列的步驟如下。

添加依賴

在pom.xml中添加
spring-boot-starter-data-redis依賴。

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

配置Redis連接

在Application.properties文件中配置Redis連接信息。

spring.redis.host=localhost
spring.redis.port=6379

創(chuàng)建消息監(jiān)聽器

創(chuàng)建2個消息監(jiān)聽器,用于接收訂閱的消息。

import org.springframework.data.redis.connection.Message;
import org.springframework.data.redis.connection.MessageListener;

public class MyMessageListener1 implements MessageListener {

    @Override
    public void onMessage(Message message, byte[] pattern) {
        System.out.println("Received message1: " + message.toString());
    }
}
import org.springframework.data.redis.connection.Message;
import org.springframework.data.redis.connection.MessageListener;

public class MyMessageListener2 implements MessageListener {

    @Override
    public void onMessage(Message message, byte[] pattern) {
        System.out.println("Received message2: " + message.toString());
    }
}

發(fā)布消息

使用RedisTemplate的convertAndSend()方法向指定頻道發(fā)布消息。

@Autowired
private RedisTemplate<String, String> redisTemplate;

public void publishMessage(String channel, String message) {
    redisTemplate.convertAndSend(channel, message);
}

訂閱消息

創(chuàng)建一個
RedisMessageListenerContAIner對象,使用addMessageListener()方法添加消息監(jiān)聽器并訂閱指定頻道。

@Autowired
private RedisConnectionFactory redisConnectionFactory;

@Autowired
private MyMessageListener1 myMessageListener1;
@Autowired
private MyMessageListener2 myMessageListener2;

@Bean
public RedisMessageListenerContainer redisContainer() {
    RedisMessageListenerContainer container = new RedisMessageListenerContainer();
    container.setConnectionFactory(redisConnectionFactory);
    container.addMessageListener(myMessageListener1, new ChannelTopic("my_channel1"));
    container.addMessageListener(myMessageListener2, new ChannelTopic("my_channel2"));
    return container;
}

測試消息發(fā)布

調用 publishMessage() 方法測試消息發(fā)布訂閱流程。

publishMessage("my_channel1", "msg1");
publishMessage("my_channel2", "msg2");

那么MyMessageListener1將接收到my_channel1的消息,并打印出msg1消息。

MyMessageListener2將接收到my_channel2的消息,并打印出msg2消息。

分享到:
標簽:Redis
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨大挑戰(zhàn)2018-06-03

數(shù)獨一種數(shù)學游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數(shù)有氧達人2018-06-03

記錄運動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定