Redis2.6 リリースされたメモ
起動メッセージが変わりました
なんか絵があります
2.6といいつつ Redis 2.5.7と出ますw
persistenceで起動したい場合は「--appendonly yes」と指定すると「appendonly.aof」というファイルに追記式に保存される
mucc@mucc-VirtualBox:~/work/redis-2.6.0-rc1$ ./src/redis-server --appendonly yes [4332] 30 Apr 00:56:22.844 # Unable to set the max number of files limit to 10032 (Operation not permitted), setting the max clients configuration to 3984. _._ _.-``__ ''-._ _.-`` `. `_. ''-._ Redis 2.5.7 (00000000/0) 64 bit .-`` .-```. ```\/ _.,_ ''-._ ( ' , .-` | `, ) Running in stand alone mode |`-._`-...-` __...-.``-._|'` _.-'| Port: 6379 | `-._ `._ / _.-' | PID: 4332 `-._ `-._ `-./ _.-' _.-' |`-._`-._ `-.__.-' _.-'_.-'| | `-._`-._ _.-'_.-' | http://redis.io `-._ `-._`-.__.-'_.-' _.-' |`-._`-._ `-.__.-' _.-'_.-'| | `-._`-._ _.-'_.-' | `-._ `-._`-.__.-'_.-' _.-' `-._ `-.__.-' _.-' `-._ _.-' `-.__.-' [4332] 30 Apr 00:56:22.849 # Server started, Redis version 2.5.7 [4332] 30 Apr 00:56:22.850 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
検証
Luaで簡単なサンプルデータを投入
UserIDしか入れてないけど、スペック上げても今のところ1台辺り1千万レコードが限界かな
eval "for i = 1, 100000 do redis.call('hset','user',i,'member_'..i) end" 0 1sec eval "for i = 1, 1000000 do redis.call('hset','user',i,'member_'..i) end" 0 10sec 111,276Kbyte(約100byte) eval "for i = 1, 10000000 do redis.call('hset','user',i,'member_'..i) end" 0 100sec 1,104,840Kbyte(約100byte) eval "for i = 1, 100000000 do redis.call('hset','user',i,'member_'..i) end" 0 ※未検証 eval "for i = 1, 100000 do redis.call('SADD', 'user:1:follows', i) end" 0 1.2sec eval "for i = 1, 1000000 do redis.call('SADD', 'user:1:follows', i) end" 0 10sec 110,540Kbyte(約100byte) eval "for i = 1, 10000000 do redis.call('SADD', 'user:1:follows', i) end" 0 130sec 1,100,556Kbyte(約100byte)
運用の懸念点
AOFファイルをメモリ展開するため再起動後結構時間がかかる(1-5分程度)
AOFファイルを展開するのに1台のサーバーフルでメモリを使うとレプリケーションと同期するためのメモリが確保できなくなってしまう