On crash print information about the current client (if any), command vector, and object associated to first argument assuming it is a key.
Possible fix for false positives in issue 141 regression test
Don't expire keys when loading an RDB after a SYNC

The cron is responsible for expiring keys. When keys are expired at
load time, it is possible that the snapshot of a master node gets
modified. This can in turn lead to inconsistencies in the data set.

A more concrete example of this behavior follows. A user reported a
slave that would show an monotonically increase input buffer length,
shortly after completing a SYNC. Also, `INFO` output showed a single
blocked client, which could only be the master link. Investigation
showed that indeed the `BRPOP` command was fed by the master. This
command can only end up in the stream of write operations when it did
NOT block, and effectively executed `RPOP`. However, when the key
involved in the `BRPOP` is expired BEFORE the command is executed, the
client executing it will block. The client in this case, is the master
link.
Merge pull request #296 from pietern/2.4-expirefix

Don't expire keys when loading an RDB after a SYNC
Only incremnet stats for key miss/hit when the key is semantically accessed in read-only.
Added a server.arch_bits field instead of computing it at runtime for INFO.
Set a 3.5 GB maxmemory limit with noeviction policy if a 32 bit instance without user-provided memory limits is detected.
sds.c no longe pre-allocate more than 1MB of free space ahead. This fixes issue #252.
Redis 2.4.7
add -f flag to cp when installing, otherwise stopping the server is
needed when installing a new Redis version. Thanks to Scott Kevill.
Fixes issue #335.
redis-check-aof is now large files safe also on 32 bit systems.
Initial version of c->reply_bytes implementation backported from unstable to 2.4, in order to apply issue 327 patches.
This fixes issue #327, is a very complex fix (unfortunately), details:

1) sendReplyToClient() now no longer stops transferring data to a single
client in the case we are out of memory (maxmemory-wise).

2) in processCommand() the idea of we being out of memory is no longer
the naive zmalloc_used_memory() > server.maxmemory. To say if we can
accept or not write queries is up to the return value of
freeMemoryIfNeeded(), that has full control about that.

3) freeMemoryIfNeeded() now does its math without considering output
buffers size. But at the same time it can't let the output buffers to
put us too much outside the max memory limit, so at the same time it
makes sure there is enough effort into delivering the output buffers to
the slaves, calling the write handler directly.

This three changes are the result of many tests, I found (partially
empirically) that is the best way to address the problem, but maybe
we'll find better solutions in the future.
Also remove size of AOF buffers from used memory when doing the math for freeMemoryIfNeeded()
freeMemoryIfNeeded() minor refactoring
Precision of getClientOutputBufferMemoryUsage() greatily improved, see issue #327 for more information.
Fixes to c->reply_bytes computation, and debug messages to closely study the behavior of memory pressure + slaves + maxmemory + blocked slaves.
debugging messages removed from freeMemoryIfNeeded()
redis.conf updated with new maxmemory semantics
more practical maxmemory+slaves hint in redis.conf