2011-08-12 26 views
5

我想保留的Redis與SEO友好的URL作爲鍵和骯髒的查詢字符串的URL爲值的動態數據庫。我希望在請求進入時直接從Nginx調用此函數,獲取令人討厭的查詢字符串URL並將其傳遞給Apache以提供內容。使用Redis的服務URL映射到nginx的

我曾經想過,只是有一個平坦的地圖文件,但是這將是非常巨大的(200,000項),它必須由一個cron作業或東西...不是很優雅經常更新。

我的想法是這樣的:

map $uri $new { 
    # instead of this... 
    # include /path/to/the/nginx_map.txt; 
    # I want to do this... 
    redis_magic_thing GET $uri; 
} 

我已經檢查了HttpRedis模塊Nginx的,但例子是真正稀疏,似乎向服務了緩存的內容更多的齒輪。我也檢查了Redis2模塊,但這似乎是矯枉過正。我只需要做簡單的舊GET命令。

我可以使用HttpRedis模塊來做到這一點,勾對成Redis的?如果是這樣,那麼這樣的配置會是什麼樣子?

在此先感謝您的幫助。

+1

Nginx的使用事件查詢,Redis的是單線程的更一般的情況下提供您需要執行的命令。雙方都必須在內存中的100%,是含量的不同時間的查找,但由於Nginx的是不是單線程的我會說這將是比如果你想超越20K RPS使用Redis的速度要快得多。所以如果你的數據沒有經常變化,並且你有一個很好的理由不去處理Apache中的URL映射,那麼我會建議嘗試將映射轉儲到文件並使用inotify在更新後重新加載nginx配置。 – ColinM

回答

1

你是正確約HttpRedis是對緩存更爲適合。你會更好地使用redis2模塊。更好地通過redis2提供