国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Redis持久化說明及其單臺Linux服務(wù)器搭建Redis集群架構(gòu)

這篇具有很好參考價值的文章主要介紹了Redis持久化說明及其單臺Linux服務(wù)器搭建Redis集群架構(gòu)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一.Redis持久化方式

1.1 RDB快照

說明:RDB快照主要以二進(jìn)制文件的形式進(jìn)行存儲數(shù)據(jù),主要以文件名dump.rdb進(jìn)行存儲,主要設(shè)置redis.conf里面設(shè)置’save 60 1000’命令可以開啟, 表示在60秒內(nèi)操作1000次進(jìn)行一次備份數(shù)據(jù)。在客戶端執(zhí)行save(同步)和bgsave(異步操作)。
Redis持久化說明及其單臺Linux服務(wù)器搭建Redis集群架構(gòu)

redis.conf

#修改持久化文件存放的位置
dir /usr/local/redis-5.0.3/data/
#開啟RDB快照存儲
save 900 1  #表示在900秒中操作1次
save 30 10   #表示在30秒中操作10次
save 60 1000   #表示在60秒中操作100次

Redis持久化說明及其單臺Linux服務(wù)器搭建Redis集群架構(gòu)
啟動redis相關(guān)命令

#RDB存放的文件名修改
dbfilename dump.db

#啟動redis服務(wù)
src/redis-server  redis.conf

#查看redis服務(wù)進(jìn)程號id
ps  -ef | grep redis

#結(jié)束redis服務(wù)
kill 2889(進(jìn)程號id)

#啟動redis編輯命令
src/redis-cli  -p 6379

Redis持久化說明及其單臺Linux服務(wù)器搭建Redis集群架構(gòu)
Redis持久化說明及其單臺Linux服務(wù)器搭建Redis集群架構(gòu)
Redis持久化說明及其單臺Linux服務(wù)器搭建Redis集群架構(gòu)

1.2 AOF重寫

說明:主要把文件生成為.aof文件,里面主要是<key,value>形式存儲。
開啟AOF在redis.conf配置

#開啟AOF
appendonly yes
#下面三項開啟一項
appendfsync always:每次有新命令追加到 AOF 文件時就執(zhí)行一次 fsync ,非常慢,也非常安全。
appendfsync everysec:每秒 fsync 一次,足夠快,并且在故障時只會丟失 1 秒鐘的數(shù)據(jù)。
appendfsync no:從不 fsync ,將數(shù)據(jù)交給操作系統(tǒng)來處理。更快,也更不安全的選擇。

#滿足60m后進(jìn)行從寫,下一次是這一次的一倍
auto‐aof‐rewrite‐min‐size 64mb 
auto‐aof‐rewrite‐percentage 100

Redis持久化說明及其單臺Linux服務(wù)器搭建Redis集群架構(gòu)
Redis持久化說明及其單臺Linux服務(wù)器搭建Redis集群架構(gòu)
Redis持久化說明及其單臺Linux服務(wù)器搭建Redis集群架構(gòu)
Redis持久化說明及其單臺Linux服務(wù)器搭建Redis集群架構(gòu)

1.3 Redis 4.0混合持久化

說明:在AOF文件開啟的情況下,當(dāng)文件開始備份的時候?qū)贏OF備份文件中以二進(jìn)制文件形式進(jìn)行備份,當(dāng)時備份之后的值,還是以AOF<key,value>形式進(jìn)行備份。
開啟AOF在redis.conf配置

aof‐use‐rdb‐preamble yes

啟動redis混合模式重寫

#開啟混合模式存儲
bgrewriteaof

Redis持久化說明及其單臺Linux服務(wù)器搭建Redis集群架構(gòu)
Redis持久化說明及其單臺Linux服務(wù)器搭建Redis集群架構(gòu)

二.Redis搭建主從與哨兵架構(gòu)

Redis持久化說明及其單臺Linux服務(wù)器搭建Redis集群架構(gòu)

2.配置主從架構(gòu)

Redis持久化說明及其單臺Linux服務(wù)器搭建Redis集群架構(gòu)

1、復(fù)制一份redis.conf文件

2、將相關(guān)配置修改為如下值:
port 6380
pidfile /var/run/redis_6380.pid  # 把pid進(jìn)程號寫入pidfile配置的文件
logfile "6380.log"
dir /usr/local/redis-5.0.3/data/6380  # 指定數(shù)據(jù)存放目錄
# 需要注釋掉bind
# bind 127.0.0.1(bind綁定的是自己機(jī)器網(wǎng)卡的ip,如果有多塊網(wǎng)卡可以配多個ip,代表允許客戶端通過機(jī)器的哪些網(wǎng)卡ip去訪問,內(nèi)網(wǎng)一般可以不配置bind,注釋掉即可)

3、配置主從復(fù)制
replicaof 192.168.0.60 6379   # 從本機(jī)6379的redis實例復(fù)制數(shù)據(jù),Redis 5.0之前使用slaveof
replica-read-only yes  # 配置從節(jié)點只讀

4、啟動從節(jié)點
redis-server redis.conf

5、連接從節(jié)點
redis-cli -p 6380

6、測試在6379實例上寫數(shù)據(jù),6380實例是否能及時同步新修改數(shù)據(jù)

7、可以自己再配置一個6381的從節(jié)點

注意:在相關(guān)redis文件夾啟動,查看配置的文件夾是否存在,不存在,需要手工建立相關(guān)的文件夾

2.1 配置6380redis從服務(wù)器

1.在conf下復(fù)制redis6379改名為redis6380.conf
Redis持久化說明及其單臺Linux服務(wù)器搭建Redis集群架構(gòu)
2.修改redis6380.conf配置文件

port 6380
pidfile /var/run/redis_6380.pid  # 把pid進(jìn)程號寫入pidfile配置的文件
logfile "6380.log"
dir /usr/local/redis-5.0.3/data/6380  # 指定數(shù)據(jù)存放目錄
# 需要注釋掉bind
# bind 127.0.0.1

replicaof 192.168.2.66 6379   # 從本機(jī)6379的redis實例復(fù)制數(shù)據(jù),Redis 5.0之前使用slaveof
replica-read-only yes  # 配置從節(jié)點只讀

2.2 配置6381redis從服務(wù)器

1.在conf下復(fù)制redis6379改名為redis6381.conf
Redis持久化說明及其單臺Linux服務(wù)器搭建Redis集群架構(gòu)
2.修改redis6381.conf配置文件

port 6381
pidfile /var/run/redis_6381.pid  # 把pid進(jìn)程號寫入pidfile配置的文件
logfile "6381.log"
dir /usr/local/redis-5.0.3/data/6381  # 指定數(shù)據(jù)存放目錄
# 需要注釋掉bind
# bind 127.0.0.1

replicaof 192.168.2.66 6379   # 從本機(jī)6379的redis實例復(fù)制數(shù)據(jù),Redis 5.0之前使用slaveof
replica-read-only yes  # 配置從節(jié)點只讀

2.3 啟動6379、6380、6381服務(wù),看看是否配置成功

src/redis-service conf/redis6379.conf

src/redis-service conf/redis6380.conf

src/redis-service conf/redis6380.conf

src/redis-cli  -p 6379

info

Redis持久化說明及其單臺Linux服務(wù)器搭建Redis集群架構(gòu)

2.4 java代碼連接redis

2.4.1 關(guān)閉linux防火墻(在linux環(huán)境進(jìn)行操作)

systemctl stop firewalld # 臨時關(guān)閉防火墻
systemctl disable firewalld # 禁止開機(jī)啟動

2.4.2 導(dǎo)入相關(guān)的redis pomjar包

  <dependency>
            <groupId>redis.clients</groupId>
            <artifactId>jedis</artifactId>
            <version>2.9.0</version>
</dependency>

2.4.3 建立jave連接

package com.tuling.jedis;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
import redis.clients.jedis.Pipeline;

import java.util.List;

public class redisTest {

    public static void main(String[] args) {
        JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
        jedisPoolConfig.setMaxTotal(20);
        jedisPoolConfig.setMaxIdle(10);
        jedisPoolConfig.setMinIdle(5);

        JedisPool jedisPool = new JedisPool(jedisPoolConfig, "192.168.1.66", 6379, 10000, null);

        Jedis jedis = null;
        try {
            jedis = jedisPool.getResource();

            //單挑數(shù)據(jù)導(dǎo)入
            System.out.println(jedis.set("single","Nickel"));
            System.out.println(jedis.get("single"));

            //******* 管道示例 ********
            Pipeline pl = jedis.pipelined();
            for(int i=0;i<10;i++){
                pl.incr("pipeline");
                pl.set("n"+i,"nickel");
                //模擬管道報錯
                //pl.setbit("nickel", -1, true);
            }
            List<Object> results=pl.syncAndReturnAll();
            System.out.println(results);

        }catch (Exception e){
            e.printStackTrace();
        }finally {
            if (jedis != null)
                jedis.close();
        }
    }
}

Redis持久化說明及其單臺Linux服務(wù)器搭建Redis集群架構(gòu)

2.4 配置哨兵

2.4.1復(fù)制sentinel.conf到config下,分別名字叫sentinel-26379.conf、sentinel-26380.conf、sentinel-26381.conf

2.4.2配置26379哨兵

port 26379
daemonize yes
pidfile "/var/run/redis-sentinel-26379.pid"
logfile "26379.log"
dir "/usr/local/redis-5.0.3/data"
# sentinel monitor <master-redis-name> <master-redis-ip> <master-redis-port> <quorum>
# quorum是一個數(shù)字,指明當(dāng)有多少個sentinel認(rèn)為一個master失效時(值一般為:sentinel總數(shù)/2 + 1),master才算真正失效
sentinel monitor mymaster 192.168.0.60 6379 2   # mymaster這個名字隨便取,客戶端訪問時會用到

2.4.3配置26380哨兵

port 26380

daemonize yes

pidfile /var/run/redis-sentinel-26380.pid

logfile "log/26380.log"

dir /usr/local/redis-5.0.3/data/26380

sentinel monitor mymaster 192.168.1.66 6379 2   # mymaster這個名字隨便取,客戶端訪問時會用到

2.4.4配置26381哨兵

port 26381

daemonize yes

pidfile /var/run/redis-sentinel-26381.pid

logfile "log/26381.log"

dir /usr/local/redis-5.0.3/data/26381

sentinel monitor mymaster 192.168.1.66 6379 2   # mymaster這個名字隨便取,客戶端訪問時會用到

Redis持久化說明及其單臺Linux服務(wù)器搭建Redis集群架構(gòu)

2.4.5啟動哨兵

src/redis-sentinel   conf/company/sentinel-26379.conf 
src/redis-sentinel   conf/company/sentinel-26380.conf 
src/redis-sentinel   conf/company/sentinel-26381.conf 

src/redis‐cli ‐p 26379

Redis持久化說明及其單臺Linux服務(wù)器搭建Redis集群架構(gòu)
Redis持久化說明及其單臺Linux服務(wù)器搭建Redis集群架構(gòu)

2.4.5啟動哨兵

Redis持久化說明及其單臺Linux服務(wù)器搭建Redis集群架構(gòu)

2.4.6 java代碼連接哨兵

package com.tuling.jedis;

import redis.clients.jedis.HostAndPort;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPoolConfig;
import redis.clients.jedis.JedisSentinelPool;

import java.util.HashSet;
import java.util.Set;

public class SentinelTest {
    public static void main(String[] args) {

        JedisPoolConfig config=new JedisPoolConfig();
        config.setMaxTotal(20);
        config.setMaxIdle(10);
        config.setMinIdle(5);

        String masterName="mymaster";
        Set<String> sentinels=new HashSet<String>();
        sentinels.add(new HostAndPort("192.168.1.66",26379).toString());
        sentinels.add(new HostAndPort("192.168.1.66",26380).toString());
        sentinels.add(new HostAndPort("192.168.1.66",26381).toString());

        JedisSentinelPool jedisSentinelPool=new JedisSentinelPool(masterName,sentinels,config,3000,null);
        Jedis jedis=null;
        try{
            jedis=jedisSentinelPool.getResource();
            System.out.println(jedis.set("age","18"));
            System.out.println(jedis.get("age"));
        }catch (Exception e){
            e.printStackTrace();
        }finally {
           if(jedis!=null){
               jedis.close();
           }
        }
    }
}

Redis持久化說明及其單臺Linux服務(wù)器搭建Redis集群架構(gòu)
Redis持久化說明及其單臺Linux服務(wù)器搭建Redis集群架構(gòu)

2.5 Spring Boot整合哨兵

2.5.1引入jar

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

		<dependency>
			<groupId>org.apache.commons</groupId>
			<artifactId>commons-pool2</artifactId>
		</dependency>

2.5.2配置application.yml文件

server:
  port: 8080

spring:
  redis:
    sentinel:
      master: mymaster
      nodes: 192.168.1.66:26379,192.168.1.66:26380,192.168.1.66:26381
    jedis:
      pool:
        max-idle: 50
        min-idle: 10
        max-active: 100
        max-wait: 1000
  datasource: 0
  timeout: 3000

2.5.3啟動java代碼訪問

package com.redis;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class IndexController {

    private static final Logger logger = LoggerFactory.getLogger(IndexController.class);

    @Autowired
    private StringRedisTemplate stringRedisTemplate;

    /**
     * 測試節(jié)點掛了哨兵重新選舉新的master節(jié)點,客戶端是否能動態(tài)感知到
     *
     * @throws InterruptedException
     */
    @RequestMapping("/test_sentinel")
    public void testSentinel() throws InterruptedException {
        int i = 1;
        while (true){
            try {
                stringRedisTemplate.opsForValue().set("zhuge"+i, i+""); //jedis.set(key,value);
                System.out.println("設(shè)置key:"+ "zhuge" + i);
                i++;
                Thread.sleep(1000);
            }catch (Exception e){
                logger.error("錯誤:", e);
            }
        }
    }

}

Redis持久化說明及其單臺Linux服務(wù)器搭建Redis集群架構(gòu)

2.5.4 StringRedisTemplate與RedisTemplate詳解

spring 封裝了 RedisTemplate 對象來進(jìn)行對redis的各種操作,它支持所有的 redis 原生的 api。在RedisTemplate中提供了幾個常用的接口方法的使用,分別是:

  • private ValueOperations<K, V> valueOps;
  • private HashOperations<K, V> hashOps;
  • private ListOperations<K, V> listOps;
  • private SetOperations<K, V> setOps;
  • private ZSetOperations<K, V> zSetOps;

RedisTemplate中定義了對5種數(shù)據(jù)結(jié)構(gòu)操作

  • redisTemplate.opsForValue();//操作字符串
  • redisTemplate.opsForHash();//操作hash
  • redisTemplate.opsForList();//操作list
  • redisTemplate.opsForSet();//操作set
  • redisTemplate.opsForZSet();//操作有序set
    Redis持久化說明及其單臺Linux服務(wù)器搭建Redis集群架構(gòu)
    Redis持久化說明及其單臺Linux服務(wù)器搭建Redis集群架構(gòu)
    Redis持久化說明及其單臺Linux服務(wù)器搭建Redis集群架構(gòu)

三.Redis隊列與stream、Redis 6多線程

1.stream流程圖

Redis持久化說明及其單臺Linux服務(wù)器搭建Redis集群架構(gòu)

2.redis中stream相關(guān)命令

1.生產(chǎn)端命令

xadd 追加消息
xdel 刪除消息
xrange 獲取消息列表,會自動過濾已經(jīng)刪除的消息
xlen 消息長度
//消息格式為
xadd streamtest * name mark age 18

**xadd表示stream流中的命令,streamtest表示流的名字,*表示自動生成唯一的ID號,name mark age 18表示消息內(nèi)容。 **

//streamtest 流中增加三條數(shù)據(jù)
xadd streamtest * name mark age 18
xadd streamtest * name james age 23
xadd streamtest * name king age 19

//獲取streamtest 流中數(shù)據(jù)的長度
xlen streamtest

//獲取streamtest 流中所有的數(shù)據(jù)
xrange streamtest - +

//獲取streamtest 流中獲取從開始到流ID的數(shù)據(jù)
xrange streamtest - 1700726396835-0

//獲取streamtest 流中數(shù)據(jù)從某個位置到某個位置
xrange streamtest 1700726302998-0 1700726396835-0


Redis持久化說明及其單臺Linux服務(wù)器搭建Redis集群架構(gòu)
Redis持久化說明及其單臺Linux服務(wù)器搭建Redis集群架構(gòu)
Redis持久化說明及其單臺Linux服務(wù)器搭建Redis集群架構(gòu)文章來源地址http://www.zghlxwxcb.cn/news/detail-497916.html

到了這里,關(guān)于Redis持久化說明及其單臺Linux服務(wù)器搭建Redis集群架構(gòu)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 【Redis】Redis 持久化

    【Redis】Redis 持久化

    Redis有兩種持久化方案: RDB持久化 AOF持久化 RDB 全稱 Redis Database Backup file(Redis數(shù)據(jù)備份文件),也被叫做 Redis 數(shù)據(jù)快照。簡單來說就是把內(nèi)存中的所有數(shù)據(jù)都記錄到磁盤中。當(dāng) Redis 實例故障重啟后,從磁盤讀取快照文件,恢復(fù)數(shù)據(jù)。快照文件稱為 RDB文件,默認(rèn)是保存在當(dāng)

    2024年02月05日
    瀏覽(35)
  • Redis系列--redis持久化

    Redis系列--redis持久化

    redis本身運行時數(shù)據(jù)保存在內(nèi)存中,如果不進(jìn)行持久化,那么在redis出現(xiàn)非正常原因宕機(jī)或者關(guān)閉redis的進(jìn)程或者關(guān)閉計算機(jī)后數(shù)據(jù)肯定被會操作系統(tǒng)從內(nèi)存中清掉。當(dāng)然,redis本身默認(rèn)采用了一種持久化方式,即RDB (Redis DataBase),可以在redis的目錄中找到dump.rdb文件,這就是

    2024年02月05日
    瀏覽(29)
  • Redis進(jìn)階 - Redis持久化

    Redis進(jìn)階 - Redis持久化

    原文首更地址,閱讀效果更佳! Redis進(jìn)階 - Redis持久化 | CoderMast編程桅桿 https://www.codermast.com/database/redis/redis-advance-persistence.html 單點Redis的問題 數(shù)據(jù)丟失問題:Redis 是內(nèi)存存儲,服務(wù)重啟可能會丟失數(shù)據(jù)。通過 實現(xiàn) Redis 數(shù)據(jù)持久化解決。 并發(fā)能力問題:單節(jié)點 Redis 并發(fā)能力

    2024年02月10日
    瀏覽(23)
  • 【Redis】Redis持久化機(jī)制

    Redis是基于內(nèi)存存儲的數(shù)據(jù)庫,如果遇到服務(wù)重啟或者崩潰,內(nèi)存中的數(shù)據(jù)將會被清空。所以為了確保數(shù)據(jù)安全性和可靠性,我們需要將內(nèi)存中的數(shù)據(jù)持久化到磁盤上。 持久化不僅可以防止由于系統(tǒng)故障、重啟或者其他原因?qū)е碌臄?shù)據(jù)丟失。還可以用于備份、數(shù)據(jù)恢復(fù)和遷移

    2023年04月20日
    瀏覽(27)
  • 【Redis】Redis持久化方式

    【Redis】Redis持久化方式

    Redis 中有兩種持久化方式,分別為 RDB 和 AOF 。 RDB 全稱 Redis Database Backup file ,也叫做 Redis 數(shù)據(jù)快照。簡單來說就是把 Redis 中的數(shù)據(jù)記錄到磁盤中。當(dāng) Redis 實例故障重啟后,從磁盤讀取快照文件,恢復(fù)數(shù)據(jù)。 RDB有兩種備份方式,一種是主動備份,一種是Redis 內(nèi)部執(zhí)行備份 主

    2024年02月02日
    瀏覽(30)
  • Redis 持久化-RDB和 持久化-AOF 的詳細(xì)介紹以及區(qū)別

    Redis 持久化-RDB和 持久化-AOF 的詳細(xì)介紹以及區(qū)別

    在線文檔: https://redis.io/topics/persistence RDB(Redis DataBase) AOF(Append Of File) 在指定的時間間隔內(nèi)將內(nèi)存中的數(shù)據(jù)集快照寫入磁盤, 也就Snapshot 快照,恢復(fù)時將快照文件讀到內(nèi)存 RDB 及其執(zhí)行流程 對上圖的解讀 具體流程如下: redis 客戶端執(zhí)行bgsave 命令或者自動觸發(fā)bgsave 命令;

    2024年02月09日
    瀏覽(32)
  • Redis 持久化

    Redis 持久化

    默認(rèn)情況下,redis 工作時所有數(shù)據(jù)都是存儲于內(nèi)存中的,不論是否有磁盤上的持久化數(shù)據(jù),都是工作于內(nèi)存當(dāng)中,redis 本身就是一個內(nèi)存的數(shù)據(jù)庫,如果 redis 崩潰或斷電導(dǎo)致所有數(shù)據(jù)丟失,所以 redis 提供了持久化功能來保證數(shù)據(jù)的可靠性, redis 持久化有兩種實現(xiàn):RDB 和 A

    2024年01月18日
    瀏覽(11)
  • 12.redis 持久化

    12.redis 持久化

    redis 是一個內(nèi)存數(shù)據(jù)庫,把數(shù)據(jù)存儲在內(nèi)存中的,內(nèi)存中的數(shù)據(jù)是不持久的,要想做到持久,就需要讓redis把數(shù)據(jù)存儲到硬盤上。 為了保證速度塊,數(shù)據(jù)肯定還是得在內(nèi)存中,但是為了持久化,數(shù)據(jù)還得想辦法存儲在硬盤上。 RDB = Redis DataBase 定期備份 RDB 定期的把 Redis 內(nèi)存中

    2024年02月09日
    瀏覽(21)
  • Redis持久化

    Redis持久化

    Redis持久化 實現(xiàn)類似照片記錄效果的方式,就是 把某一時刻的數(shù)據(jù)和狀態(tài)以文件的形式寫到磁盤上,也就是快照 。這樣一來即使故障宕機(jī),快照文件也不會丟失,數(shù)據(jù)的可靠性也就得到了保證。這個快照文件就稱為RDB文件( dump.rdb ),其中,RDB就是Redis DataBase的縮寫。 在指定

    2024年02月03日
    瀏覽(18)
  • Redis - 緩存持久化

    Redis 的緩存持久化有兩種技術(shù) : RDB 和 AOF Redis 的數(shù)據(jù)快照 簡單說就是將緩存中的所有數(shù)據(jù)都記錄到磁盤中,當(dāng)Redis發(fā)生故障的時候,只需讀取快照文件,就可恢復(fù)數(shù)據(jù) 相應(yīng)的命令是 save 和 bgsave ,這兩個命名都可以手動執(zhí)行RDB持久化,不過 save 由 Redis 主線程來執(zhí)行RDB,會阻

    2024年02月14日
    瀏覽(50)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包