2012-01-11 50 views

回答

0

通過使用可變參數命令(如MSET)和/或使用流水線(由Jedis支持)將往返路由聚合到Redis實例,可以更快地將數據導入到Redis中。往返越少,進口速度越快。

另一個好的做法是在導入操作期間停用AOF(如果它被激活)和背景RDB轉儲(如果它被激活)並且在其之後重新激活它們。

Redis無法轉儲到多個數據文件。但是,如果您在Redis中寫入2 GB的數據,則轉儲文件無法佔用4 GB的空間。轉儲文件總是比內存中的數據更緊湊。獲得多個轉儲文件的唯一方法是啓動多個Redis實例並對數據進行分片。

+0

我將redis maxmemory設置爲1KB,並且當我將10,000,000數據導入到redis時,dump.rdb爲293MB。然後我繼續將10,000,000數據導入到redis,dump.rdb仍然爲293MB。但是,我可以獲得我導入的所有數據。那麼,20,000,000數據存儲在哪裏?我很困惑! – user1108986 2012-01-12 01:56:25

+0

第二個問題。如果我將maxmemory設置爲1GB。並且我想在redis中寫入1000GB的數據,會發生什麼情況? – user1108986 2012-01-12 02:03:51

+0

該行爲還取決於maxmemory-policy設置。默認是volatile-lru,但也許你已經改變了它。如果您在maxmemory中設置1 GB,使用volatile-lru策略,在存儲1 GB數據後,Redis將開始拒絕您的寫入操作。 Redis是一家內存商店。如果你想存儲比你有更多的數據,請使用別的東西。 – 2012-01-12 10:19:27

相關問題