在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

GaussDB(for Redis) 游戲?qū)嵺`:玩家下線行為上報(bào)

jf_94205927 ? 來源:jf_94205927 ? 作者:jf_94205927 ? 2024-03-28 22:03 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

為保護(hù)未成年人的身心健康,2007 年國家推出網(wǎng)絡(luò)游戲防沉迷系統(tǒng),對(duì)未成年人的游戲時(shí)間進(jìn)行限制,游戲廠家需要及時(shí)感知用戶的下線時(shí)間并上報(bào)。Redis 是游戲數(shù)據(jù)庫重要選型之一,在基于開源 Redis 實(shí)現(xiàn)以上功能時(shí),感知用戶下線行為延遲較大,導(dǎo)致上報(bào)時(shí)間不準(zhǔn)確。華為云 GaussDB(for Redis)作為一款企業(yè)級(jí)游戲數(shù)據(jù)庫,具備卓越的企業(yè)級(jí)能力,能及時(shí)上報(bào)用戶下線行為,并被廣泛應(yīng)用于排行榜等多種業(yè)務(wù)場(chǎng)景。

基于 Redis 的用戶下線上報(bào)實(shí)現(xiàn)

實(shí)現(xiàn)用戶下線上報(bào)能力的常見方式

游戲廠商使用 Redis key 過期功能,結(jié)合鍵空間通知功能(keyspace notification),可以實(shí)現(xiàn)用戶下線上報(bào),常見使用方式如下:

(1)用戶登錄后,為每一個(gè)用戶 key 設(shè)置一個(gè)過期時(shí)間(3-5 分鐘);

(2)游戲客戶端,定期每分鐘上報(bào)一次心跳,收到心跳后,服務(wù)端重置游戲用戶 key 的過期時(shí)間;

(3)為避免網(wǎng)絡(luò)波動(dòng)造成的未及時(shí)上報(bào),若 5 分鐘內(nèi),收到心跳,則重置過期時(shí)間;若未收到,將觸發(fā) key 過期,系統(tǒng)判定用戶下線。

因此,Redis 鍵空間通知功能要及時(shí)感知 key 過期,以確保上報(bào)時(shí)間的準(zhǔn)確性。

Redis 鍵空間通知功能

Redis 鍵空間通知,允許用戶通過訂閱頻道或模式,以接收 key 的修改、過期等通知。對(duì)于每個(gè) key 的修改,鍵空間通知都會(huì)發(fā)送兩種不同類型的事件。以 DB0 用戶 mykey 過期為例,Redis 會(huì)發(fā)送兩條消息,相當(dāng)于執(zhí)行了兩個(gè) publish 命令:

PUBLISH__keyspace@0__:mykeyexpire

復(fù)制代碼

通過訂閱頻道__keyspace@0__:mykey 可以接收0號(hào)數(shù)據(jù)庫中所有修改鍵 mykey 的事件, 而訂閱頻道__keyevent@0__:expire 則可以接收0號(hào)數(shù)據(jù)庫中所有執(zhí)行 expire 命令的鍵。其中以 keyspace 為前綴的頻道被稱為鍵空間通知,而以 keyevent 為前綴的頻道則被稱為鍵事件通知。

可以通過命令 CONFIG SET notify-keyspace-events [parameter]來開啟或者關(guān)閉鍵空間通知功能,若 parameter 為空則表示關(guān)閉該功能,若不空則開啟。通常將參數(shù)設(shè)置為“AKE”,表示發(fā)送所有類型通知。

通過以下命令,可以訂閱 DB0 所有過期的用戶 key。

redis-cli--csvpsubscribe'__keyevent@0__:expire'

復(fù)制代碼

GaussDB(for Redis) VS 開源 Redis

過期鍵空間通知延時(shí)對(duì)比

Redis 規(guī)格:都采用 4GB 的規(guī)格

測(cè)試步驟

使用 memtier_benchmark 預(yù)置 10w 個(gè) key

使用客戶端定期 key 過期事件

使用 python 腳本,對(duì)其中的 3w 個(gè) key 設(shè)置 10s 過期時(shí)間

分別在有業(yè)務(wù)流量和無業(yè)務(wù)流量場(chǎng)景,統(tǒng)計(jì)收到 3w 個(gè) key 過期的通知耗時(shí)

測(cè)試結(jié)果:

可以看出,在有無業(yè)務(wù)流量場(chǎng)景下,GaussDB(for Redis)僅需 9 秒即可完成全部 key 過期的上報(bào),而社區(qū) Redis 需要 4 分鐘左右才能完成上報(bào),嚴(yán)重影響用戶下線行為上報(bào)的準(zhǔn)確性。

原理分析

開源 Redis 鍵空間通知功能采用了惰性刪除和定期刪除兩種策略,即在訪問時(shí)進(jìn)行過期檢查,同時(shí)后臺(tái)以一定頻率執(zhí)行定期檢查任務(wù),可以通過修改配置文件 redis.conf 的 hz 選項(xiàng)來調(diào)整這個(gè)頻率。每次過期任務(wù)會(huì)按以下流程進(jìn)行刪除操作:

1. 從設(shè)置了過期時(shí)間的 key 的集合中隨機(jī)檢查 20 個(gè) key;

2. 刪除檢查中發(fā)現(xiàn)的所有過期 key;

3. 如果檢查結(jié)果中 25%以上的 key 已過期,則開始新一輪任務(wù)。

可以注意到,開源 Redis 并不是一次運(yùn)行就檢查所有的庫中所有的鍵,而是隨機(jī)檢查一定數(shù)量的鍵,從而導(dǎo)致上報(bào)延時(shí)長。而 GaussDB(for Redis)后臺(tái)有一個(gè)實(shí)時(shí)線程會(huì)對(duì) key 進(jìn)行持續(xù)掃描,及時(shí)上報(bào)過期 key,也不會(huì)影響前臺(tái)寫操作。

GaussDB(for Redis)是一款超越開源 Redis 的企業(yè)級(jí) KV 數(shù)據(jù)庫,在游戲場(chǎng)景中,除了被應(yīng)用在游戲玩家下線場(chǎng)景,還被廣泛應(yīng)用在玩家數(shù)據(jù)存儲(chǔ)、排行榜、好友關(guān)系、消息推送等場(chǎng)景。其采用存算分離的架構(gòu),既能滿足游戲業(yè)務(wù)對(duì)高并發(fā)的性能指標(biāo)要求,又能降本增效,深受游戲開發(fā)者的青睞。

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 開源
    +關(guān)注

    關(guān)注

    3

    文章

    3673

    瀏覽量

    43787
  • Redis
    +關(guān)注

    關(guān)注

    0

    文章

    386

    瀏覽量

    11424
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    Redis集群部署與性能優(yōu)化實(shí)戰(zhàn)

    Redis作為高性能的內(nèi)存數(shù)據(jù)庫,在現(xiàn)代互聯(lián)網(wǎng)架構(gòu)中扮演著關(guān)鍵角色。作為運(yùn)維工程師,掌握Redis的部署、配置和優(yōu)化技能至關(guān)重要。本文將從實(shí)戰(zhàn)角度出發(fā),詳細(xì)介紹Redis集群的搭建、性能優(yōu)化以及監(jiān)控運(yùn)維的核心技術(shù)。
    的頭像 發(fā)表于 07-08 17:56 ?196次閱讀

    【經(jīng)驗(yàn)分享】在Omni3576上編譯Redis-8.0.2源碼,并安裝及性能測(cè)試

    本文首先介紹Redis是什么,然后介紹如何在Omni3576上編譯Redis-8.0.2源碼,以及從源碼編譯、安裝Redis,最后介紹如何在Omni3576上運(yùn)行Redis性能測(cè)試,并
    的頭像 發(fā)表于 06-05 08:05 ?262次閱讀
    【經(jīng)驗(yàn)分享】在Omni3576上編譯<b class='flag-5'>Redis</b>-8.0.2源碼,并安裝及性能測(cè)試

    【幸狐Omni3576邊緣計(jì)算套件試用體驗(yàn)】Redis最新8.0.2版本源碼安裝及性能測(cè)試

    本文首先介紹Redis是什么,然后介紹如何在Omni3576上編譯Redis-8.0.2源碼,以及從源碼編譯、安裝Redis,最后介紹如何在Omni3576上運(yùn)行Redis性能測(cè)試,并
    發(fā)表于 06-03 01:28

    游戲手柄振動(dòng)馬達(dá):沉浸式游戲體驗(yàn)的核心

    游戲手柄振動(dòng)馬達(dá)是現(xiàn)代游戲設(shè)備中不可或缺的一部分,它為玩家提供了更加沉浸式的游戲體驗(yàn)。通過精確的振動(dòng)反饋,游戲手柄振動(dòng)馬達(dá)能夠?qū)?/div>
    的頭像 發(fā)表于 05-17 00:05 ?207次閱讀

    Redis 再次開源!

    “ ?Redis 現(xiàn)已采用 AGPLv3 開源許可證。? ” Redis CEO 的 Blog 以下是 Redis CEO Rowan Trollope 的 Blog: 像 AWS 和 GCP 這樣
    的頭像 發(fā)表于 05-06 18:26 ?387次閱讀

    redis三種集群方案詳解

    Redis中提供的集群方案總共有三種(一般一個(gè)redis節(jié)點(diǎn)不超過10G內(nèi)存)。
    的頭像 發(fā)表于 03-31 10:46 ?700次閱讀
    <b class='flag-5'>redis</b>三種集群方案詳解

    Redis實(shí)戰(zhàn)筆記

    在目前的技術(shù)選型中,Redis 儼然已經(jīng)成為了系統(tǒng)高性能緩存方案的事實(shí)標(biāo)準(zhǔn),因此現(xiàn)在?Redis 也成為了后端開發(fā)的基本技能樹之一。 ? 基于上述情況,今天給大家分享一份?杰哥?親筆撰寫的內(nèi)部
    的頭像 發(fā)表于 02-09 09:12 ?386次閱讀
    <b class='flag-5'>Redis</b>實(shí)戰(zhàn)筆記

    華為云 Flexus X 加速 Redis 案例實(shí)踐與詳解

    Redis 加速鏡像,更是為開發(fā)者提供了極大的便利。本文將詳細(xì)介紹如何利用華為云 Flexus X 實(shí)例自帶的 Redis 鏡像,快速部署并配置 Redis,以及通過實(shí)際案例展示其便捷性和高效性。 一、華為云 Flexus
    的頭像 發(fā)表于 01-23 17:52 ?326次閱讀
    華為云 Flexus X 加速 <b class='flag-5'>Redis</b> 案例<b class='flag-5'>實(shí)踐</b>與詳解

    Redis Cluster之故障轉(zhuǎn)移

    1. Redis Cluster 簡(jiǎn)介 Redis Cluster 是 Redis 官方提供的 Redis 集群功能。 為什么要實(shí)現(xiàn) Redis
    的頭像 發(fā)表于 01-20 09:21 ?880次閱讀
    <b class='flag-5'>Redis</b> Cluster之故障轉(zhuǎn)移

    華為云Flexus X實(shí)例,Redis性能加速評(píng)測(cè)及對(duì)比

    隨著云計(jì)算技術(shù)的飛速發(fā)展,Redis 作為一種高性能的內(nèi)存數(shù)據(jù)庫,在各種應(yīng)用場(chǎng)景中發(fā)揮著越來越重要的作用。為了滿足不同用戶對(duì) Redis 性能的高要求,華為云推出了 Flexus X 實(shí)例,并提供了
    的頭像 發(fā)表于 12-29 15:47 ?488次閱讀
    華為云Flexus X實(shí)例,<b class='flag-5'>Redis</b>性能加速評(píng)測(cè)及對(duì)比

    Redis緩存與Memcached的比較

    Redis和Memcached都是廣泛使用的內(nèi)存數(shù)據(jù)存儲(chǔ)系統(tǒng),它們主要用于提高應(yīng)用程序的性能,通過減少對(duì)數(shù)據(jù)庫的直接訪問來加速數(shù)據(jù)檢索。以下是對(duì)Redis和Memcached的比較,涵蓋了它們的一些
    的頭像 發(fā)表于 12-18 09:33 ?584次閱讀

    ChatGPT 在游戲開發(fā)中的創(chuàng)新應(yīng)用

    、流暢的對(duì)話。在角色扮演游戲(RPG)或冒險(xiǎn)游戲中,這可以用于創(chuàng)建動(dòng)態(tài)對(duì)話系統(tǒng)。傳統(tǒng)的游戲對(duì)話系統(tǒng)通常是預(yù)設(shè)的,玩家的選擇有限,而ChatGPT可以生成更多樣化的對(duì)話,讓每個(gè)
    的頭像 發(fā)表于 10-25 18:05 ?1129次閱讀

    游戲手柄震動(dòng)馬達(dá)的技術(shù)特點(diǎn)分析

    游戲手柄震動(dòng)馬達(dá)在現(xiàn)代電子游戲中扮演著重要的角色,其技術(shù)特點(diǎn)直接影響到玩家游戲體驗(yàn)。游戲手柄震動(dòng)馬達(dá)不僅為
    的頭像 發(fā)表于 10-09 11:12 ?984次閱讀
    <b class='flag-5'>游戲</b>手柄震動(dòng)馬達(dá)的技術(shù)特點(diǎn)分析

    遠(yuǎn)程控制技術(shù)的應(yīng)用 游戲玩家都在關(guān)注黑神話 探討遠(yuǎn)程怎么玩“悟空”3A游戲

    昨天(20日) 游戲玩家討論的話題只有一個(gè)——《黑神話:悟空》 ,相關(guān)話題迅速引爆社交媒體。撥玩家紛紛曬出好評(píng),稱這款現(xiàn)象級(jí)產(chǎn)品正式開啟國產(chǎn)3A游戲 元年。 根據(jù)國游暢銷榜統(tǒng)計(jì),上線首
    的頭像 發(fā)表于 08-21 15:53 ?574次閱讀

    基于 FPGA 的飛機(jī)大戰(zhàn)游戲系統(tǒng)設(shè)計(jì)

    游戲四個(gè)選項(xiàng)。開始游戲后,玩家可以用游戲手柄方便的控制飛機(jī)在屏幕上向任意方向移動(dòng),通過躲避子彈和射擊敵機(jī)得分,在屏幕左上角可以看到當(dāng)前生命和得分。 1.2 應(yīng)用領(lǐng)域最近的一些復(fù)古
    發(fā)表于 07-24 20:03
    主站蜘蛛池模板: 亚洲一区二区福利视频 | 国产成人一区二区在线不卡 | 国产精品成人四虎免费视频 | 色五阁| 日韩高清性爽一级毛片免费 | 天堂中文在线免费观看 | 可以在线看黄的网站 | 亚洲免费看片 | 女的扒开尿口让男人桶爽 | 亚洲精品久久久久午夜 | 四虎伊人| 日本黄色三级视频 | 丁香八月婷婷 | 亚洲乱亚洲乱妇41p国产成人 | www.日日爱| 中文字幕在线二区 | 五月综合色啪 | 国产福利精品视频 | 天堂色| 亚洲伊人久久大香线蕉影院 | 天堂8资源8在线 | 四虎精品成人免费观看 | 色婷婷综合久久久中文字幕 | 手机在线看片国产日韩生活片 | 天天爽夜夜爽每晚高澡 | 三级国产 | 巨乳色在线观看 | 亚洲va国产日韩欧美精品色婷婷 | 性视频亚洲 | 美女视频永久黄网站免费观看国产 | 日韩视频高清 | 午夜看大片 | 色爱综合区五月小说 | 57pao强力打造免费高清高速 | 欧美综合色区 | 午夜100| 国产老头和美女在线观看 | 婷婷99视频精品全部在线观看 | 一级片在线观看视频 | 欧美性第一页 | 黄色在线网站 |