redis
11 Mar 2018Docker에서 redis 실행
설치
- docker run -d -p 6379:6379 –name redis redis
redis-cli 실행
- docker exec -it redis redis-cli
redis-cli에서 데이터 확인
모든 데이터 확인
- keys *
key값에 해당하는 데이터 확인
- get «key»
스프링부트 애플리케이션 실행
dependency
implementation("org.springframework.boot:spring-boot-starter-data-redis")
- localhost:6379 가 스프링부트 redis 기본설정이다.
redis에 데이터 등록
- StringRedisTemplate 또는 RedisTemplate을 사용
- CrudRepository를 사용
StringRedisTemplate 사용
@Component
class RedisRunner(private val redisTemplate: StringRedisTemplate) : ApplicationRunner {
override fun run(args: ApplicationArguments?) {
val values = redisTemplate.opsForValue()
values.set("name", "kjgleh")
}
}
애플리케이션 재실행 후 redis-cli를 통해 등록된 데이터를 확인할 수 있다.
CrudRepository 사용
@RedisHash("accounts")
class Account(
@Id
val id: String = UUID.randomUUID().toString(),
val userName: String,
val email: String
)
interface AccountRepository: CrudRepository<Account, String>
@Component
class RedisRunner(
private val accountRepository: AccountRepository
) : ApplicationRunner {
override fun run(args: ApplicationArguments?) {
// CrudRepository를 사용하여 데이터 등록
val account = Account(
userName = "tester",
email = "test@test.com"
)
accountRepository.save(account)
val savedAccount = accountRepository.findById(account.id)
println(savedAccount.get().id)
println(savedAccount.get().userName)
println(savedAccount.get().email)
}
}
- Account는 redis에 hash된 데이터로 저장된다.
- redis-cli에서 hash된 데이터의 특정 프로퍼티를 읽는 방법
- hget «key» 프로퍼티명
- 예)hget accounts:xxx userName
- redis-cli에서 hash된 데이터의 전체 값을 읽는 방법
- hgetall «key»