Skip to content

Rustixir/gostore

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Gostore is a key/value storage with some different modes to get better performance for that usecase, also persist data to disk to avoid loss any data

The gostore provides the following:

  • InMemory - whole data stored in-memory also persistent data to disk and after restart, load whole data to memory

  • Mode - gostore have some different mode (WriteConcurrency, (ReadConcurrency, ReadWriteConcurrency, RwLock, Lockless) to for choice correct hashmap data structure for better performance

st1 := NewStorage("name_1", "./path", 0, mode.RwLock)
defer st1.Shutdown()


// Different Mode

// st := NewStorage("name_2", "", 0, mode.WriteConcurrency)
// defer st.Shutdown()

// st := NewStorage("name_3", "", 0, mode.ReadWriteConcurrency)
// defer st.Shutdown()


// Insert
err = st1.Insert(key3, value)
if err != nil {
	// ...
}


// Get
_, ok := st1.Get(key)
if !ok {
	// ...
}


// Search 
keys := []string{key2, key3}
list := st1.Search(1, 2, func(s string, i interface{}) bool {
	for _, key := range keys {
		if s == key {
			return true
		}
	}
	return false
})


// Delete
st1.Delete(key)


About

golang embedded in-memory storage inspired by erlang ets & mnesia

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages