Redis

플레이어 관련

키 + 값

  • 키 : "P" + playerId + "Info"

  • 값 : { string AuthToken, int PlayerId, string Status, int CurrentStage }

  • 데이터 타입 : String

사용

  • 로그인 할 때 AuthToken를 발급하여 클라이언트에게 보내줌과 동시에 redis에 저장함. 이후의 모든 요청에 대해서는 playerId와 AuthToken을 비교하여 클라이언트임을 확인함 (미들웨어에서 구현)

  • Status : 로그인, 로그아웃, 던전플레이로 나누어, 플레이어의 상태를 저장함

공지 관련

키 + 값

  • 키 : "NoticeKey"

  • 값 : [{string Title, string Content, dateTime Date}, {...} ]

  • 데이터 타입 : List

사용

  • 공지 등록은 운영진 계정으로 로그인 했을 때만 가능 (config에 운영진 계정 등록)

  • 공지 등록은 List에 LPUSH 함. 이렇게 해야 최근 등록이 인덱스 0에 있음

  • 플레이어가 공지 요청시 redis에서 전체 공지를 가져와서 공지 정보를 전달해줌

던전스테이지 관련

키 + 값

  • 키 : "P" +playerId + "Dungeon";

  • 값 : { [{int NPCCode, int Count, int Max }, { int NPCCode, int Count, int Max }, ...], [{ int ItemCode, int Count, int Max }, { int ItemCode, int Count, int Max }, ...] }

    • 플레이어가 입장해있는 던전에 나오는 NPC와 Item의 종류와 개수

  • 데이터 타입 : String

사용

  • 플레이어가 던전에 들어갔을 때 이 정보를 redis에 저장함

  • NPC를 잡거나 item을 획득 할 때마다 클라이언트의 request가 오고, 서버는 해당 값을 변경하여 위의 값을 바꿈

  • 던전이 완료되었을 때, 위에 등록된 모든 NPC에 대해서는 Count == Max가 되어야 하며, item은 Count만큼 플레이어의 아이템리스트에 추가됨

Last updated