lachim / redis Goto Github PK
View Code? Open in Web Editor NEWAutomatically exported from code.google.com/p/redis
Automatically exported from code.google.com/p/redis
I recently downloaded redis-beta-8.tar.gz on my ubuntu.. but im no
tfamiliar with installation. the readme file does not really describe how
to get started with redis(installation of the redis server).
I hope someone can help with this.
Original issue reported on code.google.com by [email protected]
on 7 Apr 2009 at 9:55
Here is what happens:
I have a large dataset, over 500 MB and growing. But when the dataset reaches
the size of
approximately 500MB, it stops dumping the data (dump.rdb not being updated).
When the
second redis-server thread (is it a process?) dumps the data periodically, it
never completes and
the following error is presented on the console. Redis continues to work
however.
Moreover, when I try to manually tell redis to save synchronously (redis-cli
save), it aborts with
the following backtrace too.
. DB 0: 1605703 keys (0 volatile) in 2097152 slots HT.
. 1 clients connected (0 slaves), 556856524 bytes in use
*** glibc detected *** ./redis-server: free(): invalid next size (fast):
0x2ea7a9c8 ***
======= Backtrace: =========
/lib/tls/i686/nosegneg/libc.so.6[0x1f5274]
/lib/tls/i686/nosegneg/libc.so.6(cfree+0x96)[0x1f7296]
./redis-server[0x804f573]
./redis-server[0x80518e5]
./redis-server[0x8051d0d]
./redis-server[0x804d9df]
./redis-server[0x805125a]
./redis-server[0x8049f41]
./redis-server[0x804a118]
./redis-server[0x8050e01]
/lib/tls/i686/nosegneg/libc.so.6(__libc_start_main+0xe5)[0x19b775]
./redis-server[0x80493b1]
======= Memory map: ========
00184000-00185000 r-xp 00184000 00:00 0 [vdso]
00185000-002e4000 r-xp 00000000 08:01 475463
/lib/tls/i686/nosegneg/libc-2.9.so
002e4000-002e5000 ---p 0015f000 08:01 475463
/lib/tls/i686/nosegneg/libc-2.9.so
002e5000-002e7000 r--p 0015f000 08:01 475463
/lib/tls/i686/nosegneg/libc-2.9.so
002e7000-002e8000 rw-p 00161000 08:01 475463
/lib/tls/i686/nosegneg/libc-2.9.so
002e8000-002eb000 rw-p 002e8000 00:00 0
0035a000-00367000 r-xp 00000000 08:01 467098 /lib/libgcc_s.so.1
00367000-00368000 r--p 0000c000 08:01 467098 /lib/libgcc_s.so.1
00368000-00369000 rw-p 0000d000 08:01 467098 /lib/libgcc_s.so.1
005ba000-005d6000 r-xp 00000000 08:01 467078 /lib/ld-2.9.so
005d6000-005d7000 r--p 0001b000 08:01 467078 /lib/ld-2.9.so
005d7000-005d8000 rw-p 0001c000 08:01 467078 /lib/ld-2.9.so
08048000-08056000 r-xp 00000000 08:02 18661558
/mnt/redis/redis-0.092/redis-server
08056000-08057000 r--p 0000d000 08:02 18661558
/mnt/redis/redis-0.092/redis-server
08057000-08058000 rw-p 0000e000 08:02 18661558
/mnt/redis/redis-0.092/redis-server
08da4000-2ea8f000 rw-p 08da4000 00:00 0
b6fc6000-b77c7000 rw-p b6fc6000 00:00 0
b7d00000-b7d21000 rw-p b7d00000 00:00 0
b7d21000-b7e00000 ---p b7d21000 00:00 0
b7e2b000-b7f2c000 rw-p b7e2b000 00:00 0
b7fad000-b7fae000 rw-p b7fad000 00:00 0
b7fb0000-b7fb5000 rw-p b7fb0000 00:00 0
bfd0d000-bfd53000 rw-p bfd0d000 00:00 0 [stack]
Aborted
The same behaviour have been noticed on redis 0.092 and 0.091, on both MacOS X
(Leopard)
and Ubuntu 9.04, both 32bit. I will try to run the system on a 64bit platform
too.
I hope this can be resolved. Good luck!
Michal
Original issue reported on code.google.com by [email protected]
on 28 Apr 2009 at 8:48
What steps will reproduce the problem?
1. select an empty db (e.g. "select 9")
2. (not necessary to reproduce: issue keys command to insure db is in fact
empty $0 result)
3. issue randomkey
What is the expected output? What do you see instead?
server will crash.
on server terminal:
..
. DB 0: 1 keys (0 volatile) in 16 slots HT.
. 1 clients connected (0 slaves), 2964 bytes in use
Bus error
What version of the product are you using? On what operating system?
redis:
Git download April 07 2009
"antirez-redis-05557f6de7fd7a4ae29614ae2cde78cd08ebd1b9"
os:
Mac OS X 10.5
Please provide any additional information below.
If the server has not saved any data you added in your session, regardless of
the db, issuing
randomkey in the empty db will also cause the loss of keys in other dbs.
Issuing SAVE before
doing this however will guard against that.
Original issue reported on code.google.com by [email protected]
on 7 Apr 2009 at 10:45
Credo che se ti mando una mail non la leggi. :)
Allego un piccolo diff dei typo che ho trovato leggendo il README.
L.
Original issue reported on code.google.com by [email protected]
on 26 Feb 2009 at 10:51
Attachments:
I think we really need a benchmark script for Redis able to measure both
latency percentiles and queries/seconds with different number of clients.
There are at least two important reasons for having it: without a good
benchmark it is very hard to try a coding effort with the goal of improving
Redis performances now or in the future, and it is very hard to tell from a
release to another one if changed has some kind of impact on performances.
This need arise in this days because I'm reworking a lot the Redis
internals in order to use everywhere refcounted objects. This will be a
very important step in order to make the code more coherent and well
designed and to support zero-copy master <-> slave communication channel
when replication will be implemented. From what I can tell sometimes to
have keys in Redis objects is a win, but some other time just an overhead.
A benchmark can tell what's the reality!
Original issue reported on code.google.com by [email protected]
on 3 Mar 2009 at 10:47
I failed to compile redis on FreeBSD. But when remove below code in redis.c,
it will succeed in compliling.
#include <execinfo.h>
Original issue reported on code.google.com by [email protected]
on 17 Jun 2009 at 11:46
Currently: lpush, rpush
Suggest: all list-related methods(e.g. in redis.php) started with the
letter 'l'.
So,
lpush becomes llpush or lprepend
rpush becomes lrpush or lappend
BTW, should change the clpush and crpush accordingly.
And, merely 'push' is mis-leading, as if it is of string operation.
Original issue reported on code.google.com by [email protected]
on 6 Jul 2009 at 7:06
Mi sbaglierò, ma il modo con cui viene risposto ai comandi EXISTS,
LASTSAVE, LLEN ecc. rende un po' complicato fare il parsing delle risposte
bulk, slegato dalle richieste.
MI spiego meglio: le risposte del server sono di tre tipi (almeno per
quanto ho capito fino ad ora)
* una risposta che inizia con uno status +XXX (PING, SET)
* una risposta di errore che inizia con uno status -XXX
* una risposta numerica
* una risposta contenente uno o più valori
Nei primi due casi il primo carattere della prima riga definisce cosa
contiene il resto della risposta e in quante righe.
Negli altri due no, nel senso che una risposta in cui la prima riga
contiene un numero può avere un seguito (valori delle chiavi), o no (EXISTS
ecc.).
A questo punto fare un peek nel resto dei dati diventa problematico se il
socket è in blocking mode, se non c'è niente da leggere (EXISTS) si resta
appesi.
Sembra che l'unico modo di discriminare tra i due tipi di risposte sia
quindi di portarsi dietro la cronologia delle richieste e usare queste per
capire che tipo di formato ha la risposta. Non sarebbe più semplice
differenziare i due tipi di risposte (valore numerico su una riga come
unico contenuto, e valori su più linee con lunghezza del payload sulla
prima riga), in modo da svincolare completamente richieste e risposte nel
client? Poi è ovvio che se chi lo utilizza fa una richiesta non-bulk
riceverà subito la risposta, per richieste bulk dovrà invece fare il
matching da solo tra richieste e risposte, ma tanto deve farlo comunque è
intuile quindi farlo due volte (nel client per capire che formato ha la
risposta, e nel codice che lo usa per ricomporre richieste e risposte).
Metto in pausa il client python finchè non mi dai un parere. Può anche
darsi che io sia completamente off topic, non sarebbe la prima volta. :)
BTW già che ci siamo, una richiesta di esempio su come impostare una lista
nel doc ci starebbe bene, non è proprio immediato da capire.
Original issue reported on code.google.com by [email protected]
on 26 Feb 2009 at 2:59
I noticed in the tcl test script that you call sort with a By of nokey. Is
'nokey' a special keyword to indicate that the By is meaningless or is
there some other meaning?
Thanks.
Original issue reported on code.google.com by [email protected]
on 5 Jul 2009 at 6:51
Consider this
-> RPUSH l 3
-> aaa
<- +OK
-> SET i -42
<- +OK
-> GET l
<- -42
<- GET against key not holding a string value
-> GET i
<- -42
How can you differentiate the error message in the client returned by "GET
l" from the value returned by "GET b"?
You cannot inspect the next line, as in the case of "GET b" the socket
would block as there's nothing more to read.
I think you should change error messages so that they have always a first
line with
-ERR
then if you still want to return an error code, you can stuff that in the
second line, before the error message. It will be trivial to split the
second line and try to cast the first token to int to check if it's an
error code.
Then write in the docs that storing '-ERR\r\nSome stuff here\r\n' will
never return that as a value but as an error message.
Original issue reported on code.google.com by [email protected]
on 2 Mar 2009 at 9:40
Hi,
Currently we use a Java OSCache w/ the notion of "groups" which allow for
flexible cache management in certain situations. One thing we noticed w/
Redis is that you can not delete multiple keys in a single shot, is this
something that would be possible to accomplish?
Thanks.
- Jon
Original issue reported on code.google.com by [email protected]
on 4 May 2009 at 6:28
lookupCommand checks for .name != NULL, but the last entry for cmdTable is
"". Trivial patch attached.
Original issue reported on code.google.com by [email protected]
on 19 Mar 2009 at 10:09
Attachments:
If you follow the steps bellow:
redis-0.093/redis-cli FLUSHDB
OK
redis-0.093/redis-cli SET a 5
OK
redis-0.093/redis-cli EXPIRE a 3600
1
redis-0.093/redis-cli GET a
5
redis-0.093/redis-cli INCR a
1
.. I believe the output should be 6 here... and it's the same problem if
you combine INCRBY with EXPIRE.
Original issue reported on code.google.com by [email protected]
on 29 Apr 2009 at 3:32
I just added support for the sort command (and a bunch of other stuff) to
the Python client, but there are a couple of issues.
The first one is that DESC does not appear to work, everything is ordered
with an implicit DESC (the opposite of what is stated in the docs) and ASC
does nothing.
The second one is that if you use SEARCH ... BY ... without having enough
keys/value pairs to GET for each element, the error returned is an empty
string instead of a description of what happened.
Original issue reported on code.google.com by [email protected]
on 17 Mar 2009 at 3:02
Not sure what Im doing wrong here, would like to get this going for POC on
Solaris though (OS X local is fine) ... any ideas?
jon@ny-devbuild01% declare -x CC=gcc
jon@ny-devbuild01% /usr/sfw/bin/gmake
gcc -c -O2 -Wall -W -DSDS_ABORT_ON_OOM -g adlist.c
gcc -c -O2 -Wall -W -DSDS_ABORT_ON_OOM -g ae.c
ae.c: In function `aeProcessEvents':
ae.c:210: warning: implicit declaration of function `memset'
gcc -c -O2 -Wall -W -DSDS_ABORT_ON_OOM -g anet.c
gcc -c -O2 -Wall -W -DSDS_ABORT_ON_OOM -g dict.c
gcc -c -O2 -Wall -W -DSDS_ABORT_ON_OOM -g redis.c
redis.c: In function `daemonize':
redis.c:2961: warning: int format, pid_t arg (arg 3)
redis.c: In function `loadDb':
redis.c:1520: warning: 'o' might be used uninitialized in this function
gcc -c -O2 -Wall -W -DSDS_ABORT_ON_OOM -g sds.c
gcc -o redis-server -O2 -Wall -W -DSDS_ABORT_ON_OOM -g adlist.o ae.o anet.o
dict.o redis.o sds.o
Undefined first referenced
symbol in file
bind anet.o
accept anet.o
listen anet.o
gethostbyname anet.o
socket anet.o
setsockopt anet.o
connect anet.o
inet_aton anet.o
inet_ntoa anet.o
ld: fatal: Symbol referencing errors. No output written to redis-server
collect2: ld returned 1 exit status
gmake: *** [redis-server] Error 1
Original issue reported on code.google.com by [email protected]
on 18 Mar 2009 at 7:57
What steps will reproduce the problem?
1. svn checkout http://redis.googlecode.com/svn/trunk/ redis-read-only
2. make
3. ./redis-server in one terminal, 'make test' in the other
What is the expected output? What do you see instead?
Expected: Tests to pass =)
Get instead:
server segfaults with stack trace:
Thread 1 (process 12396):
#0 0x00007f4fc73ea7b0 in strlen () from /lib/libc.so.6
No symbol table info available.
#1 0x00007f4fc73b347e in vfprintf () from /lib/libc.so.6
No symbol table info available.
#2 0x00007f4fc7464d18 in __vsnprintf_chk () from /lib/libc.so.6
No symbol table info available.
#3 0x0000000000408920 in sdscatprintf (s=0x17d4390 "", fmt=0x40a523
"%d\r\n%s\r\n") at /usr/include/bits/stdio2.h:78
ap = {{gp_offset = 48, fp_offset = 48, overflow_arg_area = 0x7fffcf8f86d0,
reg_save_area = 0x7fffcf8f85e0}}
t = <value optimized out>
buflen = 64
#4 0x00000000004059c8 in lindexCommand (c=0x1640820) at redis.c:1741
o = <value optimized out>
de = <value optimized out>
#5 0x0000000000404323 in processCommand (c=0x1640820) at redis.c:848
cmd = (struct redisCommand *) 0x60e480
#6 0x0000000000406de4 in readQueryFromClient (el=<value optimized out>,
fd=<value optimized out>, privdata=0x1640820, mask=<value optimized out>)
at redis.c:922
argv = (sds *) 0x17bd0a0
argc = 3
client says:
LINDEX against non-list value error
argument to math function didn't have numeric value
while executing
"expr {abs($count)}"
(procedure "redis_bulk_read" line 4)
invoked from within
"redis_bulk_read $fd"
(procedure "redis_lindex" line 3)
invoked from within
...
} else {
main [lindex $argv 0] [lindex $argv 1]
}"
(file "test-redis.tcl" line 643)
make: *** [test] Error 1
What version of the product are you using? On what operating system?
URL: http://redis.googlecode.com/svn/trunk
Revision: 46
Linux bboxl 2.6.27-11-generic #1 SMP Thu Jan 29 19:28:32 UTC 2009 x86_64
GNU/Linux
Please provide any additional information below.
Patch attached for sds.c
man vsnprintf
"These functions do not call the va_end macro. Consequently, the value of
ap is undefined after the call. The application should call va_end(ap)
itself afterwards."
Original issue reported on code.google.com by [email protected]
on 3 Mar 2009 at 6:02
Attachments:
bind(2) will fail on mac os x when Redis starts with a configuration file
that tells the server to bind a specific address instead to listen to all
the interfaces. The error is:
[EADDRNOTAVAIL] The specified address is not available from the local
machine.
Works perfectly on Linux. No clue about that but it is not so urgent right now.
Original issue reported on code.google.com by [email protected]
on 1 Mar 2009 at 2:08
I noticed that DEL is in the section on string, when in reality it works
for all types.
Secondly, I also noticed the document says DEL _key_ where it really is
DEL _KEY1_ _KEY2_ ...
and what is really returned is the count of the number of successful
deletes. Is this correct?
Original issue reported on code.google.com by [email protected]
on 5 Jul 2009 at 6:53
... and of course 0 in all other cases.
Original issue reported on code.google.com by [email protected]
on 27 Feb 2009 at 5:17
Suggest: add atomic string operation, append and prepend
Possible advantage/usage:
1. i can easily change from memcached.
2. i can mget this list-like value with other keys, in one single
TCP/network overhead. -> FASTER !
Original issue reported on code.google.com by [email protected]
on 6 Jul 2009 at 7:14
Hello,
Fantastic concept about operating on sets. I think a simple Map<String,
String> value with some simple command operations would be very useful.
Original issue reported on code.google.com by [email protected]
on 28 Apr 2009 at 7:51
STEPS TO REPRODUCE
What steps will reproduce the problem?
1. Start redis with default configuration.
2. Connect and issue a SELECT IDX (where IDX is greater than the maximum
databases), ie. 40
3. The connection gets closed by the server.
EXPECTED RESULTS
What is the expected output? What do you see instead?
Expect a proper response in "-ERR" form. In debug mode the server
outputs:
* Error writing to client: Bad address
redis-server(2000) malloc: *** error for object 0xc3fb: Non-aligned pointer
being freed
*** set a breakpoint in malloc_error_break to debug
The server doesn't crash and no information seems to be lost.
VERSION INFORMATION
redis version 0.7 on a Mac OS X (10.5.6)
Darwin strongcoffee.local 9.6.0 Darwin Kernel Version 9.6.0: Mon Nov 24
17:37:00 PST 2008; root:xnu-1228.9.59~1/RELEASE_I386 i386
Original issue reported on code.google.com by [email protected]
on 24 Mar 2009 at 6:10
Has anyone ported redis to Windows?
Original issue reported on code.google.com by [email protected]
on 6 May 2009 at 12:48
The Makefile currently does not delete the redis-benchmark binary on a 'make
clean'. The attached
patch will fix this (taken against r98).
Original issue reported on code.google.com by [email protected]
on 12 Mar 2009 at 5:28
Attachments:
What steps will reproduce the problem?
1. Start the redis server without authentication enable.
2. Connect with the database with a telnet session.
3. Issue the command AUTH
What is the expected output? What do you see instead?
The server should ignore the request and return +OK. But
Redis crashes with a Bus error.
What version of the product are you using? On what operating system?
GIT version on a Mac OS X.
Please provide any additional information below.
Evidence - Client session:
[@strongcoffee antirez-redis]$ telnet localhost 6379
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
auth foo
Connection closed by foreign host.
[@strongcoffee antirez-redis]$
Evidence - Server output:
[@strongcoffee antirez-redis]$ ./redis-server
- Server started, Redis version 0.08
- DB loaded from disk
- The server is now ready to accept connections on port 6379
. DB 0: 5 keys in 16 slots HT.
. 0 clients connected (0 slaves), 2566 bytes in use
. Accepted 127.0.0.1:59784
. DB 0: 5 keys in 16 slots HT.
. 1 clients connected (0 slaves), 2767 bytes in use
Bus error
[@strongcoffee antirez-redis]$
Original issue reported on code.google.com by [email protected]
on 2 Apr 2009 at 2:39
Using a constant batch and a website polling on the content gives this:
/lib/redis.rb:437:in `get_response': #<Errno::EAGAIN: Resource temporarily
unavailable> (RedisError)
from ./lib/redis.rb:192:in `get'
from ./lib/redis.rb:187:in `[]'
I'm on a Virtual Machine but dowsn't seem to be a memory problem:
total used free shared buffers cached
Mem: 786432 123196 663236 0 0 0
-/+ buffers/cache: 123196 663236
Swap: 0 0 0
Original issue reported on code.google.com by [email protected]
on 19 May 2009 at 8:26
In the new version of the protocol when there's a GET-like operation on any
type the format of the
response is:
-<ERRNO>
<OPERATION> against something...
To simplify parsing of the response it should probably be:
-<ERRNO>
-ERR: <OPERATION> against something
Original issue reported on code.google.com by [email protected]
on 28 Feb 2009 at 5:02
Thanks for the good job on Redis.
It is very useful if the lset behaviour change a little bit, as followings:
Say, i lset somekey 8 somevalue,
Now, if the key has less than 8 elements, it returns 'out of range'.
Suggestion: add an option: when this error occurs, creates the missing
element(s) with a empty string.
For example:
currently, there is 3 elements in 'somekey', so Redis create, atomically,
the 4th to 7th elements with empty string, and the 8th element with
'somevalue'.
Possible Usage:
it seems like a row of data, 'somekey' is the primary key, the elements are
the fields. Without the suggested option, i find it hard to fill up the
list in order by rpush one by one.
With the suggest option, i can freely assign and/or get data to/from each
field.
Sorry, i couldn't find anywhere to post the feature wished. if any, pls
tell me.
Original issue reported on code.google.com by [email protected]
on 6 Jul 2009 at 6:52
Redis version 0.094 compiled and started on Centos 5.3 x86_64
Application (perl lib) issue many mget, ping, incr, decr commands on very
small dataset:
DB 0: 80 keys (0 volatile) in 128 slots HT
-rw-r--r-- 1 memd memd 1455 May 8 11:52 dump.rdb
# tail -f redis.log
. 14 clients connected (0 slaves), 538825 bytes in use
. 13 clients connected (0 slaves), 3330500 bytes in use
. 12 clients connected (0 slaves), 6172857 bytes in use
. 11 clients connected (0 slaves), 9313188 bytes in use
. 9 clients connected (0 slaves), 11728768 bytes in use
..........
. 11 clients connected (0 slaves), 78654840 bytes in use
. 12 clients connected (0 slaves), 81017697 bytes in use
Memory usage show by ps aux also growing.
Why? Is it right behaviour? I have wait for memory usage 300 Mb and shut it
down.
Original issue reported on code.google.com by [email protected]
on 8 May 2009 at 7:57
Here's a simple patch to support fixed-size lists. It adds two new commands
(variants of LPUSH and RPUSH) :
CLPUSH <max size> <key> <value>
If the list has already at least <max size> items, drop the last (tail) item of
the
list before appending the newcomer to the head of the list.
CRPUSH <max size> <key> <value>
If the list has already at least <max_size> items, drop the first (head) item
of
the list before appending the newcomer to the tail of the list.
Original issue reported on code.google.com by [email protected]
on 23 Jun 2009 at 1:48
I've modified redis.py to work in a mult-threaded environment. Do you want it?
Chas.
Original issue reported on code.google.com by [email protected]
on 2 May 2009 at 4:18
"daemonize" is misspelled as "deamonize" everywhere. The attached patch fixes
that.
Original issue reported on code.google.com by [email protected]
on 12 Mar 2009 at 5:56
Attachments:
Right now redis binds to all the interfaces, it would be nice to be able to
set an option that limits redis to one or more interfaces. Eg let it bind
only on the loopback interface, etc.
Original issue reported on code.google.com by [email protected]
on 2 Mar 2009 at 9:21
The REDIS_MAX_ARGS constant is set to 16 in radis.c. This is a very small
number since it allows for only 15 keys to be requested simultaneously with
MGET. This should be either set to a higher value (like 128 for example) or
simply made a configuration directive for everyone to alter!
A BIG point in using MGET is to save client-server trips; this limitation
takes A LOT from MGET's advantage!
What puzzles me though is that even after increasing the REDIS_MAX_ARGS
constant to 256 within redis.c and recompiling the program, another limit
is reached: when trying to retrieve over 102 keys, the command simply
fails, and no result is returned any longer.
I suspect something to do with a memory limitation or something similar.
I must mention that I use the PHP language binding (not the PHP extension)
with PHP5 and Redis 0.8 on an up-to-date Ubuntu Hardy server installed on a
server with 4 GB of Ram and 2 x Xeon 2.8 GHz.
Great software!
Original issue reported on code.google.com by [email protected]
on 3 Apr 2009 at 8:36
I'm your nightmare. :)
There's a discrepancy in the way you set a value for a key (set <length of
the string>) and push a value to a list (rpush <value>). The first way
allows you to set strings that contain \r\n, the second one does not. It
seems counterintuitive and prone to errors. Any ideas on this?
Original issue reported on code.google.com by [email protected]
on 27 Feb 2009 at 2:05
What steps will reproduce the problem?
jcarouth@jcarouth-laptop:~/workspace/Carouth_Redis/tests> telnet localhost 6379
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
SET foo 3
bar
+OK
GET foo
$3
bar
What is the expected output? What do you see instead?
Expected
--------------
3
bar
Actual
--------------
$3
bar
What version of the product are you using? On what operating system?
0.096
Linux jcarouth-laptop 2.6.27.21-0.1-pae #1 SMP 2009-03-31 14:50:44 +0200
i686 i686 i386 GNU/Linux
Additional Information
I am not sure if this is a bug or not, but the documentation and example
PHP client assumes the $ is not present.
Original issue reported on code.google.com by [email protected]
on 10 May 2009 at 3:24
What steps will reproduce the problem?
1. Run test.php included with PHP Redis class
What is the expected output? What do you see instead?
When running LLEN a0 the expected output is 3, instead it's blank (NULL).
What version of the product are you using? On what operating system?
Version 0.1 currently available in trunk.
Please provide any additional information below.
Here is the fix I came up with:
redis.php:
<snip>
function &_numeric_response($allow_negative=True) {
$s =& trim($this->_read());
$s = (0 === strpos($s, ':')) ? substr($s, 1) : $s;
$i = (int)$s;
</snip>
Original issue reported on code.google.com by [email protected]
on 22 May 2009 at 4:09
What steps will reproduce the problem?
1.
2.
3.
What is the expected output? What do you see instead?
What version of the product are you using? On what operating system?
Please provide any additional information below.
Original issue reported on code.google.com by [email protected]
on 6 Jul 2009 at 6:53
Centos 5.3 x86_64, Redis 0.096
Run redis-server for some time under some load and see
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
22602 memd 25 0 4192 916 388 R 85.4 0.0 29:54.39 redis-server
At this time redis did not accept new connections, but write in log-file
. DB 0: 139 keys (0 volatile) in 256 slots HT.
. 50 clients connected (0 slaves), 97086 bytes in use
(numbers did not changing)
I restarted redis-server and repeated this situation few times with strace
running. Results in attachment (1.3 Mb).
Original issue reported on code.google.com by [email protected]
on 22 May 2009 at 2:19
Attachments:
Hi, I think I brought this topic up before w/ multi deletes but I think Ive
found the feature we are looking for in KV cache ...
http://www.opensymphony.com/oscache/wiki/FAQ.html
Where it says:
Cache entries can be flushed explicitly in several ways:
"When adding an entry to the cache, it can optionally be placed into one or
more groups. An entire group of entries can then be flushed by specifying
the name of the group to flush. eg <cache:flush group="group1"
scope="application"/>"
The group primarily handles the expiration time, so the question is if it
would be possible to have + assign key values w/ a group like this?
Id imagine a protocol (idea) like:
ADDGROUP group
MODGROUP group SET interval 3600
DELGROUP group
SETGROUP key group value
FLUSHGROUP group
Original issue reported on code.google.com by [email protected]
on 4 Jul 2009 at 4:43
No docs yet, and only the minimal tests needed to make sure it works.
Original issue reported on code.google.com by [email protected]
on 27 Feb 2009 at 3:13
Attachments:
For 1.0, I wonder if you could implement--as an option--to double-fork(2)
etc. and write the new pid to a file specified in the config file.
This makes writing init scripts much less error-prone, as not only do we
not need to use a helper utility to fork(2) for us, we can actually detect
whether redis-server started successfully by testing for contents of the
pidfile.
I understand that redis is in beta, but it would certainly be nice to have
this for 1.0. I could prepare a patch for this; let me know if that would
be helpful.
Original issue reported on code.google.com by [email protected]
on 8 Mar 2009 at 2:52
I'm still finishing it but 90% of the documented API is covered and it should
be a trivial matter since
the protocol parser is complete.
You can find it here: http://bitbucket.org/adroll/erldis/
If you want to thank someone on the front page please say also that I work for
adroll (which
basically paid for my day today) :).
HTH - Valentino Volonghi
grazie :)
Original issue reported on code.google.com by [email protected]
on 28 Feb 2009 at 2:03
What steps will reproduce the problem?
jcarouth@jcarouth-laptop:~/redis-0.096> telnet localhost 6379
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
DBSIZE
:9
FLUSHALL
+OK
DBSIZE
:0
LPUSH mylist value1
DBSIZE
+OK
DBSIZE
-ERR unknown command
:1
DBSIZE
:1
LLEN mylist
:1
LPUSH mylist value2
LLEN mylist
+OK
LLEN mylist
-ERR unknown command
:2
LLEN mylist
:2
LPOP mylist
$0
LPOP mylist
$0
LPOP mylist
$-1
What version of the product are you using? On what operating system?
Redis v0.096
Linux jcarouth-laptop 2.6.27.21-0.1-pae #1 SMP 2009-03-31 14:50:44 +0200
i686 i686 i386 GNU/Linux
Original issue reported on code.google.com by [email protected]
on 12 May 2009 at 6:52
Hello.
Are you planning to add a flush command, to empty the database? Flushing
the cache from a client is something that memcached provides.
Listing all the keys and removing them is not atomic and can take a while
in the case of a large database.
Thanks.
Original issue reported on code.google.com by [email protected]
on 12 Mar 2009 at 4:17
another solaris build issue, doesn't appear to be related to the previous - i'm
getting hung up in anet.c on
what appears to be a header conflict.
% uname -a
SunOS madrone 5.11 snv_67 i86pc i386 i86pc
% gcc --version
gcc (GCC) 3.4.3 (csl-sol210-3_4-20050802)
Copyright (C) 2004 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
% export CC=gcc && make
rm -rf redis-server redis-benchmark redis-cli *.o
gcc -c adlist.c
gcc -c ae.c
gcc -c anet.c
In file included from /usr/include/sys/vnode.h:50,
from /usr/include/sys/stream.h:39,
from /usr/include/netinet/in.h:66,
from /usr/include/sys/socket.h:52,
from anet.c:34:
/usr/include/sys/resource.h:172: error: field `ru_utime' has incomplete type
/usr/include/sys/resource.h:173: error: field `ru_stime' has incomplete type
*** Error code 1
make: Fatal error: Command failed for target `anet.o'
% gmake
gcc -c -std=c99 -pedantic -O2 -Wall -W -DSDS_ABORT_ON_OOM -g anet.c
In file included from
/usr/sfw/lib/gcc/i386-pc-solaris2.11/3.4.3/include/sys/types.h:44,
from anet.c:33:
/usr/include/sys/feature_tests.h:353:2: #error "Compiler or options invalid for
pre-UNIX 03 X/Open
applications
and pre-2001 POSIX applications"
In file included from /usr/include/sys/vnode.h:50,
from /usr/include/sys/stream.h:39,
from /usr/include/netinet/in.h:66,
from /usr/include/sys/socket.h:52,
from anet.c:34:
/usr/include/sys/resource.h:172: error: field `ru_utime' has incomplete type
/usr/include/sys/resource.h:173: error: field `ru_stime' has incomplete type
gmake: *** [anet.o] Error 1
Original issue reported on code.google.com by [email protected]
on 9 Apr 2009 at 12:58
Hi. There's a little bug in command reference. INCR command documented
twise, although the second one should be DECR. :)
Original issue reported on code.google.com by [email protected]
on 16 Apr 2009 at 5:09
The copyright of the dict.c, dict.h, anet.c files is marked as belonging to
Salvatore Sanfilippo, but they don't actually specify a license. Further,
anet.h does not have any copyright information at all.
Although there is a GPL-2 "COPYING" file in the same directory, as a number
of files are licensed under other varying licenses (eg. sds.[hc] is under a
2-clause BSD), it would be preferable if these were explicitly labelled.
Just to be clear, I'm not stating a preference for any particular license,
just that the files contain their respective notices.
Best regards,
Chris
Original issue reported on code.google.com by [email protected]
on 8 Mar 2009 at 3:31
latest version of php client library for redis gives error msg, while older
version works perfectly fine
Original issue reported on code.google.com by [email protected]
on 22 May 2009 at 7:43
Ma randomkey restituisce una chiave o un valore? A me sembra restituire un
valore a caso, non una chiave.
Original issue reported on code.google.com by [email protected]
on 27 Feb 2009 at 1:48
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.