2017-09-26 1146 views
0

我有一個樹狀結構;下面,使用PHP填充。每次填充完整的結構都非常耗時,所以我想把它放在Redis中。現在,它被存儲爲純JSON,但隨後又加入新的項目後,我需要刪除現有的JSON和需要來填充和插入再次Redis的。 所以我想有一個結構,這樣我可以在任何層次,那就是無論是作爲一個父項或子項添加一個新的項目。 Redis中的哪個數據結構可以用於此操作,我該如何操作?存儲樹結構的Redis

[ 
    { 
     "id":2, 
     "order":2, 
     "children":[ 
      { 
      "id":3, 
      "order":1, 
      "children":[ 

      ], 
      "actions":[ 
       { 
        "id":1, 
        "slug":"manage", 
        "title":"manage", 
        "api":[ 

        ] 
       } 
      ] 
      }, 
      { 
      "id":4, 
      "order":2, 
      "children":[ 

      ], 
      "actions":[ 
       { 
        "id":2, 
        "slug":"settings", 
        "title":"settings", 
        "api":[ 

        ] 
       } 
      ] 
      } 
     ], 
     "actions":[ 
      { 
      "id":190, 
      "slug":"update", 
      "title":"update", 
      "api":[ 

      ] 
      } 
     ] 
    } 
] 

回答

2

的Redis的核心數據結構沒有嵌套,所以短期的回答是,你不能這樣做,很容易。

正如你正確地指出,存儲序列化JSON有強制值的完全讀/寫的缺點,哪怕只是一個子集感動。

的兩個備選方案,我可以推薦是:a)using Lua to manipulate the serialized JSON或b)使用ReJSON

免責聲明:我ReJSON的作者。