1. 程式人生 > >MongoDB 遷移到Redis記錄日誌 1

MongoDB 遷移到Redis記錄日誌 1

眾所周知MongoDB使用BSON構建資料,然後使用者呼叫MongoDB的介面,以BSON為引數,將儲存到本地

Redis則是鍵值對的方式,支援的資料型別有五種:

1、string(字串);

2、hash(雜湊);

3、list(列表);

4、set(集合);

5、zset(sorted set:有序集合)。

背景:

原先為了將資料寫入BSON,編寫了一個數據類,裡面有write_int、write_float、write_string、write_int_array等函式介面,使用者呼叫這些介面,將資料寫入到這個類中(比如一個使用者的手機號碼、身份證號、當前等級、經驗值等),採用使用者資訊來舉例,新建一個類,可以儲存一個使用者的所有資訊。

編寫了一個數據操作類,這個類的作用是

1、將資料類轉換成BSON,或將BSON轉換成資料類;

2、將BSON資料本地化儲存。

經過一些調研,想出兩種方案

一、重新編寫出一套資料操作方法

即重新編寫出一套write_int、write_float、write_string、write_int_array等函式介面,具體做法是定義一個基類,在基類中定義純虛擬函式write_int、write_float、write_string、write_int_array等,然後實現一個Redis類繼承這個基類,並在Redis類中實現具體的函式介面,以後專案需要儲存資料,就採用多型的方式呼叫這一套介面。

二、採用BSON格式儲存資訊到Redis

這個方案實現起來比較簡單,而且對原專案改動較小。方法是將原先的資料庫操作類中的資料庫操作,改為Redis,但是這裡涉及到了MongoDB指令轉換成Redis指令的問題,比如MongoDB如果有一個語句"db.userInfo.find({"age": 22});",那麼Redis該怎麼把這個指令轉換成自身指令實現該有的功能?