日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

Redis源码分析--lookupKey函数查看value值

發(fā)布時(shí)間:2023/11/27 生活经验 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Redis源码分析--lookupKey函数查看value值 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

lookupKey函數(shù)查看value值

robj *lookupKey(redisDb *db, robj *key) {dictEntry *de = dictFind(db->dict,key->ptr);if (de) {robj *val = dictGetVal(de);/* Update the access time for the ageing algorithm.* Don't do it if we have a saving child, as this will trigger* a copy on write madness. */if (server.rdb_child_pid == -1 && server.aof_child_pid == -1)val->lru = server.lruclock;return val;} else {return NULL;}
}

數(shù)據(jù)類型,ptr指針指向的就是具體value,需要強(qiáng)制轉(zhuǎn)換

typedef struct redisObject {unsigned type:4;unsigned notused:2;     /* Not used */unsigned encoding:4;unsigned lru:22;        /* lru time (relative to server.lruclock) */int refcount;void *ptr;
} robj;


(gdb) p?(char *)val->ptr
$20 = 0x7ffff7435728 "http://blog.csdn.net/unix21"
(gdb) p (char *)(*(robj *)(de->v->val))->ptr
$21 = 0x7ffff7435728 "http://blog.csdn.net/unix21"
(gdb) bt
#0? lookupKey (db=0x7ffff7515300, key=0x7ffff7486330) at db.c:51
#1? 0x000000000042bee7 in lookupKeyRead (db=0x7ffff7515300, key=0x7ffff7486330) at db.c:62
#2? 0x000000000042bf81 in lookupKeyReadOrReply (c=0x7ffff7531000, key=0x7ffff7486330, reply=0x7ffff7410e50) at db.c:76
#3? 0x0000000000433519 in getGenericCommand (c=0x7ffff7531000) at t_string.c:145
#4? 0x0000000000433588 in getCommand (c=0x7ffff7531000) at t_string.c:158
#5? 0x000000000041ba15 in call (c=0x7ffff7531000, flags=7) at redis.c:1599
#6? 0x000000000041c12c in processCommand (c=0x7ffff7531000) at redis.c:1774
#7? 0x000000000042874a in processInputBuffer (c=0x7ffff7531000) at networking.c:1013
#8? 0x00000000004289f5 in readQueryFromClient (el=0x7ffff7458150, fd=9, privdata=0x7ffff7531000, mask=1) at networking.c:1076
#9? 0x0000000000415f5d in aeProcessEvents (eventLoop=0x7ffff7458150, flags=3) at ae.c:382
#10 0x00000000004160f2 in aeMain (eventLoop=0x7ffff7458150) at ae.c:425
#11 0x000000000041e8a7 in main (argc=1, argv=0x7fffffffe578) at redis.c:2721


?

總結(jié)

以上是生活随笔為你收集整理的Redis源码分析--lookupKey函数查看value值的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。