antirez/redis — pull request #1618 by mattsta (2014-03-18 19:53:20+00:00)
Title: Consider buffers in expiration size

This may be more of a philosophical difference than an objective argument, but should we assume `maxmemory` is primarily our dataset size or all Redis memory usage even for transient allocations (temporary buffers)?

If maxmemory is *all* memory usage, then read-only clients can forcibly evict keys by growing large pipeline output buffers (large output buffer = large total memory usage = over maxmemory limit = evict keys).

The patches in this PR:
- allow us to see the aggregate output buffer size in INFO output
- ignore output buffer size when determining if we are over memory limits (just like we do with Replica buffers and AOF buffers).