(no subject)

Tuesday, 15 January 2013 02:58
gns_ua: (russe)
[personal profile] gns_ua
Транзакции в редисе реально странные. Т.е. optimistic locking, всё такое, я понимаю, но в итоге обнаруживается что:

[altlinux@eeelive ~]$ python -c 'import redis; r=redis.Redis(); r.watch("testestest"); p=r.pipeline(); p.set("testestest", 1); p.execute()'
/usr/lib/python2.6/site-packages/redis/client.py:730: DeprecationWarning: Call WATCH from a Pipeline object
warnings.warn(DeprecationWarning('Call WATCH from a Pipeline object'))


Да? Хорошо.

[altlinux@eeelive ~]$ python -c 'import redis; r=redis.Redis(); p=r.pipeline(); p.watch("testestest"); p.set("testestest", 1); p.execute()'
Traceback (most recent call last):
File "", line 1, in
File "/usr/lib/python2.6/site-packages/redis/client.py", line 1811, in execute
return execute(conn, stack, raise_on_error)
File "/usr/lib/python2.6/site-packages/redis/client.py", line 1730, in _execute_transaction
raise WatchError("Watched variable changed.")
redis.exceptions.WatchError: Watched variable changed.


Мдя? Хорошо, давай в redis-cli.

Одной рукой:

[altlinux@eeelive ~]$ redis-cli
redis 127.0.0.1:6379> watch testest
OK
redis 127.0.0.1:6379> multi
OK
redis 127.0.0.1:6379> set testest 1
QUEUED


Тем временем второй рукой:

[altlinux@eeelive ~]$ redis-cli set testest 10
OK


Возвращаемся в первую:

redis 127.0.0.1:6379> exec
(nil)
redis 127.0.0.1:6379> get testest
"10"


Всё как положено, да. Ну а если самому менять то что вотчишь?

[altlinux@eeelive redis-2.6.8]$ ./src/redis-cli
redis 127.0.0.1:6379> get test-2.6.8
(nil)
redis 127.0.0.1:6379> set test-2.6.8 123456
OK
redis 127.0.0.1:6379> watch test-2.6.8
OK
redis 127.0.0.1:6379> multi
OK
redis 127.0.0.1:6379> set test-2.6.8 xyz
QUEUED
redis 127.0.0.1:6379> exec
1) OK
redis 127.0.0.1:6379> get test-2.6.8
"xyz"


Всё правильно. А чо питоновская либа выёбывается?

Одно из двух, или я чего-то не понимаю в концепции оптимистических локов, или аффтары pyredis. Или просто янихуянепонелжпг :(
This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

Profile

gns_ua: (Default)
gns_ua

April 2017

M T W T F S S
     12
3456789
10111213141516
17181920212223
24252627282930

Expand Cut Tags

No cut tags