2017-08-11 59 views
-1

我目前正在使用Redis的應用程序。該應用程序列出了這樣一組數據:在Redis中分離數據

First name: Peter 
Last name: Gabriel 
Occupation: Singer 

我們使用Redis的存儲有關領域的一些信息(可見/隱藏,排序順序,顯示名稱等)。

的數據被存儲作爲在散列Redis的是這樣的:

firstname 
    display 
     true 
    order 
     1 
    editable 
     false 

lastname 
    display 
     true 
    order 
     2 
    editable 
     false 

occupation 
    display 
     true 
    order 
     3 
    editable 
     true 

所有這些數據都被存儲在數據庫中「0」。

現在,我們希望我們的用戶能夠提交有關值的更改請求。我們要使用Redis的存儲變更請求的列表,以及:

bradpitt 
    maritalstatus 
     [{ old: 'married', new: 'divorced' }] 

看到,因爲這意味着用於兩種不同情況的數據,有一些方法在邏輯上的Redis單獨的數據。在MongoDB中,你有集合,在SQL中你有表。是否有Redis等價物,還是應該放在同一個地方?我應該使用數據庫'1'嗎?

感謝

回答

1

在Redis的世界裏,有很多數據結構,但它們都存儲在由鍵值。 redis中沒有像表或集合那樣的東西。

您應該仔細命名所有的鍵,並將所有鍵字符串保存在一個文件中(例如common /常量)。例如,如果你想在Redis的哈希存儲用戶信息,你可以這樣做:

USER_INFO_HASH_KEY = "user_info_%s" 

在你的應用程序代碼的其他地方,你可以導入從普通/常量這個鍵,並使用USER_ID填寫佔位符,並獲得真正的關鍵。像這樣:

key = USER_INFO_HASH_KEY % user_id 
redis_conn.hset(key, field, value) 

通過這種方法,您可以管理的Redis的所有鍵在由常量文件您的應用程序,而不用擔心密鑰名稱衝突。

此外,你應該選擇不同的數據庫來存儲你的不同的數據,因爲可能有很多情況下在你的應用程序開發和操作,也許你想刷新一些數據,如果你存儲非常導入數據在一個數據庫和便宜的數據在其他數據庫中,您可以輕鬆完成這件事。但這取決於你。

+0

非常感謝:) –