精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

面試官:如何實現多級緩存?

開發 架構
冗余設計是在系統或設備完成任務起關鍵作用的地方,增加一套以上完成相同功能的功能通道(or 系統)、工作元件或部件,以保證當該部分出現故障時,系統或設備仍能正常工作,以減少系統或者設備的故障概率,提高系統可靠性。

對于高并發系統來說,有三個重要的機制來保障其高效運行,它們分別是:緩存、限流和熔斷。而緩存是排在最前面也是高并發系統之所以高效運行的關鍵手段,那么問題來了:緩存只使用 Redis 就夠了嗎?

1.冗余設計理念

當然不是,不要把所有雞蛋放到一個籃子里,成熟的系統在關鍵功能實現時一定會考慮冗余設計,注意這里的冗余設計不是貶義詞。

冗余設計是在系統或設備完成任務起關鍵作用的地方,增加一套以上完成相同功能的功能通道(or 系統)、工作元件或部件,以保證當該部分出現故障時,系統或設備仍能正常工作,以減少系統或者設備的故障概率,提高系統可靠性。

例如,飛機的設計,飛機正常運行只需要兩個發動機,但在每臺飛機的設計中可能至少會設計四個發動機,這就有冗余設計的典型使用場景,這樣設計的目的是為了保證極端情況下,如果有一個或兩個發動機出現故障,不會因為某個發動機的故障而引起重大的安全事故。

2.多級緩存概述

緩存功能的設計也是一樣,我們在高并發系統中通常會使用多級緩存來保證其高效運行,其中的多級緩存就包含以下這些:

  1. 瀏覽器緩存:它的實現主要依靠 HTTP 協議中的緩存機制,當瀏覽器第一次請求一個資源時,服務器會將該資源的相關緩存規則(如 Cache-Control、Expires 等)一同返回給客戶端,瀏覽器會根據這些規則來判斷是否需要緩存該資源以及該資源的有效期。
  2. Nginx 緩存:在 Nginx 中配置中開啟緩存功能。
  3. 分布式緩存:所有系統調用的中間件都是分布式緩存,如 Redis、MemCached 等。
  4. 本地緩存:JVM 層面,單系統運行期間在內存中產生的緩存,例如 Caffeine、Google Guava 等。

以下是它們的具體使用。

2.1 開啟瀏覽器緩存

在 Java Web應用中,實現瀏覽器緩存可以使用 HttpServletResponse 對象來設置與緩存相關的響應頭,以開啟瀏覽器的緩存功能,它的具體實現分為以下幾步。

① 配置 Cache-Control

Cache-Control 是 HTTP/1.1 中用于控制緩存策略的主要方式。它可以設置多個指令,如 max-age(定義資源的最大存活時間,單位秒)、no-cache(要求重新驗證)、public(指示可以被任何緩存區緩存)、private(只能被單個用戶私有緩存存儲)等,設置如下:

response.setHeader("Cache-Control", "max-age=3600, public"); // 緩存一小時

② 配置 Expires

設置一個絕對的過期時間,超過這個時間點后瀏覽器將不再使用緩存的內容而向服務器請求新的資源,設置如下:

response.setDateHeader("Expires", System.currentTimeMillis() + 3600 * 1000); // 緩存一小時

③ 配置 ETag

ETag(實體標簽)一種驗證機制,它為每個版本的資源生成一個唯一標識符。當客戶端發起請求時,會攜帶上先前接收到的 ETag,服務器根據 ETag 判斷資源是否已更新,若未更新則返回 304 Not Modified 狀態碼,通知瀏覽器繼續使用本地緩存,設置如下:

String etag = generateETagForContent(); // 根據內容生成ETag
response.setHeader("ETag", etag);

④ 配置 Last-Modified

指定資源最后修改的時間戳,瀏覽器下次請求時會帶上 If-Modified-Since 頭,服務器對比時間戳決定是否返回新內容或發送 304 狀態碼,設置如下:

long lastModifiedDate = getLastModifiedDate();
response.setDateHeader("Last-Modified", lastModifiedDate);

整體配置

在 Spring Web 框架中,可以通過 HttpServletResponse 對象來設置這些頭信息。例如,在過濾器中設置響應頭以啟用緩存:

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
       throws IOException, ServletException {
   HttpServletResponse httpResponse = (HttpServletResponse) response;
   // 設置緩存策略
   httpResponse.setHeader("Cache-Control", "max-age=3600");

   // 其他響應頭設置...
   chain.doFilter(request, response);
}

以上就是在 Java Web 應用程序中利用 HTTP 協議特性控制瀏覽器緩存的基本方法。

2.2 開啟 Nginx 緩存

Nginx 中開啟緩存的配置總共有以下 5 步。

① 定義緩存配置

在 Nginx 配置中定義一個緩存路徑和配置,通過 proxy_cache_path 指令完成,例如,以下配置:

proxy_cache_path /path/to/cache levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off;

其中:

  • /path/to/cache:這是緩存文件的存放路徑。
  • levels=1:2:定義緩存目錄的層級結構。
  • keys_zone=my_cache:10m:定義一個名為 my_cache 的共享內存區域,大小為 10MB。
  • max_size=10g:設置緩存的最大大小為 10GB。
  • inactive=60m:如果在 60 分鐘內沒有被訪問,緩存將被清理。
  • use_temp_path=off:避免在文件系統中進行不必要的數據拷貝。

② 啟用緩存

在 server 或 location 塊中,使用 proxy_cache 指令來啟用緩存,并指定要使用的 keys zone,例如,以下配置:

server {  
    ...  
    location / {  
        proxy_cache my_cache;  
        ...  
    }  
}

③ 設置緩存有效期

使用 proxy_cache_valid 指令來設置哪些響應碼的緩存時間,例如,以下配置:

location / {  
    proxy_cache my_cache;  
    proxy_cache_valid 200 304 12h;  
    proxy_cache_valid any 1m;  
    ...  
}

④ 配置反向代理

確保你已經配置了反向代理,以便 Nginx 可以將請求轉發到后端服務器。例如,以下配置:

location / {  
    proxy_pass http://backend_server;  
    ...  
}

⑤ 重新加載配置

保存并關閉 Nginx 配置文件后,使用 nginx -s reload 命令重新加載配置,使更改生效。

2.3 使用分布式緩存

在 Spring Boot 項目中使用注解的方式來操作分布式緩存 Redis 的實現步驟如下。

① 添加依賴

在你的 pom.xml 文件中添加 Spring Boot 的 Redis 依賴,如下所示:

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

② 配置 Redis 連接信息

在 application.properties 或 application.yml 文件中配置 Redis 的相關信息,如下所示。

# application.properties  
spring.redis.host=localhost  
spring.redis.port=6379

③ 啟動緩存

在 Spring Boot 主類或者配置類上添加 @EnableCaching 注解來啟用緩存。

import org.springframework.cache.annotation.EnableCaching;  
import org.springframework.boot.SpringApplication;  
import org.springframework.boot.autoconfigure.SpringBootApplication;  
  
@SpringBootApplication  
@EnableCaching  
public class Application {  
  
    public static void main(String[] args) {  
        SpringApplication.run(Application.class, args);  
    }  
  
}

④ 使用緩存

在服務類或方法上使用 @Cacheable,@CacheEvict,@CachePut 等注解來定義緩存行為。

例如,使用 @Cacheable 注解來緩存方法的返回值:

import org.springframework.cache.annotation.Cacheable;  
import org.springframework.stereotype.Service;  
  
@Service  
public class UserService {  
    @Cacheable("users")  
    public User findUserById(Long id) {  
        // 模擬從數據庫中查詢用戶  
        return new User(id, "Alice");  
    }  
}

也可以使用 @CacheEvict 注解來刪除緩存:

import org.springframework.cache.annotation.CacheEvict;  
import org.springframework.stereotype.Service;  
  
@Service  
public class UserService {  
    @CacheEvict(value = "users", key = "#id")  
    public void deleteUser(Long id) {  
        // 模擬從數據庫中刪除用戶  
    }  
}

在這個例子中,deleteUser 方法會刪除 "users" 緩存中 key 為 id 的緩存項。

可以使用 @CachePut 注解來更新緩存:

import org.springframework.cache.annotation.CachePut;  
import org.springframework.stereotype.Service;  
  
@Service  
public class UserService {  
  
    @CachePut(value = "users", key = "#user.id")  
    public User updateUser(User user) {  
        // 模擬更新數據庫中的用戶信息  
        return user;  
    }  
  
}

在這個例子中,updateUser 方法會更新 "users" 緩存中 key 為 user.id 的緩存項,緩存的值是方法的返回值。

2.4 使用本地緩存

以 Caffeine 本地緩存的使用為例,它在 Spring Boot 項目中的使用如下。

① 添加依賴

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-cache</artifactId>
</dependency>
<dependency>
    <groupId>com.github.ben-manes.caffeine</groupId>
    <artifactId>caffeine</artifactId>
</dependency>

② 配置 Caffeine 緩存

在 application.properties 或 application.yml 文件中配置 Caffeine 緩存的相關參數。例如:

# application.properties
spring.cache.type=caffeine
spring.cache.caffeine.spec=initialCapacity=100,maximumSize=1000,expireAfterWrite=10s

這里 spring.cache.caffeine.spec 是一個 Caffeine 規范字符串,用于設置初始容量、最大容量和寫入后過期時間等緩存策略,其中:

  • initialCapacity:初始容器容量。
  • maximumSize:最大容量。
  • expireAfterWrite:寫入緩存后 N 長時間后過期。

③ 自定義 Caffeine 配置類(可選步驟)

如果需要更復雜的配置,可以創建一個 Caffeine CacheManager 的配置類:

import com.github.benmanes.caffeine.cache.Cache;
import com.github.benmanes.caffeine.cache.Caffeine;
import org.springframework.cache.CacheManager;
import org.springframework.cache.annotation.CachingConfigurerSupport;
import org.springframework.cache.interceptor.CacheResolver;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class CaffeineCacheConfig extends CachingConfigurerSupport {

    @Bean
    public CacheManager cacheManager() {
        Caffeine<Object, Object> caffeine = Caffeine.newBuilder()
                .initialCapacity(100)
                .maximumSize(1000)
                .expireAfterWrite(10, TimeUnit.SECONDS) // 10 秒后過期
                .recordStats(); // 記錄緩存統計信息

        return new CaffeineCacheManager("default", caffeine::build);
    }

    @Override
    public CacheResolver cacheResolver() {
        // 自定義緩存解析器(如果需要)
        // ...
        return super.cacheResolver();
    }
}

④ 開啟緩存

若要利用 Spring Cache 抽象層,以便通過注解的方式更方便地管理緩存,需要在啟動類上添加 @EnableCaching 注解,如下所示:

import org.springframework.cache.annotation.EnableCaching;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
@EnableCaching
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

⑤ 使用注解進行緩存操作

在業務邏輯類中使用 @Cacheable、@CacheEvict 等注解實現數據的緩存讀取和更新,和上面分布式緩存的使用相同,具體示例如下:

import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;

@Service
public class UserService {

    @Cacheable(value = "users", key = "#id") // 假設我們有一個名為"users"的緩存區域
    public User getUserById(Long id) {
        // 這里是真實的數據庫查詢或其他耗時操作
        return userRepository.findById(id).orElse(null);
    }

    @CacheEvict(value = "users", key = "#user.id")
    public void updateUser(User user) {
        userRepository.save(user);
    }
}

課后思考

除了以上的緩存之外,還有哪些緩存可以加速程序的執行效率呢?

責任編輯:武曉燕 來源: Java中文社群
相關推薦

2024-01-19 14:03:59

Redis緩存系統Spring

2024-09-11 22:51:19

線程通訊Object

2023-11-20 10:09:59

2024-10-22 16:39:07

2024-01-26 13:16:00

RabbitMQ延遲隊列docker

2024-04-09 10:40:04

2015-08-13 10:29:12

面試面試官

2021-10-26 10:29:45

掃碼登錄功能

2024-12-25 15:44:15

2021-05-20 08:34:03

CDN原理網絡

2021-05-19 06:07:21

CSS 斜線效果技巧

2024-09-09 15:09:30

2021-12-15 06:58:13

List 集合LinkedHashS

2021-05-20 08:54:16

Go面向對象

2024-02-04 10:08:34

2024-03-12 10:44:42

2023-02-16 08:10:40

死鎖線程

2020-12-09 10:29:53

SSH加密數據安全

2025-07-18 07:19:00

2021-11-02 09:05:25

Redis
點贊
收藏

51CTO技術棧公眾號

在线午夜精品| 澳门久久精品| 亚洲人成伊人成综合网小说| 92看片淫黄大片欧美看国产片| 一区二区视频免费看| 91成人短视频| 在线精品视频免费观看| 国产在线拍揄自揄拍无码| 蜜桃91麻豆精品一二三区| 亚洲欧美日韩在线观看a三区| 亚洲天堂一区二区三区| 在线观看免费看片| 偷拍中文亚洲欧美动漫| 一区二区三区**美女毛片| 麻豆91蜜桃| 99产精品成人啪免费网站| 午夜在线精品| 欧美成人一区在线| 国产又粗又猛又爽又黄av| 91精品啪在线观看国产手机 | xxx成人少妇69| www.88av| 在线观看视频一区二区三区| 欧洲另类一二三四区| 国产3p露脸普通话对白| 日韩美女网站| 国产亚洲欧洲997久久综合| 春色成人在线视频| 91久久久久久久久久久久| 亚洲欧美bt| 久久久久免费视频| 午夜精品福利在线视频| 国产日产精品一区二区三区四区的观看方式 | 欧美亚洲成人网| 久久r这里只有精品| 欧美xxav| 一本色道久久综合狠狠躁篇的优点 | 欧美一区二区三区婷婷| 欧美性高潮床叫视频| 日韩黄色短视频| 污污的网站在线免费观看| 一区精品在线播放| 亚洲国产精品www| 你懂的在线网址| 99精品视频一区二区三区| αv一区二区三区| 99久久精品无免国产免费| 另类欧美日韩国产在线| 国产精品成人一区二区三区吃奶| 圆产精品久久久久久久久久久 | www.com毛片| 91禁在线看| 亚洲第一搞黄网站| 2018国产在线| а√天堂中文资源在线bt| 亚洲图片欧美色图| 美女扒开大腿让男人桶| 视频在线观看入口黄最新永久免费国产| 国产精品第四页| 最近看过的日韩成人| 麻豆tv在线| 亚洲乱码中文字幕| 国产精品视频一二三四区| 日韩精品分区| 偷拍亚洲欧洲综合| 欧美爱爱视频免费看| 国产污视频在线播放| 欧美日韩激情视频8区| 免费在线观看日韩视频| 自拍偷自拍亚洲精品被多人伦好爽 | 伊人成年综合网| 免费黄网站欧美| 亚洲va欧美va国产综合久久| 国产手机av在线| 福利视频网站一区二区三区| 国产丝袜不卡| 成年人在线观看网站| 中文字幕在线免费不卡| 91视频成人免费| 678在线观看视频| 色综合天天综合网天天看片| 狠狠躁狠狠躁视频专区| 久久一级大片| 亚洲精品福利资源站| 久久精品无码一区| 911久久香蕉国产线看观看| 色与欲影视天天看综合网| 国产精品不卡av| 水野朝阳av一区二区三区| 成人激情视频网| 天天色天天操天天射| 国产日韩欧美制服另类| 日本在线视频www色| 在线天堂新版最新版在线8| 欧美日韩三级在线| 性感美女一区二区三区| 伊人久久大香线蕉综合网蜜芽| 日韩在线激情视频| 国产做受高潮漫动| 久久99精品久久久久| 国产一区精品在线| 三区四区在线视频| 同产精品九九九| 精品国产乱码久久久久久1区二区| 97一区二区国产好的精华液| 亚洲欧洲国产伦综合| 午夜激情福利网| 久久久噜噜噜| 粉嫩高清一区二区三区精品视频| 黄色片在线免费观看| 亚洲精品视频免费观看| 日本成人中文字幕在线| 超碰成人免费| 久久精品国产2020观看福利| 四虎成人在线观看| 高清久久久久久| 亚洲综合首页| 欧美成人性网| 亚洲国产高潮在线观看| 91高清免费看| 日本sm残虐另类| 精品国产免费人成电影在线观... 精品国产免费久久久久久尖叫 | 波多野结衣电影在线播放| 麻豆成人久久精品二区三区小说| 精品欧美国产| 丝袜美女在线观看| 69堂亚洲精品首页| 久久久久无码精品国产sm果冻| 黄色综合网站| 91在线观看免费观看| 国产污视频在线| 激情久久av一区av二区av三区| 国产黄色一区二区三区| 久久中文视频| 国产精品爽黄69| 成年人在线观看视频| 色婷婷av一区二区三区之一色屋| 性活交片大全免费看| 欧美久久久久| 97se在线视频| 亚洲精品白浆| 日韩西西人体444www| 久久精品黄色片| 精品亚洲porn| 欧美h视频在线观看| 午夜无码国产理论在线| 亚洲视频精品在线| 五月天婷婷导航| 久久久影视传媒| 六月丁香婷婷在线| 精品国产美女| 国产精品美乳在线观看| 成人精品福利| 欧美日韩日日骚| 黄色片子在线观看| 国产一二精品视频| 男人天堂网站在线| 国内精品国产成人国产三级粉色| 欧美激情第一页xxx| 国产 日韩 欧美 精品| 亚洲动漫第一页| 无码人妻精品一区二区三区99不卡| 欧美区一区二| 久久爱av电影| 欧美不卡高清一区二区三区| 国产亚洲欧美aaaa| 一级黄色片网站| 一区二区不卡在线播放| 国产美女视频免费观看下载软件| 亚洲理论在线| 日韩欧美第二区在线观看| 懂色aⅴ精品一区二区三区| 久久亚洲国产成人| 亚洲精品久久久狠狠狠爱 | 中文在线观看免费高清| 国产精品麻豆久久久| 手机av在线网站| 亚洲激情在线| 污视频在线免费观看一区二区三区| 久久精品嫩草影院| 色综合久久悠悠| 色播色播色播色播色播在线| 欧美视频在线观看一区二区| 欧美成人三级视频| 91久色porny| 日本黄色福利视频| 亚洲午夜伦理| 日本一区二区三区视频在线播放| 韩国一区二区三区视频| 热re99久久精品国产66热| 午夜在线免费观看视频| 亚洲第一av在线| 中文字幕+乱码+中文乱码www| 亚洲精品国产a| 三级网站在线免费观看| 国产在线精品一区二区不卡了 | 巨胸喷奶水www久久久免费动漫| 久久久国产精彩视频美女艺术照福利| 丰满少妇一级片| 欧美亚洲图片小说| 福利一区二区三区四区| 国产精品视频你懂的| 中文字幕乱视频| 韩国精品免费视频| 18禁男女爽爽爽午夜网站免费 | 欧美日韩国产成人在线| 番号在线播放| 亚洲精品720p| jizz中国女人| 欧美三片在线视频观看 | 亚洲国产一区二区三区a毛片| 色999日韩自偷自拍美女| 国产精品18hdxxxⅹ在线| 国产一区二区香蕉| 日韩欧美看国产| 亚州精品天堂中文字幕| 成人在线免费看黄| 中文字幕亚洲精品| 九九热视频在线观看| 精品久久久久香蕉网| 一本一道人人妻人人妻αv| 欧美性猛交xxxx富婆| 国产在线观看你懂的| 中文字幕中文字幕一区| 东方伊人免费在线观看| 久久亚洲欧美国产精品乐播| 国产国语老龄妇女a片| 国产在线看一区| 天天色天天综合网| 蜜臂av日日欢夜夜爽一区| 亚洲精品乱码久久久久久自慰| 极品av少妇一区二区| 青青草原网站在线观看| 91偷拍一区二区三区精品| 日韩一区二区三区高清| 九色精品国产蝌蚪| 鲁丝一区二区三区免费| 麻豆精品少妇| 精品婷婷色一区二区三区蜜桃| 欧美第一在线视频| 91九色蝌蚪嫩草| 日韩视频1区| 91视频99| 6080亚洲理论片在线观看| 成人9ⅰ免费影视网站| japanese色系久久精品| 99视频在线免费观看| 51精品国产| 国产亚洲欧美一区二区三区| 伦理一区二区| 欧美日韩国产精品一区二区| 亚洲三级精品| 日本一区视频在线| 成人久久电影| 青青草影院在线观看| 欧美亚洲不卡| 免费 成 人 黄 色| 久久av最新网址| 国产三级日本三级在线播放| 青青草成人在线观看| 一区二区三区四区毛片| 国产精品123区| 深田咏美中文字幕| 91免费观看视频| 永久免费成人代码| 中文字幕欧美激情| 免费在线观看h片| 亚洲人成网站在线| 国产在线视频你懂的| 欧美性猛交xxxx免费看| 这里只有精品999| 91精品国产品国语在线不卡| 丰满人妻一区二区三区四区53| 亚洲精品美女在线观看播放| 风间由美一区| 久久99精品国产99久久6尤物| а√天堂8资源中文在线| 日本精品性网站在线观看| 成人亚洲视频| 北条麻妃高清一区| 精品国产视频| 日本a级片在线播放| 免费欧美日韩| 欧美精品 - 色网| 99在线精品视频| 日韩av网站在线播放| 亚洲一区二区三区国产| 好吊色在线视频| 日韩一区二区三区高清免费看看 | www.久久热| 国语精品免费视频| 日韩精品91| 91免费黄视频| 麻豆精品国产传媒mv男同| 国产艳妇疯狂做爰视频| 中文字幕不卡的av| 日韩欧美一区二区一幕| 欧美剧情片在线观看| 天堂√在线中文官网在线| 日韩在线视频网站| 免费看男女www网站入口在线 | 国产免费一区二区三区免费视频| 亚洲国产精品成人精品| 免费的黄网站在线观看| 欧美一级黑人aaaaaaa做受| 精品国产鲁一鲁****| 欧美日韩一区二区视频在线观看| 综合久久十次| 午夜激情在线观看视频| 95精品视频在线| 日本妇女毛茸茸| 欧美性生活大片视频| 色婷婷av一区二区三区之红樱桃 | 欧美日韩在线精品| 国语精品一区| www.色就是色.com| 国产欧美va欧美不卡在线| 精品美女久久久久| 日韩视频免费观看高清完整版在线观看 | 日韩av男人天堂| 日韩久久免费av| 黄网址在线观看| 国产精品亚洲自拍| 你懂的一区二区三区| 缅甸午夜性猛交xxxx| 国产精品91一区二区| 日本视频在线免费| 91成人免费在线| 免费观看成年在线视频网站| 久久久亚洲影院| 午夜日韩影院| 日韩精品第1页| 国产精品18久久久久久久久久久久 | 国产日韩av在线播放| 国产日韩欧美一区二区三区| 91专区在线观看| www..com久久爱| 国产在线拍揄自揄拍无码视频| 日韩一区二区影院| 中文字幕伦理免费在线视频 | 国产精品永久免费视频| 欧美日韩高清| 在线观看亚洲色图| 国产精品午夜久久| 国产一区二区女内射| 久久精品电影网| 日本一区二区乱| 性高湖久久久久久久久aaaaa| 岛国一区二区在线观看| 伊人国产在线观看| 亚洲黄色av女优在线观看| а√天堂中文在线资源8| 久久av一区二区三区漫画| 美女久久网站| 亚洲色图 激情小说| 欧美日韩电影在线播放| 国产日产一区二区| 亚洲一区二区三区成人在线视频精品| 亚洲乱码精品| 性折磨bdsm欧美激情另类| 午夜a成v人精品| 极品美乳网红视频免费在线观看| 国产精品白嫩初高中害羞小美女| 精品国产成人| 亚洲黄色片免费看| 亚洲一区二区欧美激情| 亚洲欧美日韩动漫| 国产精品第一视频| 久久影院100000精品| 欧美xxxx日本和非洲| 欧美日韩国产丝袜另类| 黄色电影免费在线看| 国产精自产拍久久久久久蜜| 亚洲综合五月| 你懂得在线视频| 欧美午夜不卡视频| 日本伦理一区二区| 精品视频第一区| 久久精品国产99国产| 久久精品免费av| 国产亚洲精品久久久| 亚洲狼人在线| 日本福利视频在线| 国产精品久久久久久久久动漫| 国产高潮在线观看| 欧洲成人免费aa| 亚洲草久电影| 一区二区视频观看| 91 com成人网| 中文字幕在线直播| 异国色恋浪漫潭| 26uuu久久天堂性欧美| 国产丝袜视频在线观看| 日本视频久久久| 自拍偷拍欧美| 国产精品高清无码在线观看| 日韩久久久久久| 成人av色网站| 国产精品999视频| 亚洲婷婷国产精品电影人久久|