Go遊戲伺服器開發的一些思考(七) Redis

2021-08-03 12:37:39 字數 609 閱讀 8337

在使用redis時,有些細節必須了解,這樣才能更好的指導程式設計師使用redis做開發

redis業務邏輯是在乙個執行緒中進行的。了解這點非常重要。

在使用redis命令時,對於時間複雜度為o(n)的命令,心中需要有個警鐘,這裡n的規模會是多大。若應用場景中n的規模會很大,則把這個命令寫進**,對於redis來說是個災難。

客戶端向redis集群中的某台redis請求資料時,若該台redis上沒有這條資料,該redis會把這資料所在的redis位址返回給客戶端。客戶端需根據返回的位址,重新向該位址的redis請求資料。

因此對redis集群的查詢可能會出現2次查詢。不過也有些客戶端封裝的比較好,內部維護乙個redis插槽對應表,屬於smart客戶端。這種客戶端絕大多數都是1次查詢

由於資料是分散在多台redis上的,像keys、mget、mset、事務等命令,redis集群支援是不完整的。使用這種命令要小心,除非你明確所有的資料都在同一臺redis上

redis的記憶體越大,redis在做持久化時需要消耗的資源會越多、時間會越長。乙個合理的redis記憶體應該在3-6g即可

redis集群內部做狀態同步,在台數足夠多時,會佔不少頻寬。一般redis台數在1000左右

遊戲伺服器架構設計中的一些思考

1 遊戲世界由很多個遊戲物件組成 遊戲角色 物品 npc 技能等 2 乙個遊戲物件的有效資料主要存放在客戶端 遊戲伺服器和永續性資料庫中 3 遊戲物件的處理可劃分為與位置有關的和與位置無關的,如公會處理 物品處理等主要行為可以看作是與位置無關的處理,而npc ai 戰鬥 移動這類的主要行為可以看成是...

遊戲伺服器架構設計中的一些思考

遊戲伺服器架構設計中的一些思考 1 遊戲世界由很多個遊戲物件組成 遊戲角色 物品 npc 技能等 2 乙個遊戲物件的有效資料主要存放在客戶端 遊戲伺服器和永續性資料庫中 3 遊戲物件的處理可劃分為與位置有關的和與位置無關的,如公會處理 物品處理等主要行為可以看作是與位置無關的處理,而npc ai 戰...

遊戲伺服器架構設計中的一些思考

遊戲伺服器架構設計中的一些思考 1 遊戲世界由很多個遊戲物件組成 遊戲角色 物品 npc 技能等 2 乙個遊戲物件的有效資料主要存放在客戶端 遊戲伺服器和永續性資料庫中 3 遊戲物件的處理可劃分為與位置有關的和與位置無關的,如公會處理 物品處理等主要行為可以看作是與位置無關的處理,而npc ai 戰...