rosedb — это легковесный, быстрый и надёжный механизм хранения данных типа «ключ-значение», основанный на модели хранения Bitcask.
Дизайн Bitcask частично вдохновлён файловыми системами с логической структурой и объединением лог-файлов.
rosedb хорошо протестирован и готов к использованию в продакшене. Существует несколько проектов, использующих rosedb в качестве механизма хранения в продакшене.
Не нашли нужную функцию? Не стесняйтесь открыть вопрос или PR, мы активно разрабатываем проект.
Файлы логов RoseDB используют WAL (Write Ahead Log) в качестве бэкенда. Это файлы с блокировкой кэша, которые можно только дополнять.
Поддержка отслеживания ключей. RoseDB поддерживает отслеживание ключей, вы можете получать уведомления об изменениях ключей в базе данных.
Поддержка истечения срока действия ключей. RoseDB поддерживает истечение срока действия ключей, вы можете установить срок действия для ключей.
Все ключи должны помещаться в памяти. RoseDB всегда хранит все ключи в памяти, это означает, что ваша система должна иметь достаточно памяти для хранения всего пространства ключей плюс дополнительное пространство для других операционных компонентов и буферного пространства файловой системы, резидентной в операционной системе.
package main
import "github.com/rosedblabs/rosedb/v2"
func main() {
// укажите параметры
options := rosedb.DefaultOptions
options.DirPath = "/tmp/rosedb_basic"
// откройте базу данных
db, err := rosedb.Open(options)
if err != nil {
panic(err)
}
defer func() {
_ = db.Close()
}()
// установите ключ
err = db.Put([]byte("name"), []byte("rosedb"))
if err != nil {
panic(err)
}
// получите ключ
val, err := db.Get([]byte("name"))
if err != nil {
panic(err)
}
println(string(val))
// удалите ключ
err = db.Delete([]byte("name"))
if err != nil {
panic(err)
}
}
// создайте пакет
batch := db.NewBatch(rosedb.DefaultBatchOptions)
// установите ключ
_ = batch.Put([]byte("name"), []byte("rosedb"))
// получите ключ
val, _ := batch.Get([]byte("name"))
println(string(val))
// удалите ключ
_ = batch.Delete([]byte("name"))
// зафиксируйте пакет
_ = batch.Commit()
Дополнительные сведения см. в примерах.
Приглашаем присоединиться к каналу Slack и Обсуждениям, чтобы общаться с разработчиками команды RoseDB и другими пользователями.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )