0
你好,我想問你兩個問題。 (我正在使用java和jedis)redis如何dump到幾個文件,但不是隻有一個?
- 我想寫2G數據到redis,我怎麼寫得更快?
- redis是否將數據轉儲到多個文件,而不僅是dump.rdb?如數據太大,如4G,數據將被轉儲到dump.rdb和dump2.rdb?
你好,我想問你兩個問題。 (我正在使用java和jedis)redis如何dump到幾個文件,但不是隻有一個?
通過使用可變參數命令(如MSET)和/或使用流水線(由Jedis支持)將往返路由聚合到Redis實例,可以更快地將數據導入到Redis中。往返越少,進口速度越快。
另一個好的做法是在導入操作期間停用AOF(如果它被激活)和背景RDB轉儲(如果它被激活)並且在其之後重新激活它們。
Redis無法轉儲到多個數據文件。但是,如果您在Redis中寫入2 GB的數據,則轉儲文件無法佔用4 GB的空間。轉儲文件總是比內存中的數據更緊湊。獲得多個轉儲文件的唯一方法是啓動多個Redis實例並對數據進行分片。
我將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
第二個問題。如果我將maxmemory設置爲1GB。並且我想在redis中寫入1000GB的數據,會發生什麼情況? – user1108986 2012-01-12 02:03:51
該行爲還取決於maxmemory-policy設置。默認是volatile-lru,但也許你已經改變了它。如果您在maxmemory中設置1 GB,使用volatile-lru策略,在存儲1 GB數據後,Redis將開始拒絕您的寫入操作。 Redis是一家內存商店。如果你想存儲比你有更多的數據,請使用別的東西。 – 2012-01-12 10:19:27