
com.sxtanna.database.task.KedisTask.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of Kedis Show documentation
Show all versions of Kedis Show documentation
Redis Kotlin wrapper based on Jedis
The newest version!
package com.sxtanna.database.task
import redis.clients.jedis.Jedis
class KedisTask(override val resource : Jedis) : DatabaseTask() {
//region Basic Key
operator fun set(key: String, value: Any) {
resource.set(key, value.toString())
}
operator fun get(key: String): String? {
return resource.get(key)
}
operator fun contains(key: String): Boolean {
return resource.exists(key)
}
fun rem(vararg key: String): Boolean {
return resource.del(*key).toInt() == key.size
}
//endregion
//region Hash
fun setHash(key: String, hashKey: String, value: Any) {
resource.hset(key, hashKey, value.toString())
}
fun getHash(key: String, hashKey: String): String? {
return resource.hget(key, hashKey)
}
fun getHash(key : String): Map {
return resource.hgetAll(key)
}
fun getHashSize(key : String): Int {
return resource.hlen(key).toInt()
}
fun hasHash(key: String, hashKey: String): Boolean {
return resource.hexists(key, hashKey)
}
fun remHash(key: String, vararg hashKey: String): Boolean {
if (hashKey.isEmpty()) return rem(key)
return resource.hdel(key, *hashKey).toInt() == hashKey.size
}
//endregion
//region Sorted Set
fun setZRank(key: String, rank: Long, value: Any) {
resource.zadd(key, rank.toDouble(), value.toString())
}
fun getZRank(key: String, value: Any): Long? {
return resource.zrank(key, value.toString())
}
fun getZRankSize(key : String): Int {
return resource.zcard(key).toInt()
}
fun hasZRank(key: String, value: Any): Boolean {
return getZRank(key, value) != null
}
fun remZRank(key: String, vararg value: String): Boolean {
if (value.isEmpty()) return rem(key)
return resource.zrem(key, *value).toInt() == value.size
}
//endregion
//region UnSorted Set
fun setSet(key : String, vararg value : Any) {
resource.sadd(key, *value.toStrings())
}
fun getSet(key : String): Set {
return resource.smembers(key)
}
fun getSetSize(key : String): Int {
return resource.scard(key).toInt()
}
fun hasSet(key : String, value : Any): Boolean {
return resource.sismember(key, value.toString())
}
fun remSet(key : String, vararg value : Any) {
resource.srem(key, *value.toStrings())
}
//endregion
fun push(channel: String, message: String) {
resource.publish(channel, message)
}
private fun Array.toStrings() = this.map(Any::toString).toTypedArray()
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy