iT邦幫忙

2023 iThome 鐵人賽

DAY 23
0

前情提要

昨天我們將Redis的好處介紹了一下,今天我們要來實際的串接Redis!

連線

        val config = Config()
        config.useSingleServer()
            .setAddress("redis://127.0.0.1:6379")

        val redisson = Redisson.create(config)
        val cache = redisson.getMapCache<String, String>("myCache")
        cache.put("key", "value")

        val value = cache.get("key")

這邊我們使用了Redisson 建立了一個Map暫存,並將資料儲存在名為"myCache"的Map中。
另外我們可以使用 Redis CLI 的 HGETALL 指令來查看這個Map的內容。
這樣就可以將資料存進Redis裡面囉

我們還可以為資料設定expire,這邊設定10秒鐘會自動消滅! 就可以對Cache做控制,太久就把資料清掉,節省空間(X

        cache.expire(Duration.ofSeconds(10))

印出List

這邊我們利用Jedis來建立連線,

        val jedis = Jedis("redis://127.0.0.1:6379")
        jedis.rpush("myList", "item1", "item2", "item3")
        val itemList = jedis.lrange("myList", 0, -1)
        println(itemList)

印出集合

    val jedis = Jedis("redis://127.0.0.1:6379")
    jedis.sadd("mySet", "element1", "element2", "element3")
    val members = jedis.smembers("mySet")
    println(members)

可以看到要連到Redis是蠻簡單的!只要短短幾行就可以連線了!

計數器以及統計數據

因為Redis的原子操作! 可以讓它很方便的統計我們的次數。

    val jedis = Jedis("redis://127.0.0.1:6379")
    jedis.incr("pageViews")
    val pageViews = jedis.get("pageViews")
    println("Total page views: $pageViews")

Jedis是什麼呢?

Jedis是Java用來與Redis資料庫互動的函式庫,透過它就可以與Redis伺服器來通信,執行各種操作,不管是儲存、搜尋、更新、刪除數據等。

Lettuce

另外還有一個工具叫做 Lettuce,看起來Jedis支援的Lettuce也支援

    val redisClient = RedisClient.create("redis://localhost:6379")
    val connection: StatefulRedisConnection<String, String> = redisClient.connect()
    val syncCommands: RedisCommands<String, String> = connection.sync()
    syncCommands.set("key", "value")
    println(syncCommands.get("key"))

Lettuce用起來也是十分的快速容易XD

總結

今天我們介紹了kotlin的Redis連線方式與基本的一些操作,可以發現Redis是蠻容易使用與理解的,當我們想要當作暫存的時候,是一個不錯的選擇!

參考資料

https://www.readfog.com/a/1640714354650353664


上一篇
[城鎮] Redis - 超快的速度! Speed!
下一篇
[城鎮] Kotlin spring boot 如何打到外部系統Api? 要怎麼選擇?
系列文
Kotlin魔法:Spring Boot 3的fp奇幻冒險30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言