github.com/fengyoulin/shm@v0.0.0-20200305015033-287e184bdf0a/README.md (about)

     1  # shm #
     2  
     3  A hash map implemented in a shared memory mapping.
     4  
     5  Example:
     6  ```go
     7  package main
     8  
     9  import (
    10  	"github.com/fengyoulin/shm"
    11  	"log"
    12  	"time"
    13  )
    14  
    15  func main() {
    16  	m, err := shm.Create("map.db", 4096, 40, 32, 20, time.Second)
    17  	if err != nil {
    18  		log.Fatalln(err)
    19  	}
    20  
    21  	defer func() {
    22  		err = m.Close()
    23  		if err != nil {
    24  			log.Fatalln(err)
    25  		}
    26  	}()
    27  
    28  	// get or add a key
    29  	b, err := m.Get("1a2b3c4d5e6f", true)
    30  	if err != nil {
    31  		log.Fatalln(err)
    32  	}
    33  
    34  	// do something with b
    35  	log.Println(cap(b))
    36  
    37  	// iterate over the map
    38  	m.Foreach(func(key string, value []byte) bool {
    39  		log.Printf("key: %s\n", key)
    40  		return true
    41  	})
    42  	// m.Delete("key")
    43  }
    44  ```