本發(fā)明涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,尤其涉及一種用戶注冊方法和裝置。
背景技術(shù):
一個品牌的官網(wǎng)通常對應的會有服務平臺、開發(fā)者平臺、移動端平臺和PC端平臺等多個平臺,而這些平臺都對接著一個唯一的用戶登錄注冊系統(tǒng)。隨著這個品牌的不斷壯大,隨之而來的是用戶群體的不斷增大,如果用戶登錄注冊系統(tǒng)承受不了高并發(fā)而發(fā)生宕機現(xiàn)象,將會導致與用戶登錄注冊系統(tǒng)相對應的多個平臺都無法進行正常的登錄和注冊操作。
技術(shù)實現(xiàn)要素:
本發(fā)明的主要目的在于提出一種用戶注冊方法和裝置,旨在解決多個用戶同時注冊時,用戶登錄注冊系統(tǒng)出現(xiàn)宕機的現(xiàn)象。
為實現(xiàn)上述目的,本發(fā)明提供的一種用戶注冊裝置,包括:
獲取模塊,用于獲取每個用戶的特征信息;
存儲模塊,用于將所述特征信息存儲到待發(fā)送隊列中;
發(fā)送模塊,用于將所述待發(fā)送隊列中的所述特征信息順序發(fā)送到用戶登錄注冊系統(tǒng)數(shù)據(jù)庫中。
進一步的,所述特征信息包括:用戶注冊信息以及用戶ID信息;
所述用戶注冊信息包括用戶注冊時使用的用戶名、郵箱和密碼;
所述用戶ID信息是利用設定算法為每個用戶生成的唯一ID。
進一步的,所述存儲模塊,還用于:
將所述特征信息存儲到緩存數(shù)據(jù)庫中,以便注冊成功的用戶下次登錄時直接從所述緩存數(shù)據(jù)庫中獲取所述特征信息。
進一步的,所述發(fā)送模塊,具體用于:
實時監(jiān)聽所述待發(fā)送隊列,當所述待發(fā)送隊列中出現(xiàn)所述特征信息時,將所述特征信息順序發(fā)送到用戶登錄注冊系統(tǒng)數(shù)據(jù)庫中,并將所述特征信息從所述待發(fā)送隊列中刪除。
進一步的,所述裝置還包括:
用戶名存儲模塊,用于將每個所述特征信息中的用戶名存儲到用戶名數(shù)據(jù)庫中;
用戶名校驗模塊,用于當新用戶注冊時,校驗所述新用戶注冊時使用的用戶名是否已存在于所述用戶名數(shù)據(jù)庫中,若是,則所述新用戶的注冊失敗,若否,則所述存儲模塊將包括所述用戶名的特征信息分別存儲到緩存數(shù)據(jù)庫以及待發(fā)送隊列中。
此外,為實現(xiàn)上述目的,本發(fā)明還提出一種用戶注冊方法,包括:
獲取每個用戶的特征信息;
將所述特征信息存儲到待發(fā)送隊列中;
將所述待發(fā)送隊列中的所述特征信息順序發(fā)送到用戶登錄注冊系統(tǒng)數(shù)據(jù)庫中。
進一步的,所述特征信息包括:用戶注冊信息以及用戶ID信息;
所述用戶注冊信息包括用戶注冊時使用的用戶名、郵箱和密碼;
所述用戶ID信息是利用設定算法為每個用戶生成的唯一ID。
進一步的,所述方法還包括:
將所述特征信息存儲到緩存數(shù)據(jù)庫中,以便注冊成功的用戶下次登錄時直接從所述緩存數(shù)據(jù)庫中獲取所述特征信息。
進一步的,所述將所述待發(fā)送隊列中的所述特征信息順序發(fā)送到用戶登錄注冊系統(tǒng)數(shù)據(jù)庫中,包括:
實時監(jiān)聽所述待發(fā)送隊列,當所述待發(fā)送隊列中出現(xiàn)所述特征信息時,將所述特征信息順序發(fā)送到用戶登錄注冊系統(tǒng)數(shù)據(jù)庫中,并將所述特征信息從所述待發(fā)送隊列中刪除。
進一步的,所述方法還包括:
將每個所述特征信息中的用戶名存儲到用戶名數(shù)據(jù)庫中;
當新用戶注冊時,校驗所述新用戶注冊時使用的用戶名是否已存在于所述用戶名數(shù)據(jù)庫中,若是,則所述新用戶的注冊失敗,若否,則所述存儲模塊將包括所述用戶名的特征信息分別存儲到緩存數(shù)據(jù)庫以及待發(fā)送隊列中。
本發(fā)明提出的一種用戶注冊方法和裝置,對用戶登錄注冊系統(tǒng)的數(shù)據(jù)同步方式進行了改進,將傳統(tǒng)的并發(fā)插入數(shù)據(jù)庫的方式改進為順序插入數(shù)據(jù)庫的方式。本發(fā)明將特征信息先存放到待發(fā)送隊列中,再將待發(fā)送隊列中的特征信息順序插入到用戶登錄注冊系統(tǒng)數(shù)據(jù)庫中。
附圖說明
圖1為本發(fā)明第一實施例的用戶注冊裝置的組成結(jié)構(gòu)示意圖;
圖2為本發(fā)明第二實施例的用戶注冊裝置的組成結(jié)構(gòu)示意圖;
圖3為本發(fā)明第三實施例的用戶注冊方法的流程圖;
圖4為本發(fā)明第四實施例的用戶注冊方法的流程圖。
本發(fā)明目的的實現(xiàn)、功能特點及優(yōu)點將結(jié)合實施例,參照附圖做進一步說明。
具體實施方式
應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
現(xiàn)在將參考附圖描述實現(xiàn)本發(fā)明各個實施例的移動終端。在后續(xù)的描述中,使用用于表示元件的諸如“模塊”、“部件”或“單元”的后綴僅為了有利于本發(fā)明的說明,其本身并沒有特定的意義。因此,"模塊"與"部件"可以混合地使用。
如圖1所示,本發(fā)明第一實施例提出一種用戶注冊裝置,所述裝置具體包括以下組成部分:
1)獲取模塊101,用于獲取每個用戶的特征信息。
具體的,所述特征信息包括:用戶注冊信息以及用戶ID信息。
所述用戶注冊信息為新用戶注冊時提供的所有個人信息,例如:新用戶注冊時所設置的用戶名、密碼,新用戶注冊時所填寫的手機號、出生年月日、郵箱、工作單位、籍貫、性別、學歷、身份證號和興趣愛好等。
所述用戶ID信息是當用戶提交完用戶注冊信息后,利用設定算法為每個用戶生成的唯一ID。
進一步的,可利用twitter開源的分布式自增ID算法為所述用戶生成一個唯一的ID。所述利用twitter開源的分布式自增ID算法生成的ID采用64位的結(jié)構(gòu),第一位未被使用,接下來的41位為毫秒級時間,然后的10位是根據(jù)當前服務器序號值生成的,最后12位是毫秒內(nèi)的計數(shù)(12位的計數(shù)順序號支持每個節(jié)點每毫秒產(chǎn)生4096個ID序號)。所述ID整體上按照時間自增排序,并且在整個分布式系統(tǒng)內(nèi)不會產(chǎn)生ID碰撞,并且效率較高。一般情況下使用twitter開源的分布式自增ID算法每秒能夠產(chǎn)生26萬個ID。
2)存儲模塊102,用于將所述特征信息分別存儲到緩存數(shù)據(jù)庫以及待發(fā)送隊列中。
具體的,將所述特征信息緩存到緩存數(shù)據(jù)庫中,因此,當注冊成功后的用戶下次登錄時,無需從用戶登錄注冊系統(tǒng)數(shù)據(jù)庫中讀取所述用戶的特征信息,可以直接從所述緩存數(shù)據(jù)庫中獲取所述用戶的特征信息。
將待發(fā)送到用戶登錄注冊系統(tǒng)數(shù)據(jù)庫中去的特征信息按照順序暫時存放在所述待發(fā)送隊列中,當所述待發(fā)送隊列中的特征信息發(fā)送到用戶登錄注冊系統(tǒng)數(shù)據(jù)庫中時,所述特征信息從所述待發(fā)送隊列中刪除。
通過所述待發(fā)送隊列,可以將傳統(tǒng)的把特征信息并發(fā)插入用戶登錄注冊系統(tǒng)數(shù)據(jù)庫中的方式改為按照順序把特征信息一個一個的插入到用戶登錄注冊系統(tǒng)數(shù)據(jù)庫中的方式。此外,當發(fā)現(xiàn)讀取待發(fā)送隊列中的特征信息過于緩慢時,可以利用多臺服務器并發(fā)的讀取所述待發(fā)送隊列中的特征信息,以加快順序插入用戶登錄注冊系統(tǒng)數(shù)據(jù)庫的速度。
3)發(fā)送模塊103,用于將所述待發(fā)送隊列中的所述特征信息順序發(fā)送到用戶登錄注冊系統(tǒng)數(shù)據(jù)庫中。
具體的,發(fā)送模塊103,用于:
實時監(jiān)聽所述待發(fā)送隊列,當所述待發(fā)送隊列中出現(xiàn)所述特征信息時,將所述特征信息順序發(fā)送到用戶登錄注冊系統(tǒng)數(shù)據(jù)庫中,并將所述特征信息從所述待發(fā)送隊列中刪除。
如圖2所示,本發(fā)明第二實施例提出一種用戶注冊裝置,所述裝置具體包括以下組成部分:
1)獲取模塊201,用于獲取每個用戶的特征信息。
具體的,所述特征信息包括:用戶注冊信息以及用戶ID信息。
所述用戶注冊信息為新用戶注冊時提供的所有個人信息,例如:新用戶注冊時所設置的用戶名、密碼,新用戶注冊時所填寫的手機號、出生年月日、郵箱、工作單位、籍貫、性別、學歷、身份證號和興趣愛好等。
所述用戶ID信息是當用戶提交完用戶注冊信息后,利用設定算法為每個用戶生成的唯一ID。
進一步的,可利用twitter開源的分布式自增ID算法為所述用戶生成一個唯一的ID。所述利用twitter開源的分布式自增ID算法生成的ID采用64位的結(jié)構(gòu),第一位未被使用,接下來的41位為毫秒級時間,然后的10位是根據(jù)當前服務器序號值生成的,最后12位是毫秒內(nèi)的計數(shù)(12位的計數(shù)順序號支持每個節(jié)點每毫秒產(chǎn)生4096個ID序號)。所述ID整體上按照時間自增排序,并且在整個分布式系統(tǒng)內(nèi)不會產(chǎn)生ID碰撞,并且效率較高。一般情況下使用twitter開源的分布式自增ID算法每秒能夠產(chǎn)生26萬個ID。
2)用戶名存儲模塊202,用于將每個所述特征信息中的用戶名存儲到用戶名數(shù)據(jù)庫中。
3)用戶名校驗模塊203,用于當新用戶注冊時,校驗所述新用戶注冊時使用的用戶名是否已存在于所述用戶名數(shù)據(jù)庫中,若是,則所述新用戶的注冊失敗,若否,則觸發(fā)存儲模塊204。
傳統(tǒng)的用戶名校驗方式是從用戶登錄注冊系統(tǒng)數(shù)據(jù)庫中獲取已存在的用戶名,因此,會造成大量的讀取用戶登錄注冊系統(tǒng)數(shù)據(jù)庫的操作。而用戶名校驗模塊203可以快速的校驗新用戶注冊時使用的用戶名是否已存在,無需對用戶登錄注冊系統(tǒng)數(shù)據(jù)庫進行讀取操作。
4)存儲模塊204,用于將所述特征信息分別存儲到緩存數(shù)據(jù)庫以及待發(fā)送隊列中。
具體的,所述存儲模塊204,用于:
按照預設要求,將所述特征信息中的部分信息存儲到緩存數(shù)據(jù)庫中;例如,只將用戶登錄時所需要的用戶名、密碼、郵箱和ID緩存到緩存數(shù)據(jù)庫中。因此,當注冊成功后的用戶下次登錄時,無需從用戶登錄注冊系統(tǒng)數(shù)據(jù)庫中讀取所述用戶登錄時所需的特征信息,可以直接從所述緩存數(shù)據(jù)庫中獲取所述用戶登錄時所需的特征信息。
將待發(fā)送到用戶登錄注冊系統(tǒng)數(shù)據(jù)庫中去的特征信息按照順序暫時存放在所述待發(fā)送隊列中;所述待發(fā)送到用戶登錄注冊系統(tǒng)數(shù)據(jù)庫中去的特征信息為特征信息中的全部信息。
通過所述待發(fā)送隊列,可以將傳統(tǒng)的將特征信息并發(fā)插入用戶登錄注冊系統(tǒng)數(shù)據(jù)庫中的方式改為按照順序?qū)⑻卣餍畔⒁粋€一個的插入到用戶登錄注冊系統(tǒng)數(shù)據(jù)庫中的方式。此外,當發(fā)現(xiàn)讀取待發(fā)送隊列中的特征信息過于緩慢時,可以利用多臺服務器并發(fā)的讀取所述待發(fā)送隊列中的特征信息,以加快順序插入用戶登錄注冊系統(tǒng)數(shù)據(jù)庫的速度。
進一步的,所述存儲模塊可通過搭建redis集群實現(xiàn),所述redis集群包括:redis隊列和redis數(shù)據(jù)庫。所述redis隊列相當于所述存儲模塊中的待發(fā)送隊列,用于存儲所述特征信息中的全部信息。所述redis數(shù)據(jù)庫相當于所述存儲模塊中的緩存數(shù)據(jù)庫,用于存儲所述特征信息中的部分信息。
5)發(fā)送模塊205,用于將所述待發(fā)送隊列中的所述特征信息順序發(fā)送到用戶登錄注冊系統(tǒng)數(shù)據(jù)庫中。
具體的,發(fā)送模塊205,用于:
實時監(jiān)聽所述待發(fā)送隊列,當所述待發(fā)送隊列中出現(xiàn)所述特征信息時,將所述特征信息順序發(fā)送到用戶登錄注冊系統(tǒng)數(shù)據(jù)庫中,并將所述特征信息從所述待發(fā)送隊列中刪除。
如圖3所示,本發(fā)明第三實施例提出一種用戶注冊方法,所述方法具體包括以下步驟:
步驟S301:獲取每個用戶的特征信息。
具體的,所述特征信息包括:用戶注冊信息以及用戶ID信息。
所述用戶注冊信息為新用戶注冊時提供的所有個人信息,例如:新用戶注冊時所設置的用戶名、密碼,新用戶注冊時所填寫的手機號、出生年月日、郵箱、工作單位、籍貫、性別、學歷、身份證號和興趣愛好等。
所述用戶ID信息是當用戶提交完用戶注冊信息后,利用設定算法為每個用戶生成的唯一ID。
進一步的,可利用twitter開源的分布式自增ID算法為所述用戶生成一個唯一的ID。所述利用twitter開源的分布式自增ID算法生成的ID采用64位的結(jié)構(gòu),第一位未被使用,接下來的41位為毫秒級時間,然后的10位是根據(jù)當前服務器序號值生成的,最后12位是毫秒內(nèi)的計數(shù)(12位的計數(shù)順序號支持每個節(jié)點每毫秒產(chǎn)生4096個ID序號)。所述ID整體上按照時間自增排序,并且在整個分布式系統(tǒng)內(nèi)不會產(chǎn)生ID碰撞,并且效率較高。一般情況下使用twitter開源的分布式自增ID算法每秒能夠產(chǎn)生26萬個ID。
步驟S302:將所述特征信息分別存儲到緩存數(shù)據(jù)庫以及待發(fā)送隊列中。
具體的,將所述特征信息緩存到緩存數(shù)據(jù)庫中,因此,當注冊成功后的用戶下次登錄時,無需從用戶登錄注冊系統(tǒng)數(shù)據(jù)庫中讀取所述用戶的特征信息,可以直接從所述緩存數(shù)據(jù)庫中獲取所述用戶的特征信息。
將待發(fā)送到用戶登錄注冊系統(tǒng)數(shù)據(jù)庫中去的特征信息按照順序暫時存放在所述待發(fā)送隊列中,當所述待發(fā)送隊列中的特征信息發(fā)送到用戶登錄注冊系統(tǒng)數(shù)據(jù)庫中時,所述特征信息從所述待發(fā)送隊列中刪除。
通過所述待發(fā)送隊列,可以將傳統(tǒng)的把特征信息并發(fā)插入用戶登錄注冊系統(tǒng)數(shù)據(jù)庫中的方式改為按照順序把特征信息一個一個的插入到用戶登錄注冊系統(tǒng)數(shù)據(jù)庫中的方式。此外,當發(fā)現(xiàn)讀取待發(fā)送隊列中的特征信息過于緩慢時,可以利用多臺服務器并發(fā)的讀取所述待發(fā)送隊列中的特征信息,以加快順序插入用戶登錄注冊系統(tǒng)數(shù)據(jù)庫的速度。
步驟S303:將所述待發(fā)送隊列中的所述特征信息順序發(fā)送到用戶登錄注冊系統(tǒng)數(shù)據(jù)庫中。
具體的,所述步驟S303,包括:
實時監(jiān)聽所述待發(fā)送隊列,當所述待發(fā)送隊列中出現(xiàn)所述特征信息時,將所述特征信息順序發(fā)送到用戶登錄注冊系統(tǒng)數(shù)據(jù)庫中,并將所述特征信息從所述待發(fā)送隊列中刪除。
如圖4所示,本發(fā)明第四實施例提出一種用戶注冊方法,所述方法具體包括以下步驟:
步驟S401:用于獲取每個用戶的特征信息。
具體的,所述特征信息包括:用戶注冊信息以及用戶ID信息。
所述用戶注冊信息為新用戶注冊時提供的所有個人信息,例如:新用戶注冊時所設置的用戶名、密碼,新用戶注冊時所填寫的手機號、出生年月日、郵箱、工作單位、籍貫、性別、學歷、身份證號和興趣愛好等。
所述用戶ID信息是當用戶提交完用戶注冊信息后,利用設定算法為每個用戶生成的唯一ID。
進一步的,可利用twitter開源的分布式自增ID算法為所述用戶生成一個唯一的ID。所述利用twitter開源的分布式自增ID算法生成的ID采用64位的結(jié)構(gòu),第一位未被使用,接下來的41位為毫秒級時間,然后的10位是根據(jù)當前服務器序號值生成的,最后12位是毫秒內(nèi)的計數(shù)(12位的計數(shù)順序號支持每個節(jié)點每毫秒產(chǎn)生4096個ID序號)。所述ID整體上按照時間自增排序,并且在整個分布式系統(tǒng)內(nèi)不會產(chǎn)生ID碰撞,并且效率較高。一般情況下使用twitter開源的分布式自增ID算法每秒能夠產(chǎn)生26萬個ID。
步驟S402:將每個所述特征信息中的用戶名存儲到用戶名數(shù)據(jù)庫中。
步驟S403:當新用戶注冊時,校驗所述新用戶注冊時使用的用戶名是否已存在于所述用戶名數(shù)據(jù)庫中,若是,則所述新用戶的注冊失敗,若否,則執(zhí)行步驟S404。
傳統(tǒng)的用戶名校驗方式是從用戶登錄注冊系統(tǒng)數(shù)據(jù)庫中獲取已存在的用戶名,因此,會造成大量的讀取用戶登錄注冊系統(tǒng)數(shù)據(jù)庫的操作。而本實施例中介紹的方法可以快速的校驗新用戶注冊時使用的用戶名是否已存在,無需對用戶登錄注冊系統(tǒng)數(shù)據(jù)庫進行讀取操作。
步驟S404:將所述特征信息分別存儲到緩存數(shù)據(jù)庫以及待發(fā)送隊列中。
具體的,所述步驟S404,包括:
按照預設要求,將所述特征信息中的部分信息存儲到緩存數(shù)據(jù)庫中;例如,只將用戶登錄時所需要的用戶名、密碼、郵箱和ID緩存到緩存數(shù)據(jù)庫中。因此,當注冊成功后的用戶下次登錄時,無需從用戶登錄注冊系統(tǒng)數(shù)據(jù)庫中讀取所述用戶登錄時所需的特征信息,可以直接從所述緩存數(shù)據(jù)庫中獲取所述用戶登錄時所需的特征信息。
將待發(fā)送到用戶登錄注冊系統(tǒng)數(shù)據(jù)庫中去的特征信息按照順序暫時存放在所述待發(fā)送隊列中;所述待發(fā)送到用戶登錄注冊系統(tǒng)數(shù)據(jù)庫中去的特征信息為特征信息中的全部信息。
通過所述待發(fā)送隊列,可以將傳統(tǒng)的將特征信息并發(fā)插入用戶登錄注冊系統(tǒng)數(shù)據(jù)庫中的方式改為按照順序?qū)⑻卣餍畔⒁粋€一個的插入到用戶登錄注冊系統(tǒng)數(shù)據(jù)庫中的方式。此外,當發(fā)現(xiàn)讀取待發(fā)送隊列中的特征信息過于緩慢時,可以利用多臺服務器并發(fā)的讀取所述待發(fā)送隊列中的特征信息,以加快順序插入用戶登錄注冊系統(tǒng)數(shù)據(jù)庫的速度。
進一步的,所述步驟S404可通過搭建redis集群實現(xiàn),所述redis集群包括:redis隊列和redis數(shù)據(jù)庫。所述redis隊列相當于所述存儲模塊中的待發(fā)送隊列,用于存儲所述特征信息中的全部信息。所述redis數(shù)據(jù)庫相當于所述存儲模塊中的緩存數(shù)據(jù)庫,用于存儲所述特征信息中的部分信息。
步驟S405:將所述待發(fā)送隊列中的所述特征信息順序發(fā)送到用戶登錄注冊系統(tǒng)數(shù)據(jù)庫中。
具體的,所述步驟S405,包括:
實時監(jiān)聽所述待發(fā)送隊列,當所述待發(fā)送隊列中出現(xiàn)所述特征信息時,將所述特征信息順序發(fā)送到用戶登錄注冊系統(tǒng)數(shù)據(jù)庫中,并將所述特征信息從所述待發(fā)送隊列中刪除。
需要說明的是,在本文中,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者裝置不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者裝置所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括該要素的過程、方法、物品或者裝置中還存在另外的相同要素。
上述本發(fā)明實施例序號僅僅為了描述,不代表實施例的優(yōu)劣。
通過以上的實施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到上述實施例方法可借助軟件加必需的通用硬件平臺的方式來實現(xiàn),當然也可以通過硬件,但很多情況下前者是更佳的實施方式?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)(如ROM/RAM、磁碟、光盤)中,包括若干指令用以使得一臺終端設備(可以是手機,計算機,服務器,空調(diào)器,或者網(wǎng)絡設備等)執(zhí)行本發(fā)明各個實施例所述的方法。
以上僅為本發(fā)明的優(yōu)選實施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運用在其他相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護范圍內(nèi)。