日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
結(jié)構(gòu)使用Redis靈活構(gòu)建無限級團(tuán)隊(duì)結(jié)構(gòu)(redis設(shè)計(jì)無限級團(tuán)隊(duì))

無限級團(tuán)隊(duì)結(jié)構(gòu)對于企業(yè)來說無論在行政架構(gòu)設(shè)計(jì)、部門管控等,都有著重要的作用。Redis結(jié)合NoSQL的特性,可以靈活的構(gòu)建出無限級團(tuán)隊(duì)結(jié)構(gòu),下面就以Redis做示范。

成都網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁設(shè)計(jì)、重慶網(wǎng)站建設(shè)公司、微信開發(fā)、小程序開發(fā)、集團(tuán)成都企業(yè)網(wǎng)站定制等服務(wù)項(xiàng)目。核心團(tuán)隊(duì)均擁有互聯(lián)網(wǎng)行業(yè)多年經(jīng)驗(yàn),服務(wù)眾多知名企業(yè)客戶;涵蓋的客戶類型包括:成都三輪攪拌車等眾多領(lǐng)域,積累了大量豐富的經(jīng)驗(yàn),同時也獲得了客戶的一致表揚(yáng)!

#### 1. 搭建Redis數(shù)據(jù)結(jié)構(gòu)

要想建立無限級團(tuán)隊(duì)結(jié)構(gòu),那么Redis里面儲存的應(yīng)該是一個樹形結(jié)構(gòu),所以首先我們需要做的是搭建這樣的數(shù)據(jù)結(jié)構(gòu)。這里就使用Redis的HASH來儲存信息,我定義一個名為TeamStruct的HASH,里面的Key-Value的形式為:

`mapping = {

‘1’:{‘name’: ‘Jack’, ‘PARENT’: 0},

‘2’:{‘name’: ‘Tom’, ‘parent’: 1},

‘3’:{‘name’: ‘Kitty’, ‘parent’: 1},

‘4’:{‘name’: ‘Tony’, ‘parent’: 2}

}`

#### 2. 通過HGETALL獲取結(jié)構(gòu)

既然團(tuán)隊(duì)架構(gòu)的本質(zhì)就是一個樹狀結(jié)構(gòu),所以這種數(shù)據(jù)的索引也就簡單了,可以使用HGETALL操作來從Redis服務(wù)器獲取指定的結(jié)構(gòu)信息:

import redis
r = redis.Redis(host='localhost', port=6379, decode_responses=True)
# 獲取整個TeamStruct結(jié)構(gòu)
result = r.hgetall('TeamStruct')
print(result)
{
'1':'{"name": "Jack", "parent": 0}',
'2':'{"name": "Tom", "parent": 1}',
'3':'{"name": "Kitty", "parent": 1}',
'4':'{"name": "Tony", "parent": 2}'
}

#### 3. 通過循環(huán)、字典索引構(gòu)建樹形結(jié)構(gòu)

既然用Redis可以可以獲取一個完整的架構(gòu)信息,那么就可以根據(jù)這個信息構(gòu)建出一顆樹狀結(jié)構(gòu)。通過這種方式可以給用戶提供較加靈活的功能,例如新增、調(diào)整、刪除指定的結(jié)構(gòu)信息等。

下面就是實(shí)現(xiàn)的索引步驟:

# 定義一個完整團(tuán)隊(duì)結(jié)構(gòu)的字典
team_tree = {}
# 將獲取的結(jié)構(gòu)信息存入一個臨時的字典
temp = {k: eval(v) for k,v in result.items()}

# 遍歷temp字典,構(gòu)建完整結(jié)構(gòu)字典
for k, v in temp.items():
# 判斷是否有父級團(tuán)隊(duì)
if v['parent'] > 0:
team_tree[k] = temp[k]

# 判斷父級團(tuán)隊(duì)結(jié)構(gòu)是否存在,如果存在就把該節(jié)點(diǎn)歸入父級團(tuán)隊(duì)
if v['parent'] in team_tree.keys():
if 'children' not in team_tree[v['parent']]:
team_tree[v['parent']]['children'] = [k]
else:
team_tree[v['parent']]['children'].append(k)
else:
parent_node = {k: team_tree[v['parent']]}
if 'children' not in parent_node[v['parent']]:
parent_node[v['parent']]['children'] = [k]
else:
parent_node[v['parent']]['children'].append(k)
team_tree[v['parent']] = parent_node
else:
# 只有頂級節(jié)點(diǎn)沒有父級
team_tree[k] = temp[k]

就得到了一個包含無窮級團(tuán)隊(duì)結(jié)構(gòu)的完整樹形:

`{

‘1’: {

‘name’: ‘Jack’,

‘parent’: 0,

‘children’: [

‘2’,

‘3’

]

},

‘2’: {

‘name’: ‘Tom’,

‘parent’: 1,

‘children’: [

‘4’

]

},

‘3’: {

‘name’: ‘Kitty’,

‘parent’: 1,

‘children’: []

},

‘4’: {

‘name’: ‘Tony’,

‘parent’: 2,

‘children’: []

}

}`

將字典重新放回Redis中,這樣就完成了一個從零到完整無限級團(tuán)隊(duì)結(jié)構(gòu)的構(gòu)建。 Redis整合NoSQL的特性讓無限級團(tuán)隊(duì)結(jié)構(gòu)中的行政架構(gòu)設(shè)計(jì)、部門管控得到了很大的靈活性,能夠在限定的時間和空間內(nèi)構(gòu)建出最適合當(dāng)時項(xiàng)目的結(jié)構(gòu)形式,也為業(yè)務(wù)系統(tǒng)的拓展留出了更大的空間。

香港服務(wù)器選創(chuàng)新互聯(lián),香港虛擬主機(jī)被稱為香港虛擬空間/香港網(wǎng)站空間,或者簡稱香港主機(jī)/香港空間。香港虛擬主機(jī)特點(diǎn)是免備案空間開通就用, 創(chuàng)新互聯(lián)香港主機(jī)精選cn2+bgp線路訪問快、穩(wěn)定!


當(dāng)前題目:結(jié)構(gòu)使用Redis靈活構(gòu)建無限級團(tuán)隊(duì)結(jié)構(gòu)(redis設(shè)計(jì)無限級團(tuán)隊(duì))
標(biāo)題鏈接:http://m.5511xx.com/article/cdghcph.html