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