Packages

A Gleam client for Valkey, KeyDB, Redis and other tools with compatible APIs

Current section

Files

Jump to
radish_fork src radish command hash.gleam
Raw

src/radish/command/hash.gleam

import gleam/float
import gleam/int
import gleam/list
import radish/utils.{prepare}
pub fn set(key: String, fields: List(#(String, String))) {
["HSET", key]
|> list.append(list.flat_map(fields, fn(kv) { [kv.0, kv.1] }))
|> prepare
}
pub fn set_new(key: String, field: String, value: String) {
["HSETNX", key, field, value]
|> prepare
}
pub fn keys(key: String) {
["HKEYS", key]
|> prepare
}
pub fn len(key: String) {
["HLEN", key]
|> prepare
}
pub fn get(key: String, field: String) {
["HGET", key, field]
|> prepare
}
pub fn get_all(key: String) {
["HGETALL", key]
|> prepare
}
pub fn mget(key: String, fields: List(String)) {
["HMGET", key]
|> list.append(fields)
|> prepare
}
pub fn strlen(key: String, field: String) {
["HSTRLEN", key, field]
|> prepare
}
pub fn vals(key: String) {
["HVALS", key]
|> prepare
}
pub fn del(key: String, fields: List(String)) {
["HDEL", key]
|> list.append(fields)
|> prepare
}
pub fn exists(key: String, field: String) {
["HEXISTS", key, field]
|> prepare
}
pub fn incr_by(key: String, field: String, value: Int) {
["HINCRBY", key, field, int.to_string(value)]
|> prepare
}
pub fn incr_by_float(key: String, field: String, value: Float) {
["HINCRBYFLOAT", key, field, float.to_string(value)]
|> prepare
}
pub fn scan(key: String, cursor: Int, count: Int) {
["HSCAN", key, int.to_string(cursor), "COUNT", int.to_string(count)]
|> prepare
}
pub fn scan_pattern(key: String, cursor: Int, pattern: String, count: Int) {
[
"HSCAN",
key,
int.to_string(cursor),
"MATCH",
pattern,
"COUNT",
int.to_string(count),
]
|> prepare
}