封裝Redis C++ Client心得

最近我們server在重構(gòu)幅疼,其中發(fā)現(xiàn)了不少坑涛癌。
首先我們的好多數(shù)據(jù)都會(huì)緩存在redis中。官方并沒有C++ Client沉帮,所以為了方便維護(hù)代碼屡萤,在C的API上封裝一個(gè)C++ Client珍剑。
畢業(yè)后主要是寫C++,C++可謂真是一個(gè)語言聯(lián)盟死陆,有很多編碼風(fēng)格招拙,一些講究純粹的C++編程,而另外一些團(tuán)隊(duì)可能比較偏向于C/C++的代碼措译。我這邊團(tuán)隊(duì)就屬于第一個(gè)風(fēng)格類型的别凤。所以畢業(yè)之后,可以說的是领虹,我并沒有太多的C的開發(fā)經(jīng)驗(yàn)闻妓,團(tuán)隊(duì)里面其它的同學(xué)也是這個(gè)問題。
所以碰到的第一坑是掠械,我們有一些數(shù)據(jù)是直接將Protobuf的二進(jìn)制直接存入Redis由缆,最初沒發(fā)現(xiàn)什么,只是單純的通過strlen來計(jì)算最終要傳入的c 字符串長度猾蒂,由于strlen計(jì)算長度的原理只是碰到第一個(gè)'\0'就結(jié)束均唉,而我們的protobuf的二進(jìn)制數(shù)據(jù)中并不應(yīng)該因此作為結(jié)尾符。所以因?qū)⑸蠈拥膕td::string的length保存了肚菠,在這里傳入std::string的length值舔箭。
本以為相關(guān)的坑到此為止。直到我們需要使用pipeline蚊逢。天吶层扶!發(fā)現(xiàn)redis c api只讓你傳一個(gè)char*進(jìn)去并不能傳沒有長度啊@雍伞>祷帷!由于下游都在使用终抽,要推動(dòng)不直接使用二進(jìn)制很困難戳表,所以就被Block了桶至。。
無意中想到匾旭,其實(shí)很簡答镣屹,設(shè)置API的時(shí)候多增加一套API,在傳值的時(shí)候?qū)⒍M(jìn)制Base64一下价涝,取的時(shí)候再Decode一下就OK了女蜈。如果對性能不敏感,可以所有API都這么干色瘩,如果敏感的話伪窖,就設(shè)置一個(gè)標(biāo)志位,當(dāng)標(biāo)志位被置為True的情況下才做如此操作泞遗。畢竟在我們的Case中惰许,我們是知道哪些場景中數(shù)據(jù)是二進(jìn)制。寫代碼的時(shí)候就能作為區(qū)分史辙。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末汹买,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子聊倔,更是在濱河造成了極大的恐慌晦毙,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,997評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件耙蔑,死亡現(xiàn)場離奇詭異见妒,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)甸陌,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,603評論 3 392
  • 文/潘曉璐 我一進(jìn)店門须揣,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人钱豁,你說我怎么就攤上這事耻卡。” “怎么了牲尺?”我有些...
    開封第一講書人閱讀 163,359評論 0 353
  • 文/不壞的土叔 我叫張陵卵酪,是天一觀的道長。 經(jīng)常有香客問我谤碳,道長溃卡,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,309評論 1 292
  • 正文 為了忘掉前任蜒简,我火速辦了婚禮瘸羡,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘臭蚁。我一直安慰自己最铁,他們只是感情好讯赏,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,346評論 6 390
  • 文/花漫 我一把揭開白布垮兑。 她就那樣靜靜地躺著冷尉,像睡著了一般。 火紅的嫁衣襯著肌膚如雪系枪。 梳的紋絲不亂的頭發(fā)上雀哨,一...
    開封第一講書人閱讀 51,258評論 1 300
  • 那天,我揣著相機(jī)與錄音私爷,去河邊找鬼雾棺。 笑死,一個(gè)胖子當(dāng)著我的面吹牛衬浑,可吹牛的內(nèi)容都是我干的捌浩。 我是一名探鬼主播,決...
    沈念sama閱讀 40,122評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼工秩,長吁一口氣:“原來是場噩夢啊……” “哼尸饺!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起助币,我...
    開封第一講書人閱讀 38,970評論 0 275
  • 序言:老撾萬榮一對情侶失蹤浪听,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后眉菱,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體迹栓,經(jīng)...
    沈念sama閱讀 45,403評論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,596評論 3 334
  • 正文 我和宋清朗相戀三年俭缓,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了克伊。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,769評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡华坦,死狀恐怖愿吹,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情季春,我是刑警寧澤洗搂,帶...
    沈念sama閱讀 35,464評論 5 344
  • 正文 年R本政府宣布,位于F島的核電站载弄,受9級特大地震影響耘拇,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜宇攻,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,075評論 3 327
  • 文/蒙蒙 一惫叛、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧逞刷,春花似錦嘉涌、人聲如沸妻熊。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,705評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽扔役。三九已至,卻和暖如春警医,著一層夾襖步出監(jiān)牢的瞬間亿胸,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,848評論 1 269
  • 我被黑心中介騙來泰國打工预皇, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留侈玄,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,831評論 2 370
  • 正文 我出身青樓吟温,卻偏偏與公主長得像序仙,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子鲁豪,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,678評論 2 354

推薦閱讀更多精彩內(nèi)容