Redis (
Habr├й рдкрд░ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╕рд╛рдЗрдЯ ,
рд╕рд╛рдордЧреНрд░реА ) рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рдХреБрдЫ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдЬ рддрдХ рдореЗрд░реЗ рдкрд╛рд╕ рдРрд╕реА рд╕рд╛рдордЧреНрд░реА рдирд╣реАрдВ рдереА рдЬреЛ рдЗрд╕рдХреЗ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдзреЛрдЦрд╛ рд╢реАрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рддреА рд╣реЛ, рд╕рд╛рде рд╣реА рд╕рд╛рде рдмреБрдирд┐рдпрд╛рджреА рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рдмрд┐рдВрджреБрдУрдВ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рднреАред рдореИрдВ рд╣реИрдмрд░ рдХреЗ рд╕рдореГрджреНрдз рдЬреНрдЮрд╛рди рдЖрдзрд╛рд░ рдореЗрдВ рдЗрд╕ рдЕрдВрддрд░ рдХреЛ рднрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ред
рдореИрдВрдиреЗ рдЦреБрдж рдХреЛ рдХреЛрдб рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рд░реЗрдбрд┐рд╕ рджрд┐рдЦрд╛рдиреЗ рдХрд╛ рд▓рдХреНрд╖реНрдп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ред рдкреНрд░рдХрд╛рд╢рди рдХреЗ рдмрд╛рдж, рдореИрдВ рд╕рд╛рдордЧреНрд░реА рдореЗрдВ рд╕реБрдзрд╛рд░ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рд╕реБрдЭрд╛рд╡ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░реВрдВрдЧрд╛ред
рдХрдВрд╕реЛрд▓ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрд╣рд╛рдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдЖрдк рдЕрдкрдиреА рдкрд╕рдВрджреАрджрд╛ рднрд╛рд╖рд╛ рдореЗрдВ рдХреНрд▓рд╛рдЗрдВрдЯ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдореЗрдВ рдЗрди рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред
рдЪрд╛рдмрд┐рдпрд╛рдБ
рд░реЗрдбрд┐рд╕ рдПрдХ рдХреБрдВрдЬреА-рдореВрд▓реНрдп рдбреЗрдЯрд╛ рд╡реЗрдпрд░рд╣рд╛рдЙрд╕ рд╣реИред рдореБрдЦреНрдп рддрдереНрдп:
- рд░реЗрдбрд┐рд╕ рдХреА рдЪрд╛рдмрд┐рдпрд╛рдБ рдмрд╛рдЗрдирд░реА рд╕реБрд░рдХреНрд╖рд┐рдд рддрд╛рд░ рд╣реИрдВред
- рдмрд╣реБрдд рд▓рдВрдмреА рдЪрд╛рдмрд┐рдпрд╛рдБ рдПрдХ рдмреБрд░рд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИрдВ, рди рдХреЗрд╡рд▓ рдХрдмреНрдЬреЗ рд╡рд╛рд▓реА рд╕реНрдореГрддрд┐ рдХреЗ рдХрд╛рд░рдг, рдмрд▓реНрдХрд┐ рдорд╣рдВрдЧреА рддреБрд▓рдирд╛ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рд╕реЗрдЯ рдореЗрдВ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдХреБрдВрдЬреА рдХреЗ рд▓рд┐рдП рдЦреЛрдЬ рд╕рдордп рдореЗрдВ рд╡реГрджреНрдзрд┐ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рднреАред
- рдХреБрдВрдЬрд┐рдпрд╛рдБ рдмрдирд╛рддреЗ рд╕рдордп рдпреЛрдЬрдирд╛ рдХреЗ рд╕рд╛рде рд░рд╣рдирд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИ: "рдСрдмреНрдЬреЗрдХреНрдЯ-рдкреНрд░рдХрд╛рд░: рдЖрдИрдбреА: рдлрд╝реАрд▓реНрдб"ред
рд░реЗрдбрд┐рд╕ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░
- рдкрдВрдХреНрддрд┐рдпрд╛рдБ (рддрд╛рд░)ред рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд Redis рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ред рд░реЗрдбрд┐рд╕ рдореЗрдВ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдмрд╛рдЗрдирд░реА рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рдЙрд╕реА рддрд░рд╣ рд╕реЗ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ 512 рдПрдордмреА рддрдХ рд╕реАрдорд┐рдд рд╣реИред
- рд╕реВрдЪреА (рд╕реВрдЪреА)ред рд╕рдореНрдорд┐рд▓рди рдХреНрд░рдо рдореЗрдВ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреА рдХреНрд▓рд╛рд╕рд┐рдХ рд╕реВрдЪреА, рдЬреЛ рд╕рд┐рд░ рдХреА рддрд░рдл рдФрд░ рд╕реВрдЪреА рдХреА рдкреВрдВрдЫ рдХреА рддрд░рдл рд╕реЗ рджреЛрдиреЛрдВ рд╕рдВрднрд╡ рд╣реИред рддрддреНрд╡реЛрдВ рдХреА рдЕрдзрд┐рдХрддрдо рд╕рдВрдЦреНрдпрд╛ 2 32 - 1 рд╣реИред
- рд╕реЗрдЯ (рд╕реЗрдЯ)ред рдЧрдгрд┐рддреАрдп рдЕрд░реНрдереЛрдВ рдореЗрдВ рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рд╕реЗрдЯ: рдЖрджреЗрд╢ рдирд╣реАрдВ рджрд┐рдП рдЧрдП рд╣реИрдВ, рд╕рдореНрдорд┐рд▓рди рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ, рдПрдХ рддрддреНрд╡ рдХреЗ рдкреНрд░рд╡реЗрд╢ рдХреА рдЬрд╛рдВрдЪ, рдЪреМрд░рд╛рд╣реЗ рдФрд░ рд╕реЗрдЯ рдХрд╛ рдЕрдВрддрд░ред рддрддреНрд╡реЛрдВ рдХреА рдЕрдзрд┐рдХрддрдо рд╕рдВрдЦреНрдпрд╛ 2 32 - 1 рд╣реИред
- рд╣реИрд╢ рдЯреЗрдмрд▓ (рд╣реИрд╢)ред рдХреНрд▓рд╛рд╕рд┐рдХ рд╣реИрд╢ рдЯреЗрдмрд▓ рдпрд╛ рд╕рд╛рд╣рдЪрд░реНрдп рд╕рд░рдгрд┐рдпрд╛рдБред рдХреА-рд╡реИрд▓реНрдпреВ рдкреЗрдпрд░ рдХреА рдЕрдзрд┐рдХрддрдо рд╕рдВрдЦреНрдпрд╛ 2 32 - 1 рд╣реИред
- рд╕реЙрд░реНрдЯ рдХрд┐рдП рдЧрдП рд╕реЗрдЯред рдПрдХ рдСрд░реНрдбрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╕реЗрдЯ рд╕рд╛рдорд╛рдиреНрдп рд╕реЗ рднрд┐рдиреНрди рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЙрд╕рдХреЗ рддрддреНрд╡реЛрдВ рдХреЛ рдПрдХ рд╡рд┐рд╢реЗрд╖ "рд╕реНрдХреЛрд░" рдкреИрд░рд╛рдореАрдЯрд░ рджреНрд╡рд╛рд░рд╛ рдСрд░реНрдбрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
Redis рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдФрд░ рдЕрдЪреНрдЫрд╛ рд▓реЗрдЦ рд╣реИ:
"Redis рджреНрд╡рд╛рд░рд╛ рдкреНрд░рдпреБрдХреНрдд рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдПрдВ ред
"рдореВрд▓ рд╕рдВрдЪрд╛рд▓рди
рдХрдВрд╕реЛрд▓
redis-cli
рдХреНрд▓рд╛рдЗрдВрдЯ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ Redis рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддрд╛ рд╣реИред рдмреБрдирд┐рдпрд╛рджреА рдХрд╛рд░реНрдпреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред
рдЯрд╛рд╕реНрдХ 1, рдирд┐рд░реНрдорд╛рдг, рдЪрдпрди, рд╕рдВрд╢реЛрдзрди, рд╡рд┐рд▓реЛрдкрди рдФрд░ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмреБрдирд┐рдпрд╛рджреА рдЬрд╛рдирдХрд╛рд░реАред
рдлреЙрд░реНрдо
test:1:*
рдХреА рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдорд╛рди рд╕реЗрдЯ рдХрд░реЗрдВ рдФрд░ рдкрдврд╝реЗрдВ
test:1:*
ред рдореВрд▓реНрдп рдХреЗ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдПрдВ, рдПрдХ рддрддреНрд╡ рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВ,
test:1
рд╕рднреА рдлрд╝реАрд▓реНрдб рдирд┐рдХрд╛рд▓реЗрдВ
test:1
рд░рд┐рдХреЙрд░реНрдб,
test:1
рд╣рдЯрд╛рдПрдВ
test:1
рд░рд┐рдХреЙрд░реНрдб рдлрд╝реАрд▓реНрдбред
redis 127.0.0.1:6379> set test:1:string "my binary safe string" OK redis 127.0.0.1:6379> get test:1:string "my binary safe string" redis 127.0.0.1:6379> getset test:1:string "other value" "my binary safe string" redis 127.0.0.1:6379> type test:1:string string redis 127.0.0.1:6379> set test:1:vlaue "487" OK redis 127.0.0.1:6379> rename test:1:vlaue test:1:value OK redis 127.0.0.1:6379> exists test:1:vlaue (integer) 0 redis 127.0.0.1:6379> exists test:1:value (integer) 1 redis 127.0.0.1:6379> keys test:1:* 1) "test:1:string" 2) "test:1:value" redis 127.0.0.1:6379> del test:1:value (integer) 1 redis 127.0.0.1:6379> keys test:1:* 1) "test:1:string"
рдЗрд╕ рдХрд╛рд░реНрдп рд╕реЗ рдЬреБрдбрд╝реЗ рдЖрджреЗрд╢реЛрдВ рдкрд░ рд╡рд┐рд╡рд░рдг
рдХреБрдВрдЬреА рдФрд░
рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдЕрдиреБрднрд╛рдЧреЛрдВ рдореЗрдВ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдХрд╛рд░реНрдп 2, рд╡рд╕реНрддреБ рдХрд╛ рдЬреАрд╡рдирдХрд╛рд▓ред
redis 127.0.0.1:6379> ttl test:1:string (integer) -1 redis 127.0.0.1:6379> expire test:1:string 6000 (integer) 1 redis 127.0.0.1:6379> ttl test:1:string (integer) 5997
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдСрдмреНрдЬреЗрдХреНрдЯ рдЕрдкрдиреЗ рдЬреАрд╡рдирдХрд╛рд▓ рддрдХ рд╕реАрдорд┐рдд рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП
TTL
рд░рд┐рдЯрд░реНрди -1,
EXPIRE
рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рдорд╛рди рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж,
TTL
рдХрдорд╛рдВрдб рдкрд╣рд▓реЗ рд╣реА рд╕реЗрдХрдВрдб рдХреА рд╢реЗрд╖ рд╕рдВрдЦреНрдпрд╛ рд▓реМрдЯрд╛рддрд╛ рд╣реИред
рдЗрд╕ рдХрд╛рд░реНрдп рд╕реЗ рдЬреБрдбрд╝реЗ рдЖрджреЗрд╢реЛрдВ рдкрд░ рд╡рд┐рд╡рд░рдг
рдХреБрдВрдЬреА рдФрд░
рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдЕрдиреБрднрд╛рдЧреЛрдВ рдореЗрдВ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЯрд╛рд╕реНрдХ 3, рдкрд╛рдЗрдкрд▓рд╛рдЗрдирд┐рдВрдЧ, рдПрдХ рд╣реА рдЕрдиреБрд░реЛрдз рдХреЗ рд╕рд╛рде рдХрдИ рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ред
PS D:\Programs\Redis\64bit> "set test:1:pvalue 'test'`r`nget test:1:pvalue" | .\redis-cli OK "test"
рдкрд╛рдЗрдкрд▓рд╛рдЗрдирд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдереЛрдХ рдЖрд╡реЗрд╖рдг рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╕рд╛рдиреА рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЯрд╛рд╕реНрдХ 4, рд▓реЗрдирджреЗрдиред
Redis рдореЗрдВ рд▓реЗрди-рджреЗрди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдореВрд▓ рдЖрджреЗрд╢реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
MULTI
- рдПрдХ рд▓реЗрдирджреЗрди рдХреЗ рд▓рд┐рдП рдХрдорд╛рдВрдб рд░рд┐рдХреЙрд░реНрдб рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВредEXEC
- рд░рд┐рдХреЙрд░реНрдбреЗрдб рдХрдорд╛рдВрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВредDISCARD
- рд╕рднреА рд░рд┐рдХреЙрд░реНрдбреЗрдб рдХрдорд╛рдВрдб рдХреЛ рд╣рдЯрд╛ рджреЗрдВредWATCH
- рдПрдХ рдХрдорд╛рдВрдб рдЬреЛ рдЪреЗрдХ-рдПрдВрдб-рд╕реЗрдЯ (рд╕реАрдПрдПрд╕) рд╡реНрдпрд╡рд╣рд╛рд░ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ - рдПрдХ рд▓реЗрдирджреЗрди рдХреЗрд╡рд▓ рддрднреА рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдЕрдиреНрдп рдХреНрд▓рд╛рдЗрдВрдЯ рдиреЗ рдЪрд░ рдХреЗ рдореВрд▓реНрдп рдХреЛ рдирд╣реАрдВ рдмрджрд▓рд╛ рд╣реИред рдЕрдиреНрдпрдерд╛, EXEC
рджрд░реНрдЬ рдЖрджреЗрд╢реЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред
redis 127.0.0.1:6379> multi OK redis 127.0.0.1:6379> set test:1:trValue "1" QUEUED redis 127.0.0.1:6379> incr test:1:trValue QUEUED redis 127.0.0.1:6379> decr test:1:trValue QUEUED redis 127.0.0.1:6379> exec 1) OK 2) (integer) 2 3) (integer) 1
рдЗрд╕ рдХрд╛рд░реНрдп рд╕реЗ рдЬреБрдбрд╝реЗ рдЖрджреЗрд╢реЛрдВ рдХрд╛ рд╡рд┐рд╡рд░рдг
рд▓реЗрди-рджреЗрди рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рд░реЗрдЦрд╛рдПрдБ / рд╕рдВрдЦреНрдпрд╛рдПрдБ
рдЯрд╛рд╕реНрдХ 5, рдмреБрдирд┐рдпрд╛рджреА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдСрдкрд░реЗрд╢рди рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред
redis 127.0.0.1:6379> set test:1:string "hello" OK redis 127.0.0.1:6379> append test:1:string " world!" (integer) 12 redis 127.0.0.1:6379> get test:1:string "hello world!" redis 127.0.0.1:6379> strlen test:1:string (integer) 12 redis 127.0.0.1:6379> getrange test:1:string 6 10 "world" redis 127.0.0.1:6379> setrange test:1:string 6 "habrahabr!" (integer) 16 redis 127.0.0.1:6379> get test:1:string "hello habrahabr!"
рдЯрд╛рд╕реНрдХ 6, рд╕рдВрдЦреНрдпрд╛рдУрдВ рдкрд░ рд╕рдВрдЪрд╛рд▓рди рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред
redis 127.0.0.1:6379> set test:1:int 1 OK redis 127.0.0.1:6379> incr test:1:int (integer) 2 redis 127.0.0.1:6379> decr test:1:int (integer) 1 redis 127.0.0.1:6379> incrby test:1:int 20 (integer) 21 redis 127.0.0.1:6379> decrby test:1:int 15 (integer) 6
рдЗрди рдХрд╛рд░реНрдпреЛрдВ рд╕реЗ рдЬреБрдбрд╝реЗ рдЖрджреЗрд╢реЛрдВ рдкрд░ рд╡рд┐рд╡рд░рдг
рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рд╕реВрдЪрд┐рдпреЛрдВ
рдЯрд╛рд╕реНрдХ 7, рдПрдХ рд╕реВрдЪреА рдмрдирд╛рдПрдВ, рд╕реВрдЪрд┐рдпреЛрдВ рдкрд░ рдмреБрдирд┐рдпрд╛рджреА рд╕рдВрдЪрд╛рд▓рди рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВред
redis 127.0.0.1:6379> rpush test:1:messages "Hello, world!" (integer) 1 redis 127.0.0.1:6379> rpush test:1:messages "Hello, user!" (integer) 2 redis 127.0.0.1:6379> rpush test:1:messages "Wow!" (integer) 3 redis 127.0.0.1:6379> lrange test:1:messages 0 2 1) "Hello, world!" 2) "Hello, user!" 3) "Wow!" redis 127.0.0.1:6379> llen test:1:messages (integer) 3 redis 127.0.0.1:6379> lpop test:1:messages "Hello, world!" redis 127.0.0.1:6379> lpop test:1:messages "Hello, user!" redis 127.0.0.1:6379> lpop test:1:messages "Wow!" redis 127.0.0.1:6379> llen test:1:messages (integer) 0
рдЗрд╕ рдХрд╛рд░реНрдп рд╕реЗ рдЬреБрдбрд╝реЗ рдЖрджреЗрд╢реЛрдВ рдкрд░ рд╡рд┐рд╡рд░рдг
рд╕реВрдЪреА рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рд╕реЗрдЯ, рдСрд░реНрдбрд░ рд╕реЗрдЯ
рдЯрд╛рд╕реНрдХ 8, рдПрдХ рд╕реЗрдЯ рдмрдирд╛рдПрдВ, рд╕реЗрдЯ рдкрд░ рдореВрд▓ рд╕рдВрдЪрд╛рд▓рди рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВред
redis 127.0.0.1:6379> sadd test:1:fruits "banana" (integer) 1 redis 127.0.0.1:6379> sadd test:1:fruits "apple" (integer) 1 redis 127.0.0.1:6379> sadd test:1:fruits "strawberry" (integer) 1 redis 127.0.0.1:6379> sadd test:1:yellowThings "banana" (integer) 1 redis 127.0.0.1:6379> sadd test:1:yellowThings "apple" (integer) 1 redis 127.0.0.1:6379> sadd test:1:redThings "strawberry" (integer) 1 redis 127.0.0.1:6379> scard test:1:fruits (integer) 3 redis 127.0.0.1:6379> sdiff test:1:fruits test:1:yellowThings 1) "strawberry" redis 127.0.0.1:6379> sdiffstore test:1:noYellowFruits test:1:fruits test:1:yellowThings (integer) 1 redis 127.0.0.1:6379> sinter test:1:yellowThings test:1:fruits 1) "banana" 2) "apple" redis 127.0.0.1:6379> sismember test:1:fruits "banana" (integer) 1 redis 127.0.0.1:6379> sismember test:1:fruits "tomato" (integer) 0 redis 127.0.0.1:6379> smembers test:1:noYellowFruits 1) "strawberry" redis 127.0.0.1:6379> smove test:1:yellowThings test:1:redThings "apple" (integer) 1 redis 127.0.0.1:6379> smembers test:1:redThings 1) "strawberry" 2) "apple" redis 127.0.0.1:6379> spop test:1:redThings "apple" redis 127.0.0.1:6379> srandmember test:1:fruits "apple" redis 127.0.0.1:6379> srem test:1:fruits "banana" (integer) 1 redis 127.0.0.1:6379> sunion test:1:yellowThings test:1:redThings 1) "strawberry" 2) "banana" redis 127.0.0.1:6379> sunionstore test:1:allThings test:1:yellowThings test:1:redThings (integer) 2 redis 127.0.0.1:6379> smembers test:1:allThings 1) "strawberry" 2) "banana"
рдЗрд╕ рдХрд╛рд░реНрдп рд╕реЗ рдЬреБрдбрд╝реЗ рдЖрджреЗрд╢реЛрдВ рдХрд╛ рд╡рд┐рд╡рд░рдг
рд╕реЗрдЯ рд╕реЗрдХреНрд╢рди рдореЗрдВ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЯрд╛рд╕реНрдХ 9, рдПрдХ рдСрд░реНрдбрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╕реЗрдЯ рдмрдирд╛рдПрдВ рдФрд░ рдЙрд╕ рдкрд░ рдореВрд▓ рд╕рдВрдЪрд╛рд▓рди рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВред
рдПрдХ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╕реЗрдЯ рдореЗрдВ, рддрддреНрд╡реЛрдВ рдХреА рддреБрд▓рдирд╛ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреИрд░рд╛рдореАрдЯрд░ "рд╕реНрдХреЛрд░" рд╕реЗ рдХреА рдЬрд╛рддреА рд╣реИред
redis 127.0.0.1:6379> zadd hackers 1953 "Richard Stallman" (integer) 1 redis 127.0.0.1:6379> zadd hackers 1940 "Alan Kay" (integer) 1 redis 127.0.0.1:6379> zadd hackers 1965 "Yukihiro Matsumoto" (integer) 1 redis 127.0.0.1:6379> zadd hackers 1916 "Claude Shannon" (integer) 1 redis 127.0.0.1:6379> zadd hackers 1969 "Linus Torvalds" (integer) 1 redis 127.0.0.1:6379> zadd hackers 1912 "Alan Turing" (integer) 1 redis 127.0.0.1:6379> zrange hackers 0 -1 1) "Alan Turing" 2) "Claude Shannon" 3) "Alan Kay" 4) "Richard Stallman" 5) "Yukihiro Matsumoto" 6) "Linus Torvalds" redis 127.0.0.1:6379> zrevrange hackers 0 -1 1) "Linus Torvalds" 2) "Yukihiro Matsumoto" 3) "Richard Stallman" 4) "Alan Kay" 5) "Claude Shannon" 6) "Alan Turing" redis 127.0.0.1:6379> zrangebyscore hackers -inf 1950 1) "Alan Turing" 2) "Claude Shannon" 3) "Alan Kay" redis 127.0.0.1:6379> zremrangebyscore hackers 1940 1960 (integer) 2 redis 127.0.0.1:6379> zrange hackers 0 -1 1) "Alan Turing" 2) "Claude Shannon" 3) "Yukihiro Matsumoto" 4) "Linus Torvalds"
рдЗрд╕ рдХрд╛рд░реНрдп рд╕реЗ рдЬреБрдбрд╝реА рдХрдорд╛рдВрдб рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЛ
рд╕реЙрд░реНрдЯ рдХрд┐рдП рдЧрдП рд╕реЗрдЯреНрд╕ рд╕реЗрдХреНрд╢рди рдореЗрдВ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рд╣реИрд╢ рдЯреЗрдмрд▓
рдЯрд╛рд╕реНрдХ 10, рдПрдХ рд╣реИрд╢ рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рдПрдБ рдФрд░ рд╣реИрд╢ рдкрд░ рдмреБрдирд┐рдпрд╛рджреА рд╕рдВрдЪрд╛рд▓рди рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред
redis 127.0.0.1:6379> hset users:1 name "Andrew" (integer) 1 redis 127.0.0.1:6379> hset users:1 email "andrew@example.com" (integer) 1 redis 127.0.0.1:6379> hkeys users:1 1) "name" 2) "email" redis 127.0.0.1:6379> hvals users:1 1) "Andrew" 2) "andrew@example.com" redis 127.0.0.1:6379> hgetall users:1 1) "name" 2) "Andrew" 3) "email" 4) "andrew@example.com" redis 127.0.0.1:6379> hset users:1 test 1 (integer) 1 redis 127.0.0.1:6379> hincrby users:1 test 123 (integer) 124 redis 127.0.0.1:6379> hvals users:1 1) "Andrew" 2) "andrew@example.com" 3) "124" redis 127.0.0.1:6379> hdel users:1 test (integer) 1 redis 127.0.0.1:6379> hvals users:1 1) "Andrew" 2) "andrew@example.com"
рдЗрд╕ рдХрд╛рд░реНрдп рд╕реЗ рдЬреБрдбрд╝реЗ рдЖрджреЗрд╢реЛрдВ рдкрд░ рд╡рд┐рд╡рд░рдг
Hashes рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдкрдм / рд╕рдм, рд░реЗрдбрд┐рд╕ рдореЗрдВ рдкреЛрд╕реНрдЯ
рдЯрд╛рд╕реНрдХ 11, рдПрдХ рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ рд╕рдВрджреЗрд╢реЛрдВ рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реЗрдВ рдФрд░ рджреВрд╕рд░реЗ рд╕реЗ рд╕рдВрджреЗрд╢ рднреЗрдЬреЗрдВред
рдпрд╣рд╛рдВ рджреЛ рдХреНрд▓рд╛рдЗрдВрдЯреНрд╕ рдХреА рд╡рд┐рдВрдбреЛ рд╣реИрдВ, рдкрд╣рд▓реА рд╡рд┐рдВрдбреЛ рдореЗрдВ рдореИрд╕реЗрдЬ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдмреНрд╕рдХреНрд░рд┐рдкреНрд╢рди рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рджреВрд╕рд░реА рд╡рд┐рдВрдбреЛ рд╕реЗ рднреЗрдЬрд╛ рдЧрдпрд╛ рдореИрд╕реЗрдЬ рджрд┐рдЦрд╛рдИ рджреЗ рд░рд╣рд╛ рд╣реИред
redis 127.0.0.1:6379> SUBSCRIBE messages Reading messages... (press Ctrl-C to quit) 1) "subscribe" 2) "messages" 3) (integer) 1 1) "message" 2) "messages" 3) "Hello world!"
redis 127.0.0.1:6379> PUBLISH messages "Hello world!" (integer) 1
рдЯрд╛рд╕реНрдХ 12, рдПрдХ рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ рд╕рдВрджреЗрд╢реЛрдВ рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реЗрдВ рдФрд░ рджреВрд╕рд░реЗ рд╕реЗ рд╕рдВрджреЗрд╢ рднреЗрдЬреЗрдВред рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рджрд╕реНрдпрддрд╛ рд▓реЗрдВред
рдпрд╣рд╛рдВ рджреЛ рдХреНрд▓рд╛рдЗрдВрдЯреНрд╕ рдХреА рд╡рд┐рдВрдбреЛ рд╣реИрдВ, рдкрд╣рд▓реА рд╡рд┐рдВрдбреЛ рдореЗрдВ рдореИрд╕реЗрдЬ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдмреНрд╕рдХреНрд░рд┐рдкреНрд╢рди рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рджреВрд╕рд░реА рд╡рд┐рдВрдбреЛ рд╕реЗ рднреЗрдЬрд╛ рдЧрдпрд╛ рдореИрд╕реЗрдЬ рджрд┐рдЦрд╛рдИ рджреЗ рд░рд╣рд╛ рд╣реИред
redis 127.0.0.1:6379> PSUBSCRIBE news.* Reading messages... (press Ctrl-C to quit) 1) "psubscribe" 2) "news.*" 3) (integer) 1 1) "pmessage" 2) "news.*" 3) "news.art" 4) "New picture!" 1) "pmessage" 2) "news.*" 3) "news.cinema" 4) "New movie!"
redis 127.0.0.1:6379> PUBLISH news.art "New picture!" (integer) 1 redis 127.0.0.1:6379> PUBLISH news.cinema "New movie!" (integer) 1
рдЗрди рдХрд╛рд░реНрдпреЛрдВ рд╕реЗ рдЬреБрдбрд╝реЗ рдЖрджреЗрд╢реЛрдВ рдкрд░ рд╡рд┐рд╡рд░рдг
рдкрдм / рдЙрдк рдЦрдВрдб рдореЗрдВ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред