Database 8

[Redis] redis.clients.jedis.exceptions.JedisDataException: WRONGTYPE Operation against a key holding the wrong kind of value

Jedis 를 사용해서 게임 서버를 작성하던 중 아래와 같은 예외를 만났다. redis.clients.jedis.exceptions.JedisDataException: WRONGTYPE Operation against a key holding the wrong kind of value 사실 위 예외가 발생하는 정석적인 이유는 그저 타입이 맞지 않기 때문이다. 그런데 나의 경우에는 예외가 발생하지 않을 것이라고 예상한 상황에 예외가 발생했다. 아래 코드를 보자. 참고로 아래 코드는 예외가 발생하지 않도록 수정한 코드이다. 위 코드에서 sadd 하는 부분이 문제였다. 문제가 발생했던 코드에서는 sadd의 첫번째 파라미터인 Key로 nickname을 전달했었다. 그런데 nickname이 이미 Key로 잡혀있는..

Database/Redis 2022.12.02

[Redis] Redis 기초 개념 정리(1)

Redis 를 쓸일이 생겼다. 이전에 한번도 써본적이 없었다. 실력있는 친구에게 물어보니 요즘 서버에서는 그냥 기본으로 쓴다고 들었다. hiredis 를 통해서 C++ 서버에서 작업하기 전에 기본적인 개념에 대해서는 어느정도 알고 진행해보고자 한다. Redis = Remote Dictionary Server In-memory 기반의 key - value 구조 데이터 관리 서버 시스템이다. key - value 구조는 비 관계형 구조로써 데이터를 그냥 키-값으로 가지고 있다고 보면 된다. 그래서 이 구조가 관계형 데이터가 아니기에 쿼리 연산이 지원되지 않는다. 다만 데이터의 고속 읽기와 쓰기에 최적화되있다. 그래서 Redis 가 일종의 NoSQL 로 분류되는 것이다. Redis 는 인 메모리 솔루션으로 D..

Database/Redis 2022.11.11

[Redis] Windows에서 wsl2에 Docker와 Redis를 설치해보자.

최근에 Windows 에서 Docker와 Redis 를 설치해서 실습할 일이 생겼는데 Windows에서 특히나 Docker도 지원이 안되고 Redis도 지원이 안되서 굳이 wsl2를 설치해주고 이것 저것 설정할 일이 많았다. 아래 블로그에서 많은 도움을 받았고 에러없고 천천히 따라하기만 하면 된다. windows 에서 wsl2 세팅하기 https://www.44bits.io/ko/post/wsl2-install-and-basic-usage windows 에서 docker 설치 https://www.lainyzine.com/ko/article/a-complete-guide-to-how-to-install-docker-desktop-on-windows-10/ wsl위에 redis 설치하기 https://de..

Database/Redis 2022.10.30

[OracleDB] ALTER TABLE ~ SET UNUSED의 사용

5개월전에 데이터베이스를 공부하면서 같은 포스팅을 쓴 적이 있었는데 (바로 이전 포스트) , SET UNUSED가 왜 쓰이는지에 대한 글을 포스팅을 한 적이 있었다. 당시에 정확한 내용은 아니었고 어느 블로그의 댓글을 보고 답을 얻게 되었는데 요약하면 다음과 같았다. 미리 마킹해두고 나중에 삭제하기 위해서 사용한다. 왜냐면 바로 삭제하면 별로 좋지 않기 때문이다. 이렇게 알고 있었는데 좀더 정확한 내용을 알게 되었다. 내용은 아래와 같다. ALTER TABLE ~ SET UNUSED 컬럼을 삭제하지는 않는다. 다만 논리적으로 사용을 제한할 뿐이다. 특정 테이블의 컬럼을 바로 삭제하는 것은 위험하다. 왜냐면 여러 사용자가 이미 사용하고 있기 때문이다. (비즈니스단계에서) 또한 테이블에 저장된 내용이 많다면..

Database/OracleDB 2021.09.08

[OracleDB] sql에서 set unused는 왜 쓸까요?

sql 공부 중에 그냥 슬쩍 지나갈법도 한데, 유난히 고민되는 구문이 하나 있었다. set unused인데, 평소에 그냥 읽어보고 넘어갔었는데, 오늘은 대체 이걸 왜 쓰는걸까라는 생각이 문득 들었다. 그래서 검색해보았는데 www.gurubee.net/article/48959 칼럼 UNUSED의 용도 초보시절 Column 을 UNUSED로 변경하면 임시로 사용못하게 했다가 USED로 바꾸면 다시 사용이 되는줄 알고 쿼리 실행했다가 고생한적이 있습니다...(d.. www.gurubee.net 이 블로그에 너무 정리를 잘 해주셨다. 간단하게 말하자면, unused로 마킹을 해놓음으로써 그 이후로는 액세스도 할 수 없다. 또한 다시 되돌릴 수도 없다. unused를 하더라도 사용된 공간을 환원받을 수도 없다. ..

Database/OracleDB 2021.04.26

[Oracle DB] ora-12560 문제 발생

실습을 진행하려고 프롬프트에서 sql에 진입했는데 맞는 비밀번호를 쳐도 에러가 떴다. ora- 12560이라고 뜨던데, 내가 건드린거라고는 저번에 컴퓨터를 끄기 전에 속도를 좀 빠르게 하고 싶어서 oracle서비스를 "서비스" 에서 자동 -> 수동으로 바꿨던 기억이 있었다. 검색해보니 아니나 다를까 수동으로 바꿨기 때문에 실행이 안되는 상태여서 접속이 안된다는 에러였다. 서비스에 들어가면 이렇게 3개의 란이 있을텐데, 이걸 다 자동으로 바꿔주는 게 좋다. 막상 쓸려고 sql들어갈때 에러나면 또 다시 켜줘야 하고, 귀찮다. 속도차이도 뭐 별로 없는 것 같으니. 실행상태로 둘 수 있도록 자동으로 바꿔주자.! travelbeeee.tistory.com/396 ERROR:ORA-12560: TNS:protoco..

Database/OracleDB 2021.04.19
반응형