рдЙрддреНрдкрд╛рджрди рдореЗрдВ рд░реЗрдбрд┐рд╕

рдЬрдм рдПрдХ рдХреЙрдореНрдмреИрдЯ рд╕рд░реНрд╡рд░ рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдореИрдВ рд░реЗрдбрд┐рд╕ рдХреА рдХреБрдЫ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред рдбрд┐рд╕реНрдХ рдкрд░ рдбреЗрдЯрд╛ рд╕рд╣реЗрдЬрддреЗ рд╕рдордп рд╣рдо рд╡рд┐рдХрд▓реНрдкреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗ, рдЬрд┐рд╕рд╕реЗ рдЖрдк рд╡рд┐рдлрд▓рддрд╛рдУрдВ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рдХреА рдЕрд▓рдЧ-рдЕрд▓рдЧ рдбрд┐рдЧреНрд░реА рд╣рд╛рд╕рд┐рд▓ рдХрд░ рд╕рдХреЗрдВрдЧреЗред рдмреИрдХрдЕрдк рдФрд░ рдирд┐рдЧрд░рд╛рдиреА рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЙрджрд╛рд╣рд░рдг рднреА рдкреНрд░рджрд╛рди рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗред рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ Redis 2.2.11 рдЕрдореЗрдЬрд╝рди EC2 рдкрд░ Ubuntu 10.10 рд╕реНрдерд╛рдкрд┐рдд рдХреЗ рд╕рд╛рдеред



рдмреИрдХрдЕрдк



рдХрд╕реНрдЯрдо рдлрд╝реАрдб рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдо Redis рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдбреЗрдЯрд╛ рд╣рд╛рдирд┐ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╕рднреА рдлрд╝реАрдбреНрд╕ рдХреЛ рдЦрд░реЛрдВрдЪ рд╕реЗ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдлреА рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдмреИрдХрдЕрдк рдмрдирд╛рддреЗ рд╣реИрдВред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдЧрд░ рдЖрдк рд░реЗрдбрд┐рд╕ рдХреЛ рдХреИрд╢рд┐рдВрдЧ рд╕рд░реНрд╡рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рднреА рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдХреИрд╢ рдХреЛ рдЧрд░реНрдо рдХрд░рдиреЗ рдореЗрдВ рд▓рдВрдмрд╛ рд╕рдордп рд▓рдЧ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╣рдореЗрд╢рд╛ рдмреИрдХрдЕрдк рдмрдирд╛рдиреЗ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХреА рдЬрд╛рддреА рд╣реИред

рд░реЗрдбрд┐рд╕ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ RDB рд╕реНрдиреИрдкрд╢реЙрдЯ рдмрдирд╛рддрд╛ рд╣реИред redis.conf :

save 900 100 save 300 1000 save 60 100000 dir /var/redis/ dbfilename dump.rdb rdbcompression yes 


рджреЛ рджреГрдврд╝рддрд╛ рдореЛрдб рд╣реИрдВ: рдЖрд░рдбреАрдмреА рдФрд░ рдПрдУрдПрдл ред рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рджреЛрдиреЛрдВ рдореЛрдб рдореЗрдВ рдбрд┐рд╕реНрдХ рдкрд░ рдЬрд╛рдирдХрд╛рд░реА рд▓рд┐рдЦрдиреЗ рдХрд╛ рдПрдХ рдмрд╣реБрдд рд╣реА рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рддрд░реАрдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рд╡рд┐рдлрд▓рддрд╛ рдХреЗ рджреМрд░рд╛рди рдбреЗрдЯрд╛ рд╣рд╛рдирд┐ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред рдЖрдк рдХрд┐рддрдирд╛ рдбреЗрдЯрд╛ рдЦреЛ рджреЗрддреЗ рд╣реИрдВ рдпрд╣ рдХреЗрд╡рд▓ рджреГрдврд╝рддрд╛ рдореЛрдб рдХреА рдкрд╕рдВрдж рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред RDB рдЖрдкрдХреЛ рдЗрд╕ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рд▓рдЪреАрд▓реЗ рдврдВрдЧ рд╕реЗ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдФрд╕рддрди, рдпрджрд┐ рдпрд╣ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рд▓рдЧрднрдЧ рдПрдХ рдШрдВрдЯреЗ рддрдХ рдЦреЛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рдореЛрдб рдореЗрдВ, Redis рдкрд╣рд▓реЗ рдкреВрд░реНрдг рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реНрдиреИрдкрд╢реЙрдЯ рдХреЛ рдПрдХ рдЕрд╕реНрдерд╛рдпреА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд▓рд┐рдЦрддрд╛ рд╣реИ рдФрд░ рдбрд┐рд╕реНрдХ рдкрд░ рд▓рд┐рдЦрдиреЗ рдХреЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рд╣реА рдпрд╣ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред рдпрд╣ рдирд╛рдо рдмрджрд▓рдиреЗ () рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ рдХреА рдкрд░рдорд╛рдгреБрддрд╛ рдХреЗ рдХрд╛рд░рдг рдбреЗрдЯрд╛ рд╣рд╛рдирд┐ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред

рдПрдУрдПрдл рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд░реЗрдбрд┐рд╕ рдЙрди рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдПрдХ рд▓реЙрдЧ рд░рдЦрддрд╛ рд╣реИ рдЬреЛ рдЧреНрд░рд╛рд╣рдХ рдкреНрд░рджрд░реНрд╢рди рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд▓рд┐рдЦрддреЗ рд╣реИрдВ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рд╣рд░ рджреВрд╕рд░реЗ)ред AOF рдПрдкреЗрдВрдб рдУрдирд▓реА рдлрд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдирд╛рдо рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд░реЗрдбрд┐рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд░рд┐рдХреЙрд░реНрдб рдХрд┐рдП рдЧрдП рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдирдП рд▓реЛрдЧреЛрдВ рдХреЛ рдЕрдВрдд рдореЗрдВ рдЬреЛрдбрд╝рддрд╛ рд╣реИред рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдХрд┐ рдПрдУрдПрдл рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рд░реЗрдбрд┐рд╕ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╣рд░ рд╕реЗрдХрдВрдб рдбрд┐рд╕реНрдХ рдкрд░ рдбреЗрдЯрд╛ рд▓рд┐рдЦрддрд╛ рд╣реИ, рдЗрд╕ рдореЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рд╡рд┐рдлрд▓рддрд╛ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЖрдк рдЬреЛ рдЕрдзрд┐рдХрддрдо рдЦреЛ рджреЗрддреЗ рд╣реИрдВ рд╡рд╣ 1 рд╕реЗрдХрдВрдб рд╣реИред

рд╣рдорд╛рд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ, рд╣рдо RDB рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдПрдХ рдШрдВрдЯреЗ рдХрд╛ рдбреЗрдЯрд╛ рдЦреЛрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕рдмрд╕реЗ рдЦрд░рд╛рдм рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдбреЗрдЯрд╛ рдореБрдЦреНрдп DBMS рд╕реЗ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рд░реЗрдбрд┐рд╕ рдореЗрдВ рджреГрдврд╝рддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА:

http://redis.io/topics/persistence
http://antirez.com/post/redis-persistence-demystified.html

рдмреИрдХрдЕрдк рдХреЗ рд▓рд┐рдП, рд╣рдо рдЕрджреНрднреБрдд рдмреИрдХрдЕрдк рд░рддреНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рд░реЗрдбрд┐рд╕ рдХрд╛ рд╕рдорд░реНрдерди рд╣реИред

 # encoding: utf-8 Backup::Model.new(:my_backup, 'My Backup') do split_into_chunks_of 500 database Redis do |db| db.name = "dump" db.path = "/var/redis" db.host = "localhost" db.additional_options = [] db.invoke_save = false end compress_with Gzip do |compression| compression.best = true compression.fast = false end notify_by Mail do |mail| # ... end store_with S3 do |s3| # ... end end 


рд╣рдо рдЪрд╛рд▓рд╛рди рдореЗрдВ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЗрдирд╡реЛрдХ_рд╕реЗрд╡реЗ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рдХрд┐ рд╣рд░ рдмреИрдХрдЕрдк рдХреЗ рд▓рд┐рдП рдбрд┐рд╕реНрдХ рдкрд░ рдореБрдЦреНрдп Redis рд╕реНрдЯреНрд░реАрдо рдХреЛ рд▓рд┐рдЦрдХрд░ рдЕрд╡рд░реБрджреНрдз рдХрд┐рдпрд╛ рдЬрд╛рдПред

рдирд┐рдЧрд░рд╛рдиреА



рдореЙрдиреАрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд┐рдЧрд░рд╛рдиреА рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рд╣реЛрдиреЗ рд╡рд╛рд▓реА рд╕рднреА рдШрдЯрдирд╛рдУрдВ рдХреЛ рд╕реВрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕рдХреЗ рд▓рд┐рдП рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИрдВ:

 set mailserver localhost set mail-format { from: monit-app1@example.com } set alert support@example.ru but not on { action pid ppid } check process redis with pidfile /var/run/redis.pid start program = "/usr/bin/redis-server /etc/redis/redis.conf" stop program = "/usr/bin/redis-cli -p 6379 shutdown" group redis 


BGSAVE рдХреЗ рд╕рд╛рде рд╕реНрдореГрддрд┐ рд╕реЗ рдмрд╛рд╣рд░



рд╕рдВрдЧреНрд░рд╣реАрдд рдбреЗрдЯрд╛ рдХреА рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдХреЗ рд╕рд╛рде, RDB рд╕реНрдиреИрдкрд╢реЙрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рд╕рдорд╕реНрдпрд╛рдПрдБ рд╣реЛ рд╕рдХрддреА рд╣реИрдВред рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП, BGSAVE рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ , рдЬреЛ рд╡рд░реНрддрдорд╛рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдПрдХ рдХрд╛рдВрдЯрд╛ рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕ рдХрд╛рдВрдЯреЗ рдореЗрдВ рдбреЗрдЯрд╛ рдХреЛ рдбрд┐рд╕реНрдХ рдкрд░ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдореБрдЦреНрдп рдзрд╛рд░рд╛ рдЕрд╡рд░реБрджреНрдз рдирд╣реАрдВ рд╣реИ рдФрд░ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд░реВрдк рд╕реЗ рд╣реЛрддреА рд╣реИред рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ UNIX рд╕рд┐рд╕реНрдЯрдо рдкрд░, рдЬрдм рдХрд╛рдВрдЯрд╛ () рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдкреИрд░реЗрдВрдЯ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдореЗрдореЛрд░реА рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рднреА рдЪрд╛рдЗрд▓реНрдб рдкреНрд░реЛрд╕реЗрд╕ рдореЗрдВ рдХреЙрдкреА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдорд╛рди рд▓реАрдЬрд┐рдП, рдпрджрд┐ Redis рд╡рд░реНрддрдорд╛рди рдореЗрдВ 2Gb рдореЗрдореЛрд░реА рдкрд░ рдХрдмреНрдЬрд╛ рдХрд░ рд▓реЗрддрд╛ рд╣реИ, рдФрд░ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдХреЗрд╡рд▓ 1Gb рдореБрдХреНрдд рдореЗрдореЛрд░реА рдмрдиреА рд░рд╣рддреА рд╣реИ, рддреЛ BGSAVE рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╕рдордп рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддреНрд░реБрдЯрд┐ рд╕рдВрднрд╡ рд╣реИ:

 [рез [рем реп рем] реи 12: рдорд╛рд░реНрдЪ резреи:реирем:54 # рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рдирд╣реАрдВ рдмрдЪрд╛ рд╕рдХрддрд╛: рдХрд╛рдВрдЯрд╛: рд╕реНрдореГрддрд┐ рдЖрд╡рдВрдЯрд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛


рдЖрдзреБрдирд┐рдХ рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдореЗрдВ, рдХрд╛рдВрдЯреЗ рдХреЗ рд▓рд┐рдП рдореЗрдореЛрд░реА рдХреЙрдкреА рдХрд░рддреЗ рд╕рдордп, рдХреЙрдкреА рдСрди рд░рд╛рдЗрдЯ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдореЗрдореЛрд░реА рддрдм рд╣реА рдХреЙрдкреА рдХреА рдЬрд╛рддреА рд╣реИ рдЬрдм рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рд╕рдВрдмрдВрдзрд┐рдд рд╕реЗрдХреНрд╢рди рдореЗрдВ рд╣реЛред Redis рдХреЗрд╡рд▓ рдбреЗрдЯрд╛ рдХреЛ рдЕрддреБрд▓реНрдп рд░реВрдк рд╕реЗ рд╕рд╣реЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдПрдХ рдХрд╛рдВрдЯрд╛ рдмрдирд╛рддрд╛ рд╣реИ, рдпрд╣ рдХрд╛рдВрдЯрд╛ рдЗрд╕реЗ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдирд╣реАрдВ рдмрджрд▓рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд╣рдо рд╕рд┐рд╕реНрдЯрдо рдкреИрд░рд╛рдореАрдЯрд░ vm.overcommit_memory рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ 1 рдкрд░ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдкреИрд░рд╛рдореАрдЯрд░ рдЙрдкрд▓рдмреНрдз рд╕реНрдореГрддрд┐ рд╕реЗ рдЕрдзрд┐рдХ рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред /Etc/sysctl.conf рдореЗрдВ рд▓рд╛рдЗрди рдЬреЛрдбрд╝реЗрдВ :

 vm.overcommit_memory = 1 


рдФрд░ рд╡рд┐рдиреНрдпрд╛рд╕ рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдПрдБ:

 # sysctl -p 


рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА:

http://groups.google.com/group/redis-db/browse_thread/thread/dc4876861b174358
рдкреГрд╖реНрдарднреВрдорд┐ рдХреА рдмрдЪрдд рд▓рд┐рдирдХреНрд╕ рдХреЗ рддрд╣рдд рдПрдХ рдХрд╛рдВрдЯрд╛ () рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рд╡рд┐рдлрд▓ рд╣реЛ рд░рд╣реА рд╣реИ, рднрд▓реЗ рд╣реА рдореИрдВрдиреЗ рдмрд╣реБрдд рд╕рд╛рд░реА рдореБрдлреНрдд рд░реИрдо рджреА рд╣реЛ!

Source: https://habr.com/ru/post/In140893/


All Articles