Redis數據庫如何在SpringBoot與Kotlin中使用

redis數據庫如何在Spring Boot 與 Kotlin中使用?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

廣平ssl適用于網站、小程序/APP、API接口等需要進行數據傳輸應用場景,ssl證書未來市場廣闊!成為成都創新互聯公司的ssl證書銷售渠道,可以享受市場價格4-6折優惠!如果有意向歡迎電話聯系或者加微信:18982081108(備注:SSL證書合作)期待與您的合作!

使用Redis

Redis是一個開源的使用 ANSI C 語言編寫、支持網絡、可基于內存亦可持久化的日志型、 Key-Value 數據庫。

  • Redis官網

  • Redis中文社區

引入依賴

Spring Boot提供的數據訪問框架Spring Data Redis基于Jedis。可以通過引入 spring-boot-starter-data-redis 來配置依賴關系。

compile "org.springframework.boot:spring-boot-starter-data-redis:$spring_boot_version"

注意:spring boot 1.4 以后改名叫 spring-boot-starter-data-redis 1.4 之前使用 spring-boot-starter-redis

用kotlin,需要增加一個插件

apply plugin: "kotlin-jpa" //https://stackoverflow.com/questions/32038177/kotlin-with-jpa-default-constructor-hell

完整的 build.gradle 文件

group 'name.quanke.kotlin'
version '1.0-SNAPSHOT'
buildscript {
 ext.kotlin_version = '1.2.10'
 ext.spring_boot_version = '1.5.4.RELEASE'
 ext.springfox_swagger2_version = '2.7.0'
 ext.MySQL_version = '5.1.21'
 repositories {
  mavenCentral()
 }
 dependencies {
  classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
  classpath("org.springframework.boot:spring-boot-gradle-plugin:$spring_boot_version")
//  Kotlin整合SpringBoot的默認無參構造函數,默認把所有的類設置open類插件
  classpath("org.jetbrains.kotlin:kotlin-noarg:$kotlin_version")
  classpath("org.jetbrains.kotlin:kotlin-allopen:$kotlin_version")
 }
}
apply plugin: 'kotlin'
apply plugin: "kotlin-spring" // See https://kotlinlang.org/docs/reference/compiler-plugins.html#kotlin-spring-compiler-plugin
apply plugin: 'org.springframework.boot'
apply plugin: "kotlin-jpa" //https://stackoverflow.com/questions/32038177/kotlin-with-jpa-default-constructor-hell
jar {
 baseName = 'chapter11-6-3-service'
 version = '0.1.0'
}
repositories {
 mavenCentral()
}
dependencies {
 compile "org.jetbrains.kotlin:kotlin-stdlib-jre8:$kotlin_version"
 compile("org.jetbrains.kotlin:kotlin-reflect:${kotlin_version}")
 compile "org.springframework.boot:spring-boot-starter-web:$spring_boot_version"
 compile "org.springframework.boot:spring-boot-starter-data-redis:$spring_boot_version"
 testCompile "org.springframework.boot:spring-boot-starter-test:$spring_boot_version"
 testCompile "org.jetbrains.kotlin:kotlin-test-junit:$kotlin_version"
}
compileKotlin {
 kotlinOptions.jvmTarget = "1.8"
}
compileTestKotlin {
 kotlinOptions.jvmTarget = "1.8"
}

參數配置

按照慣例在 application.yml 中加入Redis服務端的相關配置,具體說明如下:

spring:
 redis:
 database: 2
 host: 192.168.1.29
 port: 6379

其中spring.redis.database的配置通常使用0即可,Redis在配置的時候可以設置數據庫數量,默認為16,可以理解為數據庫的schema

測試使用上面的配置就可以了

spring:
 redis:
 database: 2 # Redis數據庫索引(默認為0)
 host: 192.168.1.29
 port: 6379 # Redis服務器連接端口
 password: 123456 # Redis服務器連接密碼(默認為空)
 pool:
  max-active: 8 # 連接池最大連接數(使用負值表示沒有限制)
  max-wait: -1 # 連接池最大阻塞等待時間(使用負值表示沒有限制)
  max-idle: 8 # 連接池中的最大空閑連接
  min-idle: 0 # 連接池中的最小空閑連接
 timeout: 0 # 連接超時時間(毫秒)

創建User實體類

import java.io.Serializable
data class User(val username: String, val age: Int?) : Serializable

測試訪問

通過編寫測試用例,舉例說明如何訪問Redis。

import name.quanke.kotlin.chaper11_6_3.entity.User
import org.apache.commons.logging.LogFactory
import org.junit.Test
import org.junit.runner.RunWith
import org.springframework.boot.test.context.SpringBootTest
import org.springframework.data.redis.core.RedisTemplate
import org.springframework.data.redis.core.StringRedisTemplate
import org.springframework.test.context.junit4.SpringRunner
import javax.annotation.Resource
/**
 * Created by http://quanke.name on 2018/1/9.
 */
@RunWith(SpringRunner::class)
@SpringBootTest
class ApplicationTests {
 val log = LogFactory.getLog(ApplicationTests::class.java)!!
 @Resource
 lateinit var stringRedisTemplate: StringRedisTemplate
 @Resource
 lateinit var redisTemplate: RedisTemplate<String, User>
 @Test
 fun `redis string test"`() {
  // 保存字符串
  stringRedisTemplate.opsForValue().set("url", "http://quanke.name")
  log.info("全科的博客地址: ${stringRedisTemplate.opsForValue().get("url")}")
 }
 @Test
 fun `redis object test"`() {
  // 保存對象
  val user = User("超人", 20)
  redisTemplate.opsForValue().set(user.username, user)
  log.info("超人的年齡:${redisTemplate.opsForValue().get("超人").age}")
 }
}

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注創新互聯行業資訊頻道,感謝您對創新互聯的支持。

分享文章:Redis數據庫如何在SpringBoot與Kotlin中使用
路徑分享:http://m.kartarina.com/article48/ppheep.html

成都網站建設公司_創新互聯,為您提供動態網站網站排名軟件開發電子商務自適應網站微信公眾號

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

綿陽服務器托管
主站蜘蛛池模板: 免费无码又爽又黄又刺激网站| 亚洲AV无码专区日韩| 亚洲欧洲精品无码AV| 国产V亚洲V天堂A无码| 亚洲熟妇无码一区二区三区| 无码精品蜜桃一区二区三区WW | 亚洲成a人无码亚洲成av无码| 国产精品亚洲专区无码不卡| 午夜无码A级毛片免费视频| 亚洲爆乳精品无码一区二区| 国产v亚洲v天堂无码网站| 成人免费无码大片a毛片| 无码AV岛国片在线播放| 精品无码国产自产拍在线观看蜜 | 亚洲熟妇无码另类久久久| 97免费人妻无码视频| 国产午夜片无码区在线播放| 国产午夜鲁丝片AV无码免费| 亚洲看片无码在线视频| 日韩av无码一区二区三区| 国精品无码一区二区三区在线 | 性无码一区二区三区在线观看| 欧日韩国产无码专区| 亚洲精品无码不卡在线播放| 无码精品国产一区二区三区免费| 日韩av片无码一区二区三区不卡| 无码不卡av东京热毛片| 精品人无码一区二区三区| 国产成人精品一区二区三区无码| 精品人妻中文无码AV在线 | 亚洲AV无码乱码在线观看| 亚洲av成人无码网站…| 亚洲精品中文字幕无码A片老| 日韩丰满少妇无码内射| 97免费人妻无码视频| 亚洲精品久久无码av片俺去也| 久久久久亚洲精品无码蜜桃| 亚洲av无码片在线观看| 中文无码精品A∨在线观看不卡| 无码人妻精品一区二区三区夜夜嗨| 久久无码av三级|