Permalink: 2014-07-11 11:37:13 by ning in redis tags: all

如何从proxy日志中, 理容response的字节数计算命中率:

1   GET

key 不存在时:

ning@ning-laptop ~/test$ redis-cli -p 4100 get kkk
(nil)
$-1..

key存在时:

ning@ning-laptop ~/test$ redis-cli -p 4100 set k v
OK
ning@ning-laptop ~/test$ redis-cli -p 4100 get k
"v"

$1..v..

判断:

if rsp_len > 5 :
    hit

2   HMGET:

key 不存在时, 或者请求的field都不存在:

ning@ning-laptop ~/test$ redis-cli -p 4100 hmget kkk 1 2
1) (nil)
2) (nil)

*2..$-1..$-1..

key 存在, 请求的field有存在:

ning@ning-laptop ~/test$ redis-cli -p 4100 hmset kk 1 xxx
OK
ning@ning-laptop ~/test$ redis-cli -p 4100 hmget kk 1 2
1) "xxx"
2) (nil)

*2..$3..xxx..$-1..

这样判断:

nfiled = narg - 2
if rsp_len > 3+len(str(nfeild))+(5*nfield):
    hit

3   HGETALL

key 存在:

ning@ning-laptop ~/test$ redis-cli -p 4100 hgetall kk
1) "1"
2) "xxx"
*2..$1..1..$3..xxx..

key不存在:

ning@ning-laptop ~/test$ redis-cli -p 4100 hgetall kkk
(empty list or set)

|*0..|

判断:

if rsp_len > 4:
    hit

4   MGET

用的比较少, 不能简单的从rsp_len来判断.

Comments